/* * 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&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&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 <arturo@nuclecu.unam.mx> (Original Gnomecard author)</div><div class='del'>- Nat Friedman <nat@ximian.com></div><div class='del'>- Chris Lahey <clahey@ximian.com></div><div class='del'>- Chris Toshok <toshok@ximian.com></div><div class='del'>- Jon Trowbridge <trow@ximian.com></div><div class='del'>-</div><div class='del'>-Artwork</div><div class='del'>- Tuomas Kuosmanen <tigert@ximian.com></div><div class='del'>- Jakub Steiner <jimmac@ximian.com></div><div class='del'>-</div><div class='del'>-Calendar</div><div class='del'>- Seth Alves <seth@ximian.com></div><div class='del'>- Eric Busboom <eric@softwarestudio.org> (libical author)</div><div class='del'>- Arturo Esponosa <arturo@nuclecu.unam.mx> (Gnomecal contributor)</div><div class='del'>- Damon Chaplin <damon@ximian.com></div><div class='del'>- Federico Mena-Quintero <federico@ximian.com></div><div class='del'>- Rodrigo Moya <rodrigo@ximian.com></div><div class='del'>- Jesse Pavel <jesse@ximian.com></div><div class='del'>- JP Rosevear <jpr@ximian.com></div><div class='del'>- Russell Steinthal <rms39@columbia.edu> (Gnomecal maintainer)</div><div class='del'>-</div><div class='del'>-Documentation</div><div class='del'>- Kevin Breit <battery841@mypad.com></div><div class='del'>- Aaron Weber <aaron@ximian.com></div><div class='del'>-</div><div class='del'>-Mailer</div><div class='del'>- Bertrand Guiheneuf <bertrand@ximian.com></div><div class='del'>- Jason Leach <jleach@ximian.com></div><div class='del'>- Matt Loper <matt@ximian.com></div><div class='del'>- Ettore Perazzoli <ettore@ximian.com></div><div class='del'>- Jeff Stedfast <fejj@ximian.com></div><div class='del'>- Jon Trowbridge <trow@ximian.com></div><div class='del'>- Peter Williams <peterw@ximian.com></div><div class='del'>- Dan Winship <danw@ximian.com></div><div class='del'>- Michael Zucchi <notzed@ximian.com></div><div class='del'>-</div><div class='del'>-Notes</div><div class='del'>- Anders Carlsson <andersca@gnu.org></div><div class='del'>-</div><div class='del'>-Pilot</div><div class='del'>- JP Rosevear <jpr@ximian.com></div><div class='del'>-</div><div class='del'>-Shell</div><div class='del'>- Miguel de Icaza <miguel@ximian.com></div><div class='del'>- Jason Leach <jleach@ximian.com></div><div class='del'>- Ettore Perazzoli <ettore@ximian.com></div><div class='del'>-</div><div class='del'>-Translations</div><div class='del'>- Akira TAGOH <tagoh@gnome.gr.jp></div><div class='del'>- Andraz Tori <andraz.tori1@guest.arnes.si></div><div class='del'>- Andreas Hyden <a.hyden@cyberpoint.se></div><div class='del'>- Arjan Scherpenisse <acscherp@wins.uva.nl></div><div class='del'>- Clara Tattoni <clara.tattoni@libero.it></div><div class='del'>- Fatih Demir <kabalak@gmx.net></div><div class='del'>- Gediminas Paulauskas <menesis@delfi.lt></div><div class='del'>- GNOME PL Team <gnomepl@pandora.info.bielsko.pl></div><div class='del'>- Gustavo Maciel Dias Vieira <gdvieira@zaz.com.br></div><div class='del'>- H�ctor Garc�a Alvarez <hector@scouts-es.org></div><div class='del'>- Jes�s Bravo �lvarez <jba@pobox.com></div><div class='del'>- Keld Simonsen <keld@dkuug.dk></div><div class='del'>- Kjartan Maraas <kmaraas@gnome.org></div><div class='del'>- Matthias Warkus <mawa@iname.com></div><div class='del'>- Spiros Papadimitriou <spapadim+@cs.cmu.edu></div><div class='del'>- Sung-Hyun Nam <namsh@kldp.org></div><div class='del'>- Szabolcs BAN <shooby@gnome.hu></div><div class='del'>- Tiago Ant�o <tiagoantao@bigfoot.com></div><div class='del'>- Valek Filippov <frob@df.ru></div><div class='del'>- Vincent Renardias <vincent@redhat.com></div><div class='del'>- Yuri Syrota <rasta@renome.rovno.ua></div><div class='del'>-</div><div class='del'>-UI</div><div class='del'>- Anna Dirks <anna@ximian.com></div><div class='del'>-</div><div class='del'>-Widgets</div><div class='del'>- Damon Chaplin <damon@ximian.com></div><div class='del'>- Miguel de Icaza <miguel@ximian.com></div><div class='del'>- Chris Lahey <clahey@ximian.com></div><div class='del'>- Federico Mena-Quintero <federico@ximian.com></div><div class='del'>- Chris Toshok <toshok@ximian.com></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&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'>- <one line to give the program's name and a brief idea of what it does.></div><div class='del'>- Copyright (C) <year> <name of author></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'>- <signature of Ty Coon>, 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&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&id=dcc99c020b6a58e174091b32585159edfae18dd4'>ChangeLog</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7213 +0,0 @@</div><div class='del'>-2001-10-23 Chris Toshok <toshok@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <damon@ximian.com></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 <ettore@ximian.com></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 <jpr@ximian.com></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 <ettore@ximian.com></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 <danw@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <lark@linux.net.cn></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <federico@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <clahey@ximian.com></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 <federico@ximian.com></div><div class='del'>-</div><div class='del'>- * NEWS (Calendar): Calendar NEWS.</div><div class='del'>-</div><div class='del'>-2001-10-09 <NotZed@Ximian.com></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 <rodrigo@ximian.com></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 <ettore@ximian.com></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 <dmitry@fitmark.net>.</div><div class='del'>-</div><div class='del'>-2001-10-07 Dan Winship <danw@ximian.com></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 <lewing@ximian.com></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 <clahey@ximian.com></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 <aaron@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <clahey@ximian.com></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 <fejj@ximian.com></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 <danw@ximian.com></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 <fejj@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <nat@ximian.com></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 <ettore@ximian.com></div><div class='del'>-</div><div class='del'>- * configure.in: Bump version to 0.14. Depend on gal >= 0.12,</div><div class='del'>- gtkhtml >= 0.13.</div><div class='del'>-</div><div class='del'>-2001-09-21 Michael Zucchi <NotZed@Ximian.com></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 <clahey@ximian.com></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 <jpr@ximian.com></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 <clahey@ximian.com></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 <jpr@ximian.com></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 <yaneti@declera.com></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 <lewing@ximian.com></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 <jpr@ximian.com></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 <maddog@linux.org.hk></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 <danw@ximian.com></div><div class='del'>-</div><div class='del'>- * configure.in: one-line OpenSSL fix from Yanko Kaneti</div><div class='del'>- <yaneti@declera.com></div><div class='del'>-</div><div class='del'>-2001-09-05 Ettore Perazzoli <ettore@ximian.com></div><div class='del'>-</div><div class='del'>- * README: Updated slightly.</div><div class='del'>-</div><div class='del'>-2001-09-04 Ettore Perazzoli <ettore@ximian.com></div><div class='del'>-</div><div class='del'>- [Fixes by Neil Conway <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 <ettore@ximian.com></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 <fejj@ximian.com></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 <peterw@ximian.com></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 <clahey@ximian.com></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 <cyba@gnome.pl></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 <ettore@ximian.com></div><div class='del'>-</div><div class='del'>- [Patch from Nike Gerdts <michael.gerdts@usa.alcatel.com> 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 <danw@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <clahey@ximian.com></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 <peterw@ximian.com></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 <fejj@ximian.com></div><div class='del'>-</div><div class='del'>- * NEWS: Updated.</div><div class='del'>-</div><div class='del'>-2001-08-20 Jon Trowbridge <trow@ximian.com></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 <aaron@ximian.com></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 <toshok@ximian.com></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 <iain@ximian.com></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 <iain@ximian.com></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 <jleach@ximian.com></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 <trow@ximian.com></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 <kmaraas@gnome.org></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 <kmaraas@gnome.org></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 <danw@ximian.com></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 <kmaraas@gnome.org></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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 <clahey@ximian.com></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 <fejj@ximian.com></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 <jpr@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></div><div class='del'>-</div><div class='del'>- * configure.in: Ooops. We want GAL >= 0.10.0 and GtkHTML >=</div><div class='del'>- 0.11.0.</div><div class='del'>-</div><div class='del'>-2001-07-31 Ettore Perazzoli <ettore@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <clahey@ximian.com></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 <lewing@ximian.com></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 <jpr@ximian.com></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 <danw@ximian.com></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 <NotZed@Ximian.com></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 <jpr@ximian.com></div><div class='del'>-</div><div class='del'>- * NEWS: more updates</div><div class='del'>-</div><div class='del'>-2001-07-13 Jeffrey Stedfast <fejj@ximian.com></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 <jpr@ximian.com></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 <peterw@ximian.com></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 <peterw@ximian.com></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 <NotZed@Ximian.com></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 <mandreiana@yahoo.com></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 <peterw@ximian.com></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 <clahey@ximian.com></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 <dietmar@ximian.com></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 <damon@ximian.com></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 <clahey@ximian.com></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 <lewing@ximian.com></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 <fejj@ximian.com></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 <peterw@ximian.com></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 <ettore@ximian.com></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 <federico@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <peterw@ximian.com></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 <toshok@ximian.com></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 <rodrigo@gnome-db.org></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 <danw@ximian.com></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 <battery841@mediaone.net></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 <battery841@mediaone.net></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 <battery841@mediaone.net></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 <danw@ximian.com></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 <danw@ximian.com></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 <clahey@ximian.com></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 <danw@ximian.com></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 <danw@ximian.com></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 <jpr@ximian.com></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 <toshok@ximian.com></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 <jpr@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <jleach@ximian.com></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 <iain@ximian.com></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 <trow@ximian.com></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 <jpr@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <danw@ximian.com></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 <jpr@ximian.com></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 <danw@ximian.com></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 < 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 <kmaraas@gnome.org></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 <fejj@ximian.com></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 <duncan@ximian.com></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 <trow@ximian.com></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 <fejj@ximian.com></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 <toshok@ximian.com></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 <battery841@mediaone.net></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 <toshok@ximian.com></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 <iain@ximian.com></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 <fejj@ximian.com></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 <iain@ximian.com></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 <clahey@ximian.com></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 <fejj@ximian.com></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 <menesis@delfi.lt></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 <ettore@ximian.com></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 <danw@ximian.com></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 <danw@ximian.com></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 <ettore@ximian.com></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 <fejj@ximian.com></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 <duncan@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <clahey@ximian.com></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 <jpr@ximian.com></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 <menesis@delfi.lt></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 &&</div><div class='del'>- exit 1.</div><div class='del'>-</div><div class='del'>-2001-04-10 Jeffrey Stedfast <fejj@ximian.com></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 <toshok@ximian.com></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 <kmaraas@gnome.org></div><div class='del'>-</div><div class='del'>- * AUTHORS: Brag.</div><div class='del'>- </div><div class='del'>-2001-04-04 Gediminas Paulauskas <menesis@delfi.lt></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 <fejj@ximian.com></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 <menesis@delfi.lt></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 <danw@ximian.com></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 <danw@ximian.com></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 <trow@ximian.com></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 <rodo@ximian.com></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 <danw@ximian.com></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 <jimmac@ximian.com></div><div class='del'>-</div><div class='del'>- * art/new-message.xpm: file->new->mail message</div><div class='del'>- * art/folder.xpm: file->new->folder</div><div class='del'>- * art/new_appointment.xpm: file->new->appontment</div><div class='del'>- * art/print-preview.xpm: file->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 <jimmac@ximian.com></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 <clahey@ximian.com></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 <jimmac@ximian.com></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 <danw@ximian.com></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 <miguel@ximian.com></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 <fejj@ximian.com></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 <jimmac@ximian.com></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 <fejj@ximian.com></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 <clahey@ximian.com></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 <ettore@ximian.com></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 <fejj@ximian.com></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 <fejj@ximian.com></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 <fejj@ximian.com></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 <jimmac@ximian.com></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 <danw@ximian.com></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 <menesis@delfi.lt></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 <fejj@ximian.com></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 <danw@ximian.com></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 <toshok@ximian.com></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 <iain@ximian.com></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 <fejj@ximian.com></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 <jpr@ximian.com></div><div class='del'>-</div><div class='del'>- * README: Update</div><div class='del'>-</div><div class='del'>-2001-03-09 Dan Winship <danw@ximian.com></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 <clahey@ximian.com></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 <fejj@ximian.com></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 <ettore@ximian.com></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 <kmaraas@gnome.org></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 <jpr@ximian.com></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 <clahey@ximian.com></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 <danw@ximian.com></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 <clahey@ximian.com></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 <jpr@ximian.com></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 <toshok@ximian.com></div><div class='del'>-</div><div class='del'>- * configure.in: add logic to make sure we're building against OpenLDAP >= 2</div><div class='del'>-</div><div class='del'>-2001-03-01 Christopher James Lahey <clahey@ximian.com></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 <danw@ximian.com></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 <jimmac@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <danw@ximian.com></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 <jpr@ximian.com></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 <toshok@ximian.com></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 <menesis@delfi.lt> </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 <fejj@ximian.com></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 <michael@ximian.com></div><div class='del'>-</div><div class='del'>- * configure.in: depend on bonobo >= 0.36</div><div class='del'>-</div><div class='del'>-2001-02-08 Christopher James Lahey <clahey@ximian.com></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 <jpr@ximian.com></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 <fejj@ximian.com></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 <gdvieira@zaz.com.br></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 <clahey@ximian.com></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 <federico@ximian.com></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 <toshok@ximian.com></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 <jasonleach@usa.net></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 <eskil@eazel.com></div><div class='del'>-</div><div class='del'>- reviewed by: JP Rosevear <jpr@ximian.com></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 <visnovsky@nenya.ms.mff.cuni.cz></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 <jasonleach@usa.net></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 <clahey@helixcode.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <clahey@helixcode.com></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 <tigert@ximian.com></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 <jpr@ximian.com></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 <jasonleach@usa.net></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 <federico@ximian.com></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 <lewing@helixcode.com></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 <ettore@ximian.com></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 <toshok@helixcode.com></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 <danw@ximian.com></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 <clahey@ximian.com></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 <tigert@ximian.com></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->Move/Copy to folder -menu entries.</div><div class='del'>-</div><div class='del'>-2001-01-15 Tuomas Kuosmanen <tigert@ximian.com></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 <dietmar@ximian.com></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 <jpr@ximian.com></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 <damon@helixcode.com></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 <fejj@ximian.com></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 <federico@ximian.com></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 <clahey@helixcode.com></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 <danw@ximian.com></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 <danw@helixcode.com></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 <federico@helixcode.com></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 <tigert@helixcode.com></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 <federico@helixcode.com></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 <tigert@helixcode.com></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 <clahey@helixcode.com></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 <michael@helixcode.com></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 <NotZed@HelixCode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <fejj@helixcode.com></div><div class='del'>-</div><div class='del'>- * NEWS: Update.</div><div class='del'>-</div><div class='del'>-2000-12-14 JP Rosevear <jpr@helixcode.com></div><div class='del'>-</div><div class='del'>- * NEWS: Update</div><div class='del'>-</div><div class='del'>-2000-12-14 Christopher James Lahey <clahey@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <rodo@helixcode.com></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 <kmaraas@gnome.org></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 <clahey@helixcode.com></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 <jpr@helixcode.com></div><div class='del'>-</div><div class='del'>- * README: minor tweak</div><div class='del'>-</div><div class='del'>-2000-12-05 Not Zed <NotZed@HelixCode.com></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 <danw@helixcode.com></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 <fejj@helixcode.com></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 <menesis@delfi.lt></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 <jpr@helixcode.com></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 <danw@helixcode.com></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 <federico@helixcode.com></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 <jpr@helixcode.com></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 <NotZed@HelixCode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <NotZed@HelixCode.com></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 <NotZed@HelixCode.com></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 <danw@helixcode.com></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 <federico@helixcode.com></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 <miguel@helixcode.com></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 <clahey@helixcode.com></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 <michael@helixcode.com></div><div class='del'>-</div><div class='del'>- * configure.in: Require Bonobo >= 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 <clahey@helixcode.com></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 <fejj@helixcode.com></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 <danw@helixcode.com></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 <rodo@helixcode.com></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 <rodo@helixcode.com></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 <clahey@helixcode.com></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 <michael@helixcode.com></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 <menesis@delfi.lt></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 <menesis@delfi.lt></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <jpr@helixcode.com></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 <iain@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <rwb197@zepler.org></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <michael@helixcode.com></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 <tigert@helixcode.com></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 <peterw@helixcode.com></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 <kmaraas@gnome.org></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 <ettore@helixcode.com></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 <tigert@helixcode.com></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 <jpr@helixcode.com></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 <jpavel@helixcode.com></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 <menesis@delfi.lt></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 <tigert@helixcode.com></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 <toshok@helixcode.com></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 <christophe@merlet.net></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 <danw@helixcode.com></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 <fejj@helixcode.com></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 <michael@helixcode.com></div><div class='del'>-</div><div class='del'>- * configure.in: Bump Bonobo requirement to >= 0.20</div><div class='del'>-</div><div class='del'>-2000-10-05 Iain Holmes <iain@helixcode.com></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 <bissiri@eecs.umich.edu></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' -> `_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 <peterw@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <fejj@helixcode.com></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 <fejj@helixcode.com></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 <fejj@helixcode.com></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 <tigert@localhost></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <federico@helixcode.com></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <tigert@gimp.org></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 <danw@helixcode.com></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 <danw@helixcode.com></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 <fejj@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <tigert@localhost></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 <jpr@helixcode.com></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 <ettore@helixcode.com></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 <ettore@helixcode.com></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 <fejj@helixcode.com></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 <danw@helixcode.com></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 <ettore@helixcode.com></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 <tigert@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <fejj@helixcode.com></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 <fejj@helixcode.com></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 <clahey@helixcode.com></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 <fejj@helixcode.com></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 <peterw@helixcode.com></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 <lauris@helixcode.com></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 <peterw@helixcode.com></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 <danw@helixcode.com></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 <jba@pobox.com></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 <jpr@helixcode.com></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 <federico@helixcode.com></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 <lauris@helixcode.com></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 <lauris@helixcode.com></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 <clahey@helixcode.com></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 <lauris@helixcode.com></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 <clahey@helixcode.com></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 <mathieu@gnu.org></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <arik@helixcode.com></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 <lauris@helixcode.com></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 <peterw@helixcode.com></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 <federico@helixcode.com></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 <peterw@helixcode.com></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'>- <kwg@teleport.com></div><div class='del'>-</div><div class='del'>-2000-08-13 Chris Toshok <toshok@helixcode.com></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 <danw@helixcode.com></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <peterw@helixcode.com></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 <peterw@helixcode.com></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 <danw@helixcode.com></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 <jpr@helixcode.com></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 <mckinstry@computer.org></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 <michael@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <damon@helixcode.com></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 <NotZed@HelixCode.com></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 <danw@helixcode.com></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 <ettore@helixcode.com></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 <peterw@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <shooby@gnome.hu></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 <peterw@helixcode.com></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 <kabalak@gmx.net></div><div class='del'>- </div><div class='del'>- * evolution.desktop & 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 <federico@helixcode.com></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 <peterw@curious-george.helixcode.com></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 <federico@helixcode.com></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 <ettore@helixcode.com></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 <fejj@helixcode.com></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 <ettore@helixcode.com></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 <danw@helixcode.com></div><div class='del'>-</div><div class='del'>- * README: updates</div><div class='del'>-</div><div class='del'>-2000-07-10 Seth Alves <alves@hungry.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <tigert@gimp.org></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <tigert@gimp.org></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 <danw@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <peterw@helixcode.com></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 <ettore@helixcode.com></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 <peterw@curious-george.helixcode.com></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 <clahey@helixcode.com></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 <peterw@curious-george.helixcode.com></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 <ettore@helixcode.com></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 <peterw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <damon@helixcode.com></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 <clahey@helixcode.com></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 <damon@helixcode.com></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 <danw@helixcode.com></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 <damon@helixcode.com></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 <fejj@helixcode.com></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 <ettore@helixcode.com></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 <ettore@helixcode.com></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 <chyla@buy.pl></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <andersca@gnu.org></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 <mathieu@gnome.org></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <jba@pobox.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <federico@helixcode.com></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 <ettore@helixcode.com></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 <hector@scouts-es.org></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <fejj@helixcode.com></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 <shooby@gnome.hu></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 <danw@helixcode.com></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 <ettore@helixcode.com></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 <toshok@helixcode.com></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 <tigert@gimp.org></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 <federico@helixcode.com></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 <matt@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <ettore@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <danw@helixcode.com></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 <michael@helixcode.com></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 <ettore@helixcode.com></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 <danw@helixcode.com></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 <NotZed@HelixCode.com></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 <matt@helixcode.com></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 <NotZed@HelixCode.com></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 <NotZed@HelixCode.com></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 <andersca@gnu.org></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 <ettore@helixcode.com></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 <mjs@eazel.com>.</div><div class='del'>-</div><div class='del'>-2000-04-27 NotZed <NotZed@HelixCode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <NotZed@HelixCode.com></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 <matt@helixcode.com></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->timer and</div><div class='del'>- text->timeout on destroy.</div><div class='del'>-</div><div class='del'>-2000-04-26 Dan Winship <danw@helixcode.com></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 <clahey@helixcode.com></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 <ih@csd.abdn.ac.uk></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 <kabalak@gmx.net></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 <NotZed@HelixCode.com></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 <NotZed@HelixCode.com></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 <matt@helixcode.com></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 <NotZed@HelixCode.com></div><div class='del'>-</div><div class='del'>- * tests/test10.c: Removed some unecessary includes. From</div><div class='del'>- Ali Abdin <aliabdin@aucegypt.edu></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 <NotZed@HelixCode.com></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 <NotZed@HelixCode.com></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 <nakai@gnome.gr.jp></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 <danw@helixcode.com></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 <danw@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <matt@helixcode.com></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 <tigert@gimp.org></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 <toshok@helixcode.com></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 <miguel@gnu.org></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <lewing@helixcode.com></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 <clahey@helixcode.com></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 <ih@csd.abdn.ac.uk></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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)->items to NULL too soon. Fixed now.</div><div class='del'>-</div><div class='del'>-2000-04-11 Chris Toshok <toshok@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <miguel@gnu.org></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 <toshok@helixcode.com></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 <danw@helixcode.com></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 <damon@helixcode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <jba@pobox.com></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 <fejj@stampede.org></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <toshok@laptoph.xtoph.org></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 <clahey@helixcode.com></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 <miguel@gnu.org></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 <matt@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ih@csd.abdn.ac.uk>)</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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <rasta@renome.rovno.ua></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 <a.hyden@cyberpoint.se></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <toshok@laptoph.xtoph.org></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 <danw@helixcode.com></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 <tigert@gimp.org></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <matt@helixcode.com></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 <toshok@laptoph.xtoph.org></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@laptoph.xtoph.org></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 <danw@helixcode.com></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 <toshok@laptoph.xtoph.org></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 <clahey@helixcode.com></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 <NotZed@HelixCode.com></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 <tigert@gimp.org></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 <toshok@laptoph.xtoph.org></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->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->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->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 <clahey@helixcode.com></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 <toshok@laptoph.xtoph.org></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 <toshok@laptoph.xtoph.org></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 <clahey@helixcode.com></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 <NotZed@HelixCode.com></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 <NotZed@HelixCode.com></div><div class='del'>-</div><div class='del'>- * e-util/Makefile.am (libeutil_la_SOURCES): s-sexp.h -> 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 <toshok@laptoph.xtoph.org></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 <clahey@helixcode.com></div><div class='del'>-</div><div class='del'>- * addressbook/backend/ebook/e-card-types.h: Removed the</div><div class='del'>- address->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 <matt@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <sopwith@redhat.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <matt.loper@splashtech.com></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 <bertrand@helixcode.com></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 <bertrand@helixcode.com></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 <ettore@helixcode.com></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 <federico@helixcode.com></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 <ih@csd.abdn.ac.uk></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 <NotZed@HelixCode.com></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 <NotZed@HelixCode.com></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 <clahey@umich.edu></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 <clahey@umich.edu></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <Bertrand.Guiheneuf@aful.org></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 <danw@helixcode.com></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 <matt@helixcode.com></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 <ih@csd.abdn.ac.uk></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 <matt@helixcode.com></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 <matt@helixcode.com></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 <NotZed@HelixCode.com></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 <matt@helixcode.com></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 <miguel@nuclecu.unam.mx></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 <matt@helixcode.com></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 <notzed@zedzone.helixcode.com></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 <notzed@zedzone.helixcode.com></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 <matt@helixcode.com></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->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->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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <Bertrand.Guiheneuf@aful.org></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 <notzed@zedzone.helixcode.com></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 <Bertrand.Guiheneuf@aful.org></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 <notzed@zedzone.helixcode.com></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 <notzed@zedzone.helixcode.com></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 <matt@helixcode.com></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 <Bertrand.Guiheneuf@aful.org></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 <matt@helixcode.com></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 <notzed@zedzone.helixcode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <br> 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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 '<' to</div><div class='del'>- '&gt;', etc.</div><div class='del'>-</div><div class='del'>-2000-02-03 bertrand <Bertrand.Guiheneuf@aful.org></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 <matt@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <matt@helixcode.com></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 <mathieu@advogato.org></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <bertrand@helixcode.com></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 <federico@helixcode.com></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 <bertrand@helixcode.com></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 <matt@helixcode.com></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 <bertrand@helixcode.com></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 <bertrand@helixcode.com></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 <bertrand@helixcode.com></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 <federico@helixcode.com></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 <matt@helixcode.com></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 <federico@helixcode.com></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 <bertrand@helixcode.com></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 <matt@helixcode.com></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 <clahey@helixcode.com></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 <bertrand@helixcode.com></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 <bertrand@helixcode.com></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 <bertrand@helixcode.com></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 <clahey@helixcode.com></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 <bertrand@helixcode.com></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 <federico@helixcode.com></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 <bertrand@helixcode.com></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 <bertrand@helixcode.com></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 <bertrand@helixcode.com></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 <clahey@galapagos.helixcode.com></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 <clahey@helixcode.com></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 & 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 <bertrand@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <miguel@gnu.org></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 <sopwith@redhat.com></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 <miguel@gnu.org></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 <miguel@gnu.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <damon@karuna.freeserve.co.uk></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <nat@helixcode.com></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 <ettore@gnu.org></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 <ettore@gnu.org></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 <ettore@gnu.org></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 <ettore@gnu.org></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 <ettore@gnu.org></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 <config.h>.</div><div class='del'>- * camel/data-wrapper-repository.h: Likewise.</div><div class='del'>-</div><div class='del'>-1999-11-05 Ettore Perazzoli <ettore@gnu.org></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 <Bertrand.Guiheneuf@aful.org></div><div class='del'>-</div><div class='del'>- * camel/camel-folder.c (camel_folder_close): the </div><div class='del'>- folder->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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></div><div class='del'>-</div><div class='del'>- * camel/providers/maildir: Added (experimental) maildir </div><div class='del'>- provider written by Jukka Zitting <hukka@greywolves.org></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 <hukka@greywolves.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 >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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <rwb197@ecs.soton.ac.uk></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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->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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <rwb197@ecs.soton.ac.uk></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <rwb197@ecs.soton.ac.uk></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 <Bertrand.Guiheneuf@aful.org></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 <rwb197@ecs.soton.ac.uk></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <rwb197@ecs.soton.ac.uk></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <-> camel object</div><div class='del'>- (for example "multipart" <-> CamelMultipart</div><div class='del'>- * tests/tesst3.c: test data repository thing.</div><div class='del'>-</div><div class='del'>-1999-07-26 bertrand <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 -> 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 <Bertrand.Guiheneuf@aful.org></div><div class='del'>-</div><div class='del'>- * camel/gmime-content-field.c (gmime_content_field_construct_from_string): </div><div class='del'>- GString -> gchar</div><div class='del'>- use const to indicate copied parameter.</div><div class='del'>-</div><div class='del'>-1999-07-15 bertrand <Bertrand.Guiheneuf@aful.org></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 -> gchar</div><div class='del'>- </div><div class='del'>-1999-07-15 bertrand <Bertrand.Guiheneuf@aful.org></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 <miguel@gnu.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <drepper at cygnus.com></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 <drepper at cygnus.com></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 <drepper at cygnus.com></div><div class='del'>- initialize mode field in open(). </div><div class='del'>-</div><div class='del'>-1999-06-22 bertrand <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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' -> '\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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <raph@acm.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></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 <Bertrand.Guiheneuf@aful.org></div><div class='del'>-</div><div class='del'>- * autogen.sh (PKG_NAME): groomf -> 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&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&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&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&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&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 -> 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->Folder->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->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 & 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 & wombat. (Trow)</div><div class='del'>-</div><div class='del'>- - Made address lookup smarter; cut & 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 & Drop for card view.</div><div class='del'>-</div><div class='del'>-Calendar & 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 -> 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 & 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 & 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 & 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 & 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 & 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->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 & 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 & 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 & 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 & Jason)</div><div class='del'>-</div><div class='del'>-General:</div><div class='del'>-</div><div class='del'>- - New graphics/icons (Jakub & Tuomas)</div><div class='del'>-</div><div class='del'>- - UI Improvements (Anna & 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 "> " 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 & 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 & 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'>- <EXPERIMENTAL></div><div class='del'>-</div><div class='del'>- - Pilot synch work, mostly on pcs infrastructure and some todo work (JP)</div><div class='del'>- <EXPERIMENTAL></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 </PRE>, not <PRE>, 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&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=<evo-prefix> </div><div class='del'>---with-pisock=<pilot-link-prefix> --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=<evo-prefix> --with-nspr-includes=<nspr-includes-prefix></div><div class='del'>---with-nspr-libs=<nspr-libs-prefix> --with-nss-includes=<nss-includes-prefix></div><div class='del'>---with-nss-libs=<nss-libs-prefix></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&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&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&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 <clahey@ximian.com></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 <trow@ximian.com></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 & 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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></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 <lewing@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <ettore@ximian.com></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 <trow@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></div><div class='del'>-</div><div class='del'>- * gui/component/select-names/e-select-names.c: Added #include</div><div class='del'>- <gal/widgets/e-unicode.h>.</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 <clahey@ximian.com></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 <ettore@ximian.com></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 <trow@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <jpr@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <iain@ximian.com></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 <trow@ximian.com></div><div class='del'>-</div><div class='del'>- * backend/ebook/e-card.c (e_card_get_id): If card->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->id is NULL. (Bug #10164)</div><div class='del'>-</div><div class='del'>-2001-10-16 JP Rosevear <jpr@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></div><div class='del'>-</div><div class='del'>- * backend/pas/pas-backend-ldap.c (create_card_dtor): unref</div><div class='del'>- op->view.</div><div class='del'>- (pas_backend_ldap_process_create_card): ref op->view.</div><div class='del'>- (remove_card_dtor): unref op->view.</div><div class='del'>- (pas_backend_ldap_process_remove_card): ref op->view.</div><div class='del'>- (modify_card_dtor): unref op->view.</div><div class='del'>- (pas_backend_ldap_process_modify_card): ref op->view.</div><div class='del'>- (ldap_search_dtor): unref op->view.</div><div class='del'>- (pas_backend_ldap_search): ref op->view.</div><div class='del'>-</div><div class='del'>-2001-10-15 Chris Toshok <toshok@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <clahey@ximian.com></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'>- <e-util/e-passwords.h></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'>- <addressbook/gui/component/addressbook.h></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 <danw@ximian.com></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 <trow@ximian.com></div><div class='del'>-</div><div class='del'>- * gui/component/addressbook.c (new_contact_cb): Check that</div><div class='del'>- view->view != NULL.</div><div class='del'>- (save_contact_cb): Check that view->view != NULL.</div><div class='del'>- (search_cb): Check that view->view != NULL.</div><div class='del'>- (delete_contact_cb): Check that view->view != NULL.</div><div class='del'>- (print_cb): Check that view->view != NULL.</div><div class='del'>- (print_preview_cb): Check that view->view != NULL.</div><div class='del'>- (stop_loading_cb): Check that view->view != NULL.</div><div class='del'>- (cut_contacts_cb): Check that view->view != NULL.</div><div class='del'>- (copy_contacts_cb): Check that view->view != NULL.</div><div class='del'>- (paste_contacts_cb): Check that view->view != NULL.</div><div class='del'>- (select_all_contacts_cb): Check that view->view != NULL.</div><div class='del'>- (send_contact_cb): Check that view->view != NULL.</div><div class='del'>- (send_contact_to_cb): Check that view->view != NULL.</div><div class='del'>- (update_command_state): Check that view->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 <trow@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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 -></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 -></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 -> 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 <trow@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <iain@ximian.com></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 <clahey@ximian.com></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 <trow@gnu.org></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <toshok@ximian.com></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 <jpr@ximian.com></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 <toshok@ximian.com></div><div class='del'>-</div><div class='del'>- * backend/pas/pas-book-factory.c (pas_book_factory_destroy): use</div><div class='del'>- priv->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 <trow@ximian.com></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 <anna@ximian.com></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 <toshok@ximian.com></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->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 <trow@ximian.com></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 <jpr@ximian.com></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 <peterw@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <jpr@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></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 <jpr@ximian.com></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 <trow@ximian.com></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <lewing@ximian.com></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 <lewing@ximian.com></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 <trow@ximian.com></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->priv->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 <jirka@5z.com>') (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->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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <ettore@ximian.com></div><div class='del'>-</div><div class='del'>- [Automake 1.5 fixes pointed out by Richard Boulton</div><div class='del'>- <richard@tartarus.org>, 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 <toshok@ximian.com></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 <iain@ximian.com></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 <lewing@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 ->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 <trow@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <cyba@gnome.pl></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 <cyba@gnome.pl></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <ettore@ximian.com></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 <iain@ximian.com></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 <cyba@gnome.pl></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 <clahey@ximian.com></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 <cyba@gnome.pl></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 <trow@ximian.com></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->name.</div><div class='del'>- (quick_add_set_email): Check that email != qa->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->priv->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 <ettore@ximian.com></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 <trow@ximian.com></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 <cyba@gnome.pl></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 <trow@ximian.com></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->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 <toshok@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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 <jacob@ximian.com></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 <toshok@ximian.com></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->email == NULL.</div><div class='del'>-</div><div class='del'>-2001-08-21 Chris Toshok <toshok@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <damon@ximian.com></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 <ettore@ximian.com></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 <damon@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <ettore@ximian.com></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 <toshok@ximian.com></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 =></div><div class='del'>- addressbook_get_other_contact_storage.</div><div class='del'>- (addressbook_storage_add_source): register_storage =></div><div class='del'>- addressbook_get_other_contact_storage.</div><div class='del'>-</div><div class='del'>-2001-08-17 Chris Toshok <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <damon@ximian.com></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 <toshok@ximian.com></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 => uri.</div><div class='del'>- (e_select_names_option_activated): physical_uri => 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 <trow@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <fejj@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <federico@ximian.com></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 <trow@ximian.com></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 <danw@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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->auth</div><div class='del'>- if source == NULL (bug #7086).</div><div class='del'>-</div><div class='del'>-2001-08-13 Christopher James Lahey <clahey@ximian.com></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 <kmaraas@gnome.org></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 <trow@ximian.com></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 <anna@ximian.com></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 <anna@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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->New->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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <nat@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></div><div class='del'>-</div><div class='del'>- * gui/component/addressbook.c (search_cb): pass view->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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <jleach@ximian.com></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 <rodo@ximian.com></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 <rodo@ximian.com></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->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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <jleach@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></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 ->raw.</div><div class='del'>- (e_destination_is_empty): We aren't empty if ->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 ->raw.</div><div class='del'>- (e_destination_get_email): Use camel's parser to extract the email</div><div class='del'>- address from ->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 <jleach@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></div><div class='del'>-</div><div class='del'>- * backend/ebook/evolution-vcard-importer.c: Added #include</div><div class='del'>- <e-util/e-path.h>.</div><div class='del'>-</div><div class='del'>-2001-07-23 Zbigniew Chyla <cyba@gnome.pl></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 <trow@ximian.com></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 <jleach@ximian.com></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 <fcrozat@mandrakesoft.com></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 <jpr@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <jleach@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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 <danw@ximian.com></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 <danw@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <toshok@ximian.com></div><div class='del'>-</div><div class='del'>- [ patch contributed by Jos Dehaes <jos.dehaes@bigfoot.com> ]</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 <danw@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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->model with</div><div class='del'>- source, copy source onto section->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 <clahey@ximian.com></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'>- <thayward@gjpc.com>. Added accelerators to a few dialogs.</div><div class='del'>-</div><div class='del'>-2001-07-16 Jon Trowbridge <trow@ximian.com></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 <toshok@ximian.com></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 <iain@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <jpr@ximian.com></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 <fejj@ximian.com></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 <fejj@ximian.com></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 <iain@ximian.com></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 <jpr@ximian.com></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 <jleach@ximian.com></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 <jleach@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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->priv->file_db before calling do_create.</div><div class='del'>-</div><div class='del'>-2001-07-06 Christopher James Lahey <clahey@ximian.com></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 <trow@ximian.com></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 <kmaraas@gnome.org></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 <trow@ximian.com></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 & e-mail are available ("Jane Smith</div><div class='del'>- <jane@assbarn.com>"), or just the e-mail if the name is unknown</div><div class='del'>- ("jane@assbarn.com>"). 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 ->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->priv->book to NULL.</div><div class='del'>- (e_book_view_destroy): Unref book_view->priv->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->priv->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 <ettore@ximian.com></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 <anna@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></div><div class='del'>-</div><div class='del'>- * backend/ebook/e-card-compare.c (match_search_info_free): Set</div><div class='del'>- info->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 <clahey@ximian.com></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 <damon@ximian.com></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 <clahey@ximian.com></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 <peterw@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <cyba@gnome.pl></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 <trow@ximian.com></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->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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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" => "list".</div><div class='del'>- (fill_in_info): same.</div><div class='del'>-</div><div class='del'>-2001-06-28 Chris Toshok <toshok@ximian.com></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 <ettore@ximian.com></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 <toshok@ximian.com></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 & 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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <peterw@ximian.com></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 <toshok@ximian.com></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->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] [<email>]".</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 =></div><div class='del'>- Ximian.</div><div class='del'>- (e_contact_list_editor_init): hook up d&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 =></div><div class='del'>- Ximian.</div><div class='del'>-</div><div class='del'>-2001-06-25 Jon Trowbridge <trow@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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 <bar@zar.com>", 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 ->avoid list gets properly freed.</div><div class='del'>-</div><div class='del'>-2001-06-20 Chris Toshok <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <dave@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 -> 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 -> 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 -> 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 -></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'>- -> editable.</div><div class='del'>- (_phone_arrow_pressed): is_read_only -> 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 -></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 -> 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 -> 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 <trow@ximian.com></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 <eskil@eskil.dk></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <fejj@ximian.com></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 <danw@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <jleach@ximian.com></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->Remove.</div><div class='del'>-</div><div class='del'>-2001-06-05 Christopher James Lahey <clahey@ximian.com></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 <jleach@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <clahey@ximian.com></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 <federico@ximian.com></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 <toshok@ximian.com></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->adapter.</div><div class='del'>-</div><div class='del'>-2001-05-31 Chris Toshok <toshok@ximian.com></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 <toshok@ximian.com></div><div class='del'>-</div><div class='del'>- * gui/component/addressbook.c: Print Preview =></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 <peterw@ximian.com></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 <toshok@ximian.com></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 <danw@ximian.com></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 <peterw@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <danw@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></div><div class='del'>-</div><div class='del'>- * gui/widgets/e-minicard-view.c (add_to_list): MinicardViewModel</div><div class='del'>- -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <iain@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <menesis@delfi.lt></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 <toshok@ximian.com></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <danw@ximian.com></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 <trow@ximian.com></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 & event handling.</div><div class='del'>- (e_address_popup_set_name): Refresh when both name & 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 <clahey@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <jasonleach@usa.net></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 <clahey@ximian.com></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <clahey@ximian.com></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 <menesis@delfi.lt></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 <toshok@ximian.com></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 <toshok@ximian.com></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&d stuff.</div><div class='del'>-</div><div class='del'>-2001-04-08 Chris Toshok <toshok@ximian.com></div><div class='del'>-</div><div class='del'>- * printing/e-contact-print.c: add #include <sys/types.h> 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 <toshok@ximian.com></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 <kmaraas@gnome.org></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <iain@ximian.com></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 <menesis@delfi.lt></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 <trow@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></div><div class='del'>-</div><div class='del'>- * printing/e-contact-print.c: Added #include <libgnome/gnome-paper.h></div><div class='del'>- </div><div class='del'>- * printing/e-contact-print-envelope.c: Added #include <time.h></div><div class='del'>- and #include <libgnome/gnome-paper.h></div><div class='del'>-</div><div class='del'>-2001-04-03 Christopher James Lahey <clahey@ximian.com></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 <kmaraas@gnome.org></div><div class='del'>-</div><div class='del'>- * *.*: Clean up #includes. Replace <gnome.h>, <bonobo.h> and</div><div class='del'>- <gtk/gtk.h> with more finegrained headers where needed.</div><div class='del'>-</div><div class='del'>-2001-03-28 Christopher James Lahey <clahey@ximian.com></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 <clahey@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <iain@ximian.com></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 <miguel@ximian.com></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 <clahey@ximian.com></div><div class='del'>-</div><div class='del'>- * Merged branch:</div><div class='del'>-</div><div class='del'>-2001-03-14 Christopher James Lahey <clahey@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></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->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 <trow@ximian.com></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 <danw@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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->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 <iain@ximian.com></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 <jpr@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com></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 <ettore@ximian.com></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 <trow@ximian.com></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 > 1.</div><div class='del'>-</div><div class='del'>-2001-03-06 Jon Trowbridge <trow@ximian.com></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 <xkahn@cybersites.com></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 <trow@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <jpr@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <trow@ximian.com></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 > 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 <trow@ximian.com></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 <trow@ximian.com></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 <trow@ximian.com>").</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'>- <trow@ximian.com>"), 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 <clahey@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <federico@ximian.com></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 <toshok@ximian.com></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 <jpr@ximian.com></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 <trow@ximian.com></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 <toshok@ximian.com></div><div class='del'>-</div><div class='del'>- * backend/idl/addressbook.idl: add sequence<string> 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 <clahey@ximian.com></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 <iain@ximian.com></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 <clahey@ximian.com></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 <kmaraas@gnome.org></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 <jasonleach@usa.net></div><div class='del'>-</div><div class='del'>- * gui/component/addressbook.c: Removed an ancient #include</div><div class='del'>- <libgnorba/gnorba.h></div><div class='del'>-</div><div class='del'>-2001-02-11 Gediminas Paulauskas <menesis@delfi.lt></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <toshok@ximian.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@ximian.com></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 <toshok@ximian.com></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 <ettore@ximian.com></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 "->" icon.</div><div class='del'>-</div><div class='del'>-2001-01-25 Chris Toshok <toshok@ximian.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <ettore@ximian.com></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 <NotZed@Ximian.com></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 <toshok@ximian.com></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->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 <jasonleach@usa.net></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <danw@ximian.com></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 <jasonleach@usa.net></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 <jpr@ximian.com></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 <federico@ximian.com></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 <lewing@helixcode.com></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 <jasonleach@usa.net></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 <jpr@ximian.com></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 <jpr@ximian.com></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 <ettore@helixcode.com></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 <miguel@ximian.com></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 <toshok@helixcode.com></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 <miguel@gnu.org></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 <toshok@helixcode.com></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->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 <toshok@helixcode.com></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->name.</div><div class='del'>-</div><div class='del'>-2001-01-04 Chris Toshok <toshok@helixcode.com></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->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) => 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->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->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->passwd.</div><div class='del'>-</div><div class='del'>-2001-01-04 Christopher James Lahey <clahey@helixcode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <michael@helixcode.com></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 => 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 <toshok@helixcode.com></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 => 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 <toshok@helixcode.com></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 <miguel@helixcode.com></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 <clahey@helixcode.com></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 <mort@bork.org>.</div><div class='del'>-</div><div class='del'>-2000-12-21 JP Rosevear <jpr@helixcode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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->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 <clahey@helixcode.com></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 <michael@helixcode.com></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 <danw@helixcode.com></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 <iain@helixcode.com></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 -> into a GNOME stock image.</div><div class='del'>-</div><div class='del'>-2000-12-09 Christopher James Lahey <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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->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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <jpr@helixcode.com></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->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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <ettore@helixcode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <clahey@helixcode.com></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 <matt@bissiri.org></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 <jpr@helixcode.com></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 <clahey@helixcode.com></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 <bissiri@eecs.umich.edu></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 <clahey@helixcode.com></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 <bissiri@eecs.umich.edu></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 <clahey@helixcode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <federico@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <jpr@helixcode.com></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 <kmaraas@gnome.org></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 <clahey@helixcode.com></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 <michael@helixcode.com></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 <toshok@helixcode.com></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 => 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 <danw@helixcode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <michael@helixcode.com></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 <jpr@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <iain@helixcode.com></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 <iain@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <michael@helixcode.com></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 <ettore@helixcode.com></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 <iain@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <NotZed@HelixCode.com></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 <michael@helixcode.com></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></div><div class='del'>-</div><div class='del'>- * backend/ebook/e-card.c: Make sure that card->name and</div><div class='del'>- card->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 <bissiri@eecs.umich.edu></div><div class='del'>-</div><div class='del'>- * contact-editor/e-contact-editor-fullname.c (extract_info): If</div><div class='del'>- (editor->name == NULL), store ptr to newly allocated ECardName in</div><div class='del'>- editor->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 <fejj@helixcode.com></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 <nat@helixcode.com></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 <michael@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <michael@helixcode.com></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 <ettore@helixcode.com></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 <toshok@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <michael@helixcode.com></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 <michael@helixcode.com></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <jpavel@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <lauris@helixcode.com></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 <clahey@helixcode.com></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 <lauris@helixcode.com></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 <ettore@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <lauris@helixcode.com></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 <danw@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <clahey@helixcode.com></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 <jpr@helixcode.com></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 <jpr@helixcode.com></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 <danw@helixcode.com></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 <lauris@helixcode.com></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 <clahey@helixcode.com></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 <NotZed@HelixCode.com></div><div class='del'>-</div><div class='del'>- * gui/search/addresstypes.xml: Fixed fullname->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 <NotZed@HelixCode.com></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 <lauris@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <lewing@helixcode.com></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 <peterw@helixcode.com></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 <kwg@teleport.com></div><div class='del'>-</div><div class='del'>-2000-08-13 Chris Toshok <toshok@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <bratsche@gnome.org></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 <nat@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <michael@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <danw@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <michael@helixcode.com></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 <alves@hungry.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <kabalak@gmx.net></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <danw@helixcode.com></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 <ettore@helixcode.com></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 <peterw@curious-george.helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <andersca@gnu.org></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 <clahey@helixcode.com></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 <NotZed@HelixCode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <fejj@helixcode.com></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 <ettore@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></div><div class='del'>-</div><div class='del'>- * gui/component/addressbook.c (new_server_cb): Since</div><div class='del'>- ELDAPServer->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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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'>- <e-contact-save-as.h> 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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <federico@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 & creation</div><div class='del'>- function of the ETable here.</div><div class='del'>-</div><div class='del'>-2000-06-10 Christopher James Lahey <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <federico@helixcode.com></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 <federico@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <miguel@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <miguel@gnu.org></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 <frob@df.ru></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 <danw@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@the-dot-in.helixcode.com></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->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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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->book. Unreffed</div><div class='del'>- view->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 <clahey@helixcode.com></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->model</div><div class='del'>- and view->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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <ettore@helixcode.com></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 <matt@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <lewing@helixcode.com></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 <michael@helixcode.com></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 <federico@helixcode.com></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->priv->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->priv->uri.</div><div class='del'>-</div><div class='del'>-2000-04-30 Chris Toshok <toshok@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <toshok@helixcode.com></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 <clahey@helixcode.com></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 <lewing@helixcode.com></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 <ettore@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <clahey@helixcode.com></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 <ettore@helixcode.com></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 <federico@helixcode.com></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&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&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&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&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&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&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'>-<oaf_info></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_LDIF_ImporterFactory"</div><div class='del'>- type="exe"</div><div class='del'>- location="evolution-ldif-importer"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/ObjectFactory:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Factory to import LDIF files into Evolution."/></div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<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"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/Evolution/Importer:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="evolution:menu-name" type="string"</div><div class='del'>- value="LDAP Data Interchange Format (.ldif)"/></div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Imports LDIF files into Evolution."/></div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-</oaf_info></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&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'>-<oaf_info></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_VCard_ImporterFactory"</div><div class='del'>- type="exe"</div><div class='del'>- location="evolution-vcard-importer"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/ObjectFactory:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Factory to import VCard files into Evolution."/></div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<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"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/Evolution/Importer:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="evolution:menu-name" type="string"</div><div class='del'>- value="VCard (.vcf, .gcrd)"/></div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Imports VCard files into Evolution."/></div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-</oaf_info></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&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&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&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 <config.h></div><div class='del'>-#include <gtk/gtksignal.h></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->msg);</div><div class='del'>- g_free (resp->id);</div><div class='del'>-</div><div class='del'>- if (resp->book != CORBA_OBJECT_NIL) {</div><div class='del'>- CORBA_Environment ev;</div><div class='del'>- </div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- </div><div class='del'>- bonobo_object_release_unref (resp->book, &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 (&ev);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (resp->cursor != CORBA_OBJECT_NIL) {</div><div class='del'>- CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- </div><div class='del'>- bonobo_object_release_unref (resp->cursor, &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 (&ev);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (resp->book_view != CORBA_OBJECT_NIL) {</div><div class='del'>- CORBA_Environment ev;</div><div class='del'>- </div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- </div><div class='del'>- bonobo_object_release_unref (resp->book_view, &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 (&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->priv->timeout_lock)</div><div class='del'>- return TRUE;</div><div class='del'>-</div><div class='del'>- listener->priv->timeout_lock = TRUE;</div><div class='del'>-</div><div class='del'>- if (listener->priv->response_queue != NULL && !listener->priv->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->priv->response_queue == NULL || listener->priv->stopped) {</div><div class='del'>- listener->priv->timeout_id = 0;</div><div class='del'>- listener->priv->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->priv->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->priv->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->priv->response_queue = g_list_append (listener->priv->response_queue, response);</div><div class='del'>-</div><div class='del'>- if (listener->priv->timeout_id == 0) {</div><div class='del'>-</div><div class='del'>- /* 20 == an arbitrary small integer */</div><div class='del'>- listener->priv->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->priv->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->op = op;</div><div class='del'>- resp->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->priv->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->op = OpenBookResponse;</div><div class='del'>- resp->status = status;</div><div class='del'>- resp->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->priv->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->op = OpenProgressEvent;</div><div class='del'>- resp->msg = g_strdup (msg);</div><div class='del'>- resp->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->priv->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->op = CreateCardResponse;</div><div class='del'>- resp->status = status;</div><div class='del'>- resp->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->priv->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->op = GetCardResponse;</div><div class='del'>- resp->status = status;</div><div class='del'>- resp->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->priv->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->op = GetCursorResponse;</div><div class='del'>- resp->status = status;</div><div class='del'>- resp->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->priv->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->op = GetBookViewResponse;</div><div class='del'>- resp->status = status;</div><div class='del'>- resp->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->priv->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->op = GetChangesResponse;</div><div class='del'>- resp->status = status;</div><div class='del'>- resp->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->priv->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->op = LinkStatusEvent;</div><div class='del'>- resp->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->priv->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->op = WritableStatusEvent;</div><div class='del'>- resp->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->priv->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->op = AuthenticationResponse;</div><div class='del'>- resp->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->priv->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->op = GetSupportedFieldsResponse;</div><div class='del'>- resp->status = status;</div><div class='del'>- resp->fields = e_list_new ((EListCopyFunc)g_strdup, (EListFreeFunc)g_free, NULL);</div><div class='del'>-</div><div class='del'>- for (i = 0; i < fields->_length; i ++) {</div><div class='del'>- e_list_append (resp->fields, fields->_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->_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->_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->_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->_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->priv->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->priv->response_queue == NULL)</div><div class='del'>- return NULL;</div><div class='del'>-</div><div class='del'>- resp = listener->priv->response_queue->data;</div><div class='del'>-</div><div class='del'>- popped = listener->priv->response_queue;</div><div class='del'>- listener->priv->response_queue =</div><div class='del'>- g_list_remove_link (listener->priv->response_queue,</div><div class='del'>- listener->priv->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->vepv = &e_book_listener_vepv;</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- POA_GNOME_Evolution_Addressbook_BookListener__init ((PortableServer_Servant) servant, &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 (&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 (&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->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->priv->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->priv->timeout_id) {</div><div class='del'>- g_source_remove (listener->priv->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->priv->response_queue; l != NULL; l = l->next) {</div><div class='del'>- EBookListenerResponse *resp = l->data;</div><div class='del'>-</div><div class='del'>- response_free (resp);</div><div class='del'>- }</div><div class='del'>- g_list_free (listener->priv->response_queue);</div><div class='del'>-</div><div class='del'>- g_free (listener->priv);</div><div class='del'>- </div><div class='del'>- GTK_OBJECT_CLASS (e_book_listener_parent_class)->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->notifyOpenBookProgress = impl_BookListener_report_open_book_progress;</div><div class='del'>- epv->notifyBookOpened = impl_BookListener_respond_open_book;</div><div class='del'>-</div><div class='del'>- epv->notifyCardCreated = impl_BookListener_respond_create_card;</div><div class='del'>- epv->notifyCardRemoved = impl_BookListener_respond_remove_card;</div><div class='del'>- epv->notifyCardModified = impl_BookListener_respond_modify_card;</div><div class='del'>-</div><div class='del'>- epv->notifyAuthenticationResult = impl_BookListener_respond_authentication_result;</div><div class='del'>- epv->notifySupportedFields = impl_BookListener_response_get_supported_fields;</div><div class='del'>-</div><div class='del'>- epv->notifyCardRequested = impl_BookListener_respond_get_vcard;</div><div class='del'>- epv->notifyCursorRequested = impl_BookListener_respond_get_cursor;</div><div class='del'>- epv->notifyViewRequested = impl_BookListener_respond_get_view;</div><div class='del'>- epv->notifyChangesRequested = impl_BookListener_respond_get_changes;</div><div class='del'>-</div><div class='del'>- epv->notifyConnectionStatus = impl_BookListener_report_connection_status;</div><div class='del'>- epv->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->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->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 (), &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&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 <libgnome/gnome-defs.h></div><div class='del'>-#include <bonobo/bonobo-object.h></div><div class='del'>-#include <ebook/addressbook.h></div><div class='del'>-#include <ebook/e-book-types.h></div><div class='del'>-#include <e-util/e-list.h></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&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 <libgnome/gnome-defs.h></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&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 <trow@ximian.com></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 <config.h></div><div class='del'>-#include "e-book-util.h"</div><div class='del'>-</div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <gtk/gtksignal.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-util.h></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->cb (book, info->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->cb (NULL, info->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->cb = cb;</div><div class='del'>- info->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->data;</div><div class='del'>- if (sq->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->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->tag = book_issue_tag (book);</div><div class='del'>- sq->book = book;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (book));</div><div class='del'>- sq->query = g_strdup_printf (query);</div><div class='del'>- sq->cb = cb;</div><div class='del'>- sq->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->add_tag) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (sq->view), sq->add_tag);</div><div class='del'>- sq->add_tag = 0;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (sq->seq_complete_tag) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (sq->view), sq->seq_complete_tag);</div><div class='del'>- sq->seq_complete_tag = 0;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (sq->view) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (sq->view));</div><div class='del'>- sq->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->book, sq);</div><div class='del'>-</div><div class='del'>- g_free (sq->query);</div><div class='del'>-</div><div class='del'>- simple_query_disconnect (sq);</div><div class='del'>-</div><div class='del'>- if (sq->book)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (sq->book));</div><div class='del'>-</div><div class='del'>- g_list_foreach (sq->cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>- g_list_free (sq->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->cards = g_list_concat (sq->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->cb (sq->book, E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS, sq->cards, sq->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->cb (sq->book, E_BOOK_SIMPLE_QUERY_STATUS_OTHER_ERROR, NULL, sq->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->view = book_view;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (book_view));</div><div class='del'>-</div><div class='del'>- sq->add_tag = gtk_signal_connect (GTK_OBJECT (sq->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->seq_complete_tag = gtk_signal_connect (GTK_OBJECT (sq->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 && 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->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 && 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->cb (sq->book, E_BOOK_SIMPLE_QUERY_STATUS_CANCELLED, NULL, sq->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->name);</div><div class='del'>- g_free (info->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->data);</div><div class='del'>- if ((info->name == NULL || e_card_compare_name_to_string (card, info->name) >= E_CARD_MATCH_VAGUE)</div><div class='del'>- && (info->email == NULL || e_card_email_match_string (card, info->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->cb (book, status, filtered_cards, info->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 && 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 && !*name)</div><div class='del'>- name = NULL;</div><div class='del'>- if (email && !*email)</div><div class='del'>- email = NULL;</div><div class='del'>-</div><div class='del'>- if (name == NULL && 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 && *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 && !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 > 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 & name queries */</div><div class='del'>- if (email_query && 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->name = g_strdup (name);</div><div class='del'>- info->email = g_strdup (email);</div><div class='del'>- info->cb = cb;</div><div class='del'>- info->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->cb)</div><div class='del'>- info->cb (book, status, cards, info->closure);</div><div class='del'>-</div><div class='del'>- g_free (info->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->nickname = g_strdup (nickname);</div><div class='del'>- info->cb = cb;</div><div class='del'>- info->closure = closure;</div><div class='del'>-</div><div class='del'>- query = g_strdup_printf ("(is \"nickname\" \"%s\")", info->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->cb (book, </div><div class='del'>- info->email,</div><div class='del'>- cards && (status == E_BOOK_SIMPLE_QUERY_STATUS_SUCCESS) ? E_CARD (cards->data) : NULL,</div><div class='del'>- info->closure);</div><div class='del'>-</div><div class='del'>- g_free (info->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->email, have_address_query_cb, info);</div><div class='del'>-</div><div class='del'>- } else {</div><div class='del'>-</div><div class='del'>- info->cb (NULL, info->email, NULL, info->closure);</div><div class='del'>-</div><div class='del'>- g_free (info->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->email = g_strdup (email);</div><div class='del'>- info->cb = cb;</div><div class='del'>- info->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&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 <trow@ximian.com></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 <libgnome/gnome-defs.h></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&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 <config.h></div><div class='del'>-#include <gtk/gtksignal.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-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->priv->timeout_lock)</div><div class='del'>- return TRUE;</div><div class='del'>-</div><div class='del'>- listener->priv->timeout_lock = TRUE;</div><div class='del'>-</div><div class='del'>- if (listener->priv->response_queue != NULL && !listener->priv->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->priv->response_queue == NULL || listener->priv->stopped) {</div><div class='del'>- listener->priv->timeout_id = 0;</div><div class='del'>- listener->priv->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->priv->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->priv->stopped) {</div><div class='del'>- /* Free response and return */</div><div class='del'>- g_free (response->id);</div><div class='del'>- g_list_foreach (response->cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>- g_list_free (response->cards);</div><div class='del'>- g_free (response->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->priv->response_queue = g_list_append (listener->priv->response_queue, response);</div><div class='del'>-</div><div class='del'>- if (listener->priv->timeout_id == 0) {</div><div class='del'>-</div><div class='del'>- /* Here, 20 == an arbitrary small number */ </div><div class='del'>- listener->priv->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->priv->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->op = op;</div><div class='del'>- resp->id = NULL;</div><div class='del'>- resp->cards = NULL;</div><div class='del'>- resp->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->priv->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->op = op;</div><div class='del'>- resp->id = g_strdup (id);</div><div class='del'>- resp->cards = NULL;</div><div class='del'>- resp->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->priv->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->op = op;</div><div class='del'>- resp->id = NULL;</div><div class='del'>- resp->cards = NULL;</div><div class='del'>- resp->message = NULL;</div><div class='del'>- </div><div class='del'>- for ( i = 0; i < cards->_length; i++ ) {</div><div class='del'>- resp->cards = g_list_append(resp->cards, e_card_new(cards->_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->priv->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->op = op;</div><div class='del'>- resp->id = NULL;</div><div class='del'>- resp->cards = NULL;</div><div class='del'>- resp->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->priv->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->priv->response_queue == NULL)</div><div class='del'>- return NULL;</div><div class='del'>-</div><div class='del'>- resp = listener->priv->response_queue->data;</div><div class='del'>-</div><div class='del'>- popped = listener->priv->response_queue;</div><div class='del'>- listener->priv->response_queue =</div><div class='del'>- g_list_remove_link (listener->priv->response_queue,</div><div class='del'>- listener->priv->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->vepv = &e_book_view_listener_vepv;</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- POA_GNOME_Evolution_Addressbook_BookViewListener__init ((PortableServer_Servant) servant, &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 (&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 (&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->priv = g_new0 (EBookViewListenerPrivate, 1);</div><div class='del'>- listener->priv->response_queue = NULL;</div><div class='del'>- listener->priv->timeout_id = 0;</div><div class='del'>- listener->priv->timeout_lock = FALSE;</div><div class='del'>- listener->priv->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->priv->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->priv->timeout_id) {</div><div class='del'>- g_source_remove (listener->priv->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->priv->response_queue; l != NULL; l = l->next) {</div><div class='del'>- EBookViewListenerResponse *resp = l->data;</div><div class='del'>-</div><div class='del'>- g_free(resp->id);</div><div class='del'>-</div><div class='del'>- g_list_foreach(resp->cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>- g_list_free(resp->cards);</div><div class='del'>- resp->cards = NULL;</div><div class='del'>-</div><div class='del'>- g_free (resp->message);</div><div class='del'>- resp->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->priv->response_queue);</div><div class='del'>- </div><div class='del'>- g_free (listener->priv);</div><div class='del'>- listener->priv = NULL;</div><div class='del'>- </div><div class='del'>- GTK_OBJECT_CLASS (e_book_view_listener_parent_class)->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->notifyCardChanged = impl_BookViewListener_notify_card_changed;</div><div class='del'>- epv->notifyCardRemoved = impl_BookViewListener_notify_card_removed;</div><div class='del'>- epv->notifyCardAdded = impl_BookViewListener_notify_card_added;</div><div class='del'>- epv->notifySequenceComplete = impl_BookViewListener_notify_sequence_complete;</div><div class='del'>- epv->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->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->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 (), &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&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 <libgnome/gnome-defs.h></div><div class='del'>-#include <bonobo/bonobo-object.h></div><div class='del'>-#include <addressbook/backend/ebook/addressbook.h></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&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 <config.h></div><div class='del'>-#include <gtk/gtksignal.h></div><div class='del'>-#include <gtk/gtkmarshal.h></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->priv->book)</div><div class='del'>- g_list_foreach (resp->cards, add_book_iterator, book_view->priv->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->cards);</div><div class='del'>-</div><div class='del'>- g_list_foreach (resp->cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>- g_list_free (resp->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->priv->book)</div><div class='del'>- g_list_foreach (resp->cards, add_book_iterator, book_view->priv->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->cards);</div><div class='del'>-</div><div class='del'>- g_list_foreach (resp->cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>- g_list_free (resp->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->id);</div><div class='del'>-</div><div class='del'>- g_free(resp->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->message);</div><div class='del'>- g_free(resp->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->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->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 (&ev);</div><div class='del'>-</div><div class='del'>- book_view->priv->corba_book_view = bonobo_object_dup_ref(corba_book_view, &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 (&ev);</div><div class='del'>- book_view->priv->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 (&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->priv->listener = listener;</div><div class='del'>- book_view->priv->responses_queued_id = gtk_signal_connect (GTK_OBJECT (book_view->priv->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->priv->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 && E_IS_BOOK_VIEW (book_view));</div><div class='del'>- g_return_if_fail (book && E_IS_BOOK (book));</div><div class='del'>- g_return_if_fail (book_view->priv->book == NULL);</div><div class='del'>-</div><div class='del'>- book_view->priv->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 && E_IS_BOOK_VIEW (book_view));</div><div class='del'>- if (book_view->priv->listener)</div><div class='del'>- e_book_view_listener_stop (book_view->priv->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->priv = g_new0 (EBookViewPrivate, 1);</div><div class='del'>- book_view->priv->book = NULL;</div><div class='del'>- book_view->priv->corba_book_view = CORBA_OBJECT_NIL;</div><div class='del'>- book_view->priv->listener = NULL;</div><div class='del'>- book_view->priv->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->priv->book) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (book_view->priv->book));</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (book_view->priv->corba_book_view) {</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- bonobo_object_release_unref (book_view->priv->corba_book_view, &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 (&ev);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (book_view->priv->listener) {</div><div class='del'>- if (book_view->priv->responses_queued_id)</div><div class='del'>- gtk_signal_disconnect(GTK_OBJECT(book_view->priv->listener),</div><div class='del'>- book_view->priv->responses_queued_id);</div><div class='del'>- e_book_view_listener_stop (book_view->priv->listener);</div><div class='del'>- bonobo_object_unref (BONOBO_OBJECT(book_view->priv->listener));</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_free (book_view->priv);</div><div class='del'>-</div><div class='del'>- if (GTK_OBJECT_CLASS (e_book_view_parent_class)->destroy)</div><div class='del'>- GTK_OBJECT_CLASS (e_book_view_parent_class)->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->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->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->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->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->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->card_changed = NULL;</div><div class='del'>- klass->card_added = NULL;</div><div class='del'>- klass->card_removed = NULL;</div><div class='del'>- klass->sequence_complete = NULL;</div><div class='del'>- klass->status_message = NULL;</div><div class='del'>-</div><div class='del'>- object_class->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 (), &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&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 <libgnome/gnome-defs.h></div><div class='del'>-</div><div class='del'>-#include <addressbook/backend/ebook/e-card.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book-view-listener.h></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&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 <config.h></div><div class='del'>-#include <gtk/gtksignal.h></div><div class='del'>-#include <gtk/gtkmarshal.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <liboaf/liboaf.h></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->listener) {</div><div class='del'>- bonobo_object_unref (BONOBO_OBJECT (op->listener));</div><div class='del'>- op->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->tag = book->priv->op_tag++;</div><div class='del'>- op->active = TRUE;</div><div class='del'>- op->cb = cb;</div><div class='del'>- op->closure = closure;</div><div class='del'>- op->listener = listener;</div><div class='del'>-</div><div class='del'>- if (op->listener)</div><div class='del'>- bonobo_object_ref (BONOBO_OBJECT (op->listener));</div><div class='del'>-</div><div class='del'>- book->priv->pending_ops =</div><div class='del'>- g_list_append (book->priv->pending_ops, op);</div><div class='del'>-</div><div class='del'>- return op->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->priv->pending_ops);</div><div class='del'>-</div><div class='del'>- if (removed) {</div><div class='del'>- book->priv->pending_ops = g_list_remove_link (book->priv->pending_ops,</div><div class='del'>- removed);</div><div class='del'>- op = removed->data;</div><div class='del'>- e_book_op_free (op);</div><div class='del'>- g_list_free_1 (removed);</div><div class='del'>- book->priv->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->priv->pending_ops == NULL)</div><div class='del'>- return NULL;</div><div class='del'>-</div><div class='del'>- op = book->priv->pending_ops->data;</div><div class='del'>-</div><div class='del'>- popped = book->priv->pending_ops;</div><div class='del'>- book->priv->pending_ops =</div><div class='del'>- g_list_remove_link (book->priv->pending_ops,</div><div class='del'>- book->priv->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->priv->pending_ops; iter != NULL && !cancelled; iter = g_list_next (iter)) {</div><div class='del'>- EBookOp *op = iter->data;</div><div class='del'>- if (op->tag == tag) {</div><div class='del'>- op->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->cb)</div><div class='del'>- ((EBookIdCallback) op->cb) (book, resp->status, resp->id, op->closure);</div><div class='del'>- g_free (resp->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->cb)</div><div class='del'>- ((EBookCallback) op->cb) (book, resp->status, op->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->vcard != NULL) {</div><div class='del'>-</div><div class='del'>- card = e_card_new(resp->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->cb) {</div><div class='del'>- if (op->active)</div><div class='del'>- ((EBookCardCallback) op->cb) (book, resp->status, card, op->closure);</div><div class='del'>- else</div><div class='del'>- ((EBookCardCallback) op->cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op->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->cb) (book, resp->status, NULL, op->closure);</div><div class='del'>- }</div><div class='del'>- } else {</div><div class='del'>- ((EBookCardCallback) op->cb) (book, resp->status, NULL, op->closure);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_free (resp->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->cursor);</div><div class='del'>-</div><div class='del'>- if (cursor != NULL) {</div><div class='del'>- if (op->cb) {</div><div class='del'>- if (op->active)</div><div class='del'>- ((EBookCursorCallback) op->cb) (book, resp->status, cursor, op->closure);</div><div class='del'>- else</div><div class='del'>- ((EBookCursorCallback) op->cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op->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 (&ev);</div><div class='del'>-</div><div class='del'>- bonobo_object_release_unref (resp->cursor, &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 (&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->cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op->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->book_view, op->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->cb) {</div><div class='del'>- if (op->active)</div><div class='del'>- ((EBookBookViewCallback) op->cb) (book, resp->status, book_view, op->closure);</div><div class='del'>- else</div><div class='del'>- ((EBookBookViewCallback) op->cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op->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 (&ev);</div><div class='del'>-</div><div class='del'>- bonobo_object_release_unref (resp->book_view, &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 (&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->listener);</div><div class='del'>- ((EBookBookViewCallback) op->cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op->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->book_view, op->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->cb) {</div><div class='del'>- if (op->active)</div><div class='del'>- ((EBookBookViewCallback) op->cb) (book, resp->status, book_view, op->closure);</div><div class='del'>- else</div><div class='del'>- ((EBookBookViewCallback) op->cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op->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 (&ev);</div><div class='del'>-</div><div class='del'>- bonobo_object_release_unref (resp->book_view, &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 (&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->listener);</div><div class='del'>- ((EBookBookViewCallback) op->cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op->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->status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>- book->priv->corba_book = resp->book;</div><div class='del'>- book->priv->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->cb)</div><div class='del'>- ((EBookCallback) op->cb) (book, resp->status, op->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->msg, resp->percent);</div><div class='del'>-</div><div class='del'>- g_free (resp->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->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->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->cb) {</div><div class='del'>- if (op->active)</div><div class='del'>- ((EBookFieldsCallback) op->cb) (book, resp->status, resp->fields, op->closure);</div><div class='del'>- else</div><div class='del'>- ((EBookFieldsCallback) op->cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op->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->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->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->priv->iter = book->priv->book_factories->next;</div><div class='del'>- if (book->priv->iter) {</div><div class='del'>- GNOME_Evolution_Addressbook_BookFactory factory = book->priv->iter->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->open_response;</div><div class='del'>- gpointer closure = data->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->open_response;</div><div class='del'>- gpointer closure = data->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 (&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->priv->uri,</div><div class='del'>- bonobo_object_corba_objref (BONOBO_OBJECT (book->priv->listener)),</div><div class='del'>- &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 (&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 (&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 (&ev);</div><div class='del'>- </div><div class='del'>- info_list = oaf_query (query, NULL, &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->_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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- for (i = 0; i < info_list->_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->_buffer + i;</div><div class='del'>-</div><div class='del'>- factory = oaf_activate_from_id (info->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->iid);</div><div class='del'>- else</div><div class='del'>- book->priv->book_factories = g_list_append (book->priv->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->priv->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->priv->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->priv->uri);</div><div class='del'>- book->priv->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->priv->listener = e_book_listener_new ();</div><div class='del'>- if (book->priv->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->priv->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->open_response = open_response;</div><div class='del'>- load_uri_data->closure = closure;</div><div class='del'>-</div><div class='del'>- /* initialize the iterator, and load from the first one*/</div><div class='del'>- book->priv->iter = book->priv->book_factories;</div><div class='del'>-</div><div class='del'>- factory = book->priv->iter->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->priv->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->priv->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 (&ev);</div><div class='del'>-</div><div class='del'>- bonobo_object_release_unref (book->priv->corba_book, &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 (&ev);</div><div class='del'>-</div><div class='del'>- e_book_listener_stop (book->priv->listener);</div><div class='del'>- bonobo_object_unref (BONOBO_OBJECT (book->priv->listener));</div><div class='del'>-</div><div class='del'>- book->priv->listener = NULL;</div><div class='del'>- book->priv->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 && E_IS_BOOK (book), NULL);</div><div class='del'>-</div><div class='del'>- return book->priv->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 (&ev);</div><div class='del'>-</div><div class='del'>- if (book->priv->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->priv->corba_book, &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 (&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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- if (book->priv->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->priv->corba_book, &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 (&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 (&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->priv->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->priv->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 (&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->priv->corba_book,</div><div class='del'>- user,</div><div class='del'>- passwd,</div><div class='del'>- &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 (&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 (&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->priv->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 (&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->priv->corba_book, (const GNOME_Evolution_Addressbook_VCard) id, &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 (&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 (&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->priv->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->priv->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 (&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->priv->corba_book, (const GNOME_Evolution_Addressbook_CardId) id, &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 (&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 (&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->priv->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->book && card->book != book)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->book));</div><div class='del'>- card->book = book;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (card->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->priv->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 (&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->priv->corba_book, (const GNOME_Evolution_Addressbook_VCard) vcard, &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 (&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 (&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->priv->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->book && card->book != book)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->book));</div><div class='del'>- card->book = book;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (card->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->priv->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 (&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->priv->corba_book, (const GNOME_Evolution_Addressbook_VCard) vcard, &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 (&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 (&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->priv->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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_Book_checkConnection (book->priv->corba_book, &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 (&ev);</div><div class='del'>- return FALSE;</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- CORBA_exception_free (&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->priv->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 (&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->priv->corba_book, query, &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 (&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 (&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->priv->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 (&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->priv->corba_book, bonobo_object_corba_objref(BONOBO_OBJECT(listener)), query, &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 (&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 (&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->priv->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 (&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->priv->corba_book, bonobo_object_corba_objref(BONOBO_OBJECT(listener)), changeid, &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 (&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 (&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 >= book->priv->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->priv->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 (&ev);</div><div class='del'>-</div><div class='del'>- name = GNOME_Evolution_Addressbook_Book_getName (book->priv->corba_book, &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 (&ev);</div><div class='del'>- return NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- CORBA_exception_free (&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->priv = g_new0 (EBookPrivate, 1);</div><div class='del'>- book->priv->load_state = URINotLoaded;</div><div class='del'>- book->priv->op_tag = 1;</div><div class='del'>- book->priv->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->priv->load_state == URILoaded)</div><div class='del'>- e_book_unload_uri (book);</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- for (l = book->priv->book_factories; l; l = l->next) {</div><div class='del'>- CORBA_Object_release ((CORBA_Object)l->data, &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 (&ev);</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_free (book->priv->uri);</div><div class='del'>-</div><div class='del'>- g_free (book->priv);</div><div class='del'>-</div><div class='del'>- GTK_OBJECT_CLASS (e_book_parent_class)->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->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->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->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 (), &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&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 <libgnome/gnome-defs.h></div><div class='del'>-</div><div class='del'>-#include <addressbook/backend/ebook/e-card.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card-cursor.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book-view.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book-types.h></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&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 <trow@ximian.com></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 <config.h></div><div class='del'>-#include <ctype.h></div><div class='del'>-#include <gal/unicode/gunicode.h></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 && b && *a && *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 && b && *a && *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'>- && !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'>- && !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->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->name->given)</div><div class='del'>- givenv = g_strsplit (card->name->given, " ", 0);</div><div class='del'>- if (card->name->additional)</div><div class='del'>- addv = g_strsplit (card->name->additional, " ", 0);</div><div class='del'>- if (card->name->family)</div><div class='del'>- familyv = g_strsplit (card->name->family, " ", 0);</div><div class='del'>-</div><div class='del'>- fragment_count = 0;</div><div class='del'>- for (i = 0; givenv && givenv[i]; ++i)</div><div class='del'>- ++fragment_count;</div><div class='del'>- for (i = 0; addv && addv[i]; ++i)</div><div class='del'>- ++fragment_count;</div><div class='del'>- for (i = 0; familyv && familyv[i]; ++i)</div><div class='del'>- ++fragment_count;</div><div class='del'>- </div><div class='del'>- for (i = 0; namev[i] && 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 && 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 && 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 && 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 > 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->name;</div><div class='del'>- b = card2->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->given && b->given) {</div><div class='del'>- ++possible;</div><div class='del'>- if (name_fragment_match_with_synonyms (a->given, b->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->additional && b->additional) {</div><div class='del'>- ++possible;</div><div class='del'>- if (name_fragment_match_with_synonyms (a->additional, b->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->family && b->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->family, b->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 && E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>- g_return_val_if_fail (card2 && 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 && *addr2 && *addr1 != '@' && *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 && !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 != '@' && *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 && E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>- g_return_val_if_fail (card2 && E_IS_CARD (card2), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>-</div><div class='del'>- if (card1->email == NULL || card2->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->email);</div><div class='del'>- i2 = e_list_get_iterator (card2->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) && 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) && 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 && E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>- g_return_val_if_fail (card2 && 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 && E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>- g_return_val_if_fail (card2 && 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 && E_IS_CARD (card1), E_CARD_MATCH_NOT_APPLICABLE);</div><div class='del'>- g_return_val_if_fail (card2 && 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->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->avoid) {</div><div class='del'>- g_list_foreach (info->avoid, (GFunc) gtk_object_unref, NULL);</div><div class='del'>- g_list_free (info->avoid);</div><div class='del'>- info->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->cb (info->card, NULL, E_CARD_MATCH_NONE, info->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->data);</div><div class='del'>- GList *iterator;</div><div class='del'>- gboolean avoid = FALSE;</div><div class='del'>- for (iterator = info->avoid; iterator; iterator = iterator->next) {</div><div class='del'>- if (!strcmp (e_card_get_id (iterator->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->data);</div><div class='del'>- ECardMatchType this_match = e_card_compare (info->card, this_card);</div><div class='del'>- if ((gint)this_match > (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->cb (info->card, best_card, best_match, info->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->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->cb (info->card, NULL, E_CARD_MATCH_NONE, info->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->nickname)</div><div class='del'>- query_parts[p++] = g_strdup_printf ("(beginswith \"nickname\" \"%s\")", card->nickname);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>- if (card->name->given && strlen (card->name->given) > 1)</div><div class='del'>- query_parts[p++] = g_strdup_printf ("(contains \"full_name\" \"%s\")", card->name->given);</div><div class='del'>-</div><div class='del'>- if (card->name->additional && strlen (card->name->additional) > 1)</div><div class='del'>- query_parts[p++] = g_strdup_printf ("(contains \"full_name\" \"%s\")", card->name->additional);</div><div class='del'>-</div><div class='del'>- if (card->name->family && strlen (card->name->family) > 1)</div><div class='del'>- query_parts[p++] = g_strdup_printf ("(contains \"full_name\" \"%s\")", card->name->family);</div><div class='del'>-</div><div class='del'>- </div><div class='del'>- if (card->email) {</div><div class='del'>- EIterator *iter = e_list_get_iterator (card->email);</div><div class='del'>- while (e_iterator_is_valid (iter) && p < 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 > 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 && 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->card = card;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (card));</div><div class='del'>- info->cb = cb;</div><div class='del'>- info->closure = closure;</div><div class='del'>- info->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 && 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->card = card;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (card));</div><div class='del'>- info->cb = cb;</div><div class='del'>- info->closure = closure;</div><div class='del'>- info->avoid = g_list_copy (avoid);</div><div class='del'>- g_list_foreach (info->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&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 <trow@ximian.com></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<<0,</div><div class='del'>- E_CARD_MATCH_PART_ADDITIONAL_NAME = 1<<2,</div><div class='del'>- E_CARD_MATCH_PART_FAMILY_NAME = 1<<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&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 <clahey@ximian.com.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include <config.h></div><div class='del'>-#include <gtk/gtkobject.h></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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_CardCursor_unref( cursor->priv->corba_cursor, &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 (&ev);</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- CORBA_Object_release (cursor->priv->corba_cursor, &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 (&ev);</div><div class='del'>-</div><div class='del'>- if ( cursor->priv )</div><div class='del'>- g_free ( cursor->priv );</div><div class='del'>-</div><div class='del'>- GTK_OBJECT_CLASS (parent_class)->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->priv->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 (&ev);</div><div class='del'>-</div><div class='del'>- ret_val = GNOME_Evolution_Addressbook_CardCursor_count (cursor->priv->corba_cursor, &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 (&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->priv->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 (&en);</div><div class='del'>-</div><div class='del'>- vcard = GNOME_Evolution_Addressbook_CardCursor_getNth(cursor->priv->corba_cursor, n, &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 (&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->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->priv = g_new(ECardCursorPrivate, 1);</div><div class='del'>- cursor->priv->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 (), &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 (&ev);</div><div class='del'>-</div><div class='del'>- /*</div><div class='del'>- * Initialize cursor</div><div class='del'>- */</div><div class='del'>- cursor->priv->corba_cursor = CORBA_Object_duplicate(corba_cursor, &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 (&ev);</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- GNOME_Evolution_Addressbook_CardCursor_ref(cursor->priv->corba_cursor, &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 (&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&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 <gtk/gtkobject.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <addressbook/backend/ebook/addressbook.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card.h></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&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 <libversit/vcc.h></div><div class='del'>-#include <ebook/e-card.h></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&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 <clahey@ximian.com></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 <config.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <stdlib.h></div><div class='del'>-#include <string.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <e-util/e-unicode-i18n.h></div><div class='del'>-</div><div class='del'>-#include <libversit/vcc.h></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 &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 &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 (), &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->card ? e_card_duplicate (simple->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->card)</div><div class='del'>- return e_card_get_id(simple->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->card )</div><div class='del'>- e_card_set_id(simple->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->card)</div><div class='del'>- return e_card_get_vcard(simple->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->card)</div><div class='del'>- return e_card_get_vcard_assume_utf8(simple->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->destroy = e_card_simple_destroy;</div><div class='del'>- object_class->get_arg = e_card_simple_get_arg;</div><div class='del'>- object_class->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->card)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(simple->card));</div><div class='del'>- g_list_foreach(simple->temp_fields, (GFunc) g_free, NULL);</div><div class='del'>- g_list_free(simple->temp_fields);</div><div class='del'>- simple->temp_fields = NULL;</div><div class='del'>-</div><div class='del'>- for(i = 0; i < E_CARD_SIMPLE_PHONE_ID_LAST; i++)</div><div class='del'>- e_card_phone_unref (simple->phone[i]);</div><div class='del'>- for(i = 0; i < E_CARD_SIMPLE_EMAIL_ID_LAST; i++)</div><div class='del'>- g_free(simple->email[i]);</div><div class='del'>- for(i = 0; i < E_CARD_SIMPLE_ADDRESS_ID_LAST; i++)</div><div class='del'>- e_card_address_label_unref(simple->address[i]);</div><div class='del'>- for(i = 0; i < E_CARD_SIMPLE_ADDRESS_ID_LAST; i++)</div><div class='del'>- e_card_delivery_address_unref(simple->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->card)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(simple->card));</div><div class='del'>- g_list_foreach(simple->temp_fields, (GFunc) g_free, NULL);</div><div class='del'>- g_list_free(simple->temp_fields);</div><div class='del'>- simple->temp_fields = NULL;</div><div class='del'>- if (GTK_VALUE_OBJECT(*arg))</div><div class='del'>- simple->card = E_CARD(GTK_VALUE_OBJECT(*arg));</div><div class='del'>- else</div><div class='del'>- simple->card = NULL;</div><div class='del'>- if(simple->card)</div><div class='del'>- gtk_object_ref(GTK_OBJECT(simple->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->card;</div><div class='del'>- break;</div><div class='del'>- default:</div><div class='del'>- arg->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->card = NULL;</div><div class='del'>- for(i = 0; i < E_CARD_SIMPLE_PHONE_ID_LAST; i++)</div><div class='del'>- simple->phone[i] = NULL;</div><div class='del'>- for(i = 0; i < E_CARD_SIMPLE_EMAIL_ID_LAST; i++)</div><div class='del'>- simple->email[i] = NULL;</div><div class='del'>- for(i = 0; i < E_CARD_SIMPLE_ADDRESS_ID_LAST; i++)</div><div class='del'>- simple->address[i] = NULL;</div><div class='del'>- simple->temp_fields = NULL;</div><div class='del'>-</div><div class='del'>- simple->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->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", &address_list,</div><div class='del'>- "address", &delivery_list,</div><div class='del'>- "phone", &phone_list,</div><div class='del'>- "email", &email_list,</div><div class='del'>- NULL);</div><div class='del'>- for (i = 0; i < E_CARD_SIMPLE_PHONE_ID_LAST; i++) {</div><div class='del'>- e_card_phone_unref(simple->phone[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>- if ((phone->flags == phone_correspondences[i]) && (simple->phone[i] == NULL)) {</div><div class='del'>- simple->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 < E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>- if (((phone->flags & phone_correspondences[i]) == phone_correspondences[i]) && (simple->phone[i] == NULL)) {</div><div class='del'>- simple->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 < E_CARD_SIMPLE_EMAIL_ID_LAST; i++) {</div><div class='del'>- g_free(simple->email[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_EMAIL_ID_LAST; i ++) {</div><div class='del'>- if ((simple->email[i] == NULL)) {</div><div class='del'>- simple->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 < E_CARD_SIMPLE_ADDRESS_ID_LAST; i++) {</div><div class='del'>- e_card_address_label_unref(simple->address[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>- if (((address->flags & addr_correspondences[i]) == addr_correspondences[i]) && (simple->address[i] == NULL)) {</div><div class='del'>- simple->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 < E_CARD_SIMPLE_ADDRESS_ID_LAST; i++) {</div><div class='del'>- e_card_delivery_address_unref(simple->delivery[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>- if (((delivery->flags & addr_correspondences[i]) == addr_correspondences[i]) && (simple->delivery[i] == NULL)) {</div><div class='del'>- simple->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->card;</div><div class='del'>- if (card && simple->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", &address_list,</div><div class='del'>- "address", &delivery_list,</div><div class='del'>- "phone", &phone_list,</div><div class='del'>- "email", &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 < E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>- if (phone->flags == phone_correspondences[i]) {</div><div class='del'>- if (simple->phone[i]) {</div><div class='del'>- simple->phone[i]->flags = phone_correspondences[i];</div><div class='del'>- if (simple->phone[i]->number && *simple->phone[i]->number) {</div><div class='del'>- e_iterator_set(iterator, simple->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->phone[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>- if ((phone->flags & phone_correspondences[i]) == phone_correspondences[i]) {</div><div class='del'>- if (simple->phone[i]) {</div><div class='del'>- simple->phone[i]->flags = phone_correspondences[i];</div><div class='del'>- if (simple->phone[i]->number && *simple->phone[i]->number) {</div><div class='del'>- e_iterator_set(iterator, simple->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->phone[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_PHONE_ID_LAST; i ++) {</div><div class='del'>- if (simple->phone[i]) {</div><div class='del'>- simple->phone[i]->flags = phone_correspondences[i];</div><div class='del'>- e_list_append(phone_list, simple->phone[i]);</div><div class='del'>- e_card_phone_unref(simple->phone[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_EMAIL_ID_LAST; i ++) {</div><div class='del'>- if (simple->email[i]) {</div><div class='del'>- if (*simple->email[i]) {</div><div class='del'>- e_iterator_set(iterator, simple->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->email[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_EMAIL_ID_LAST; i ++) {</div><div class='del'>- if (simple->email[i]) {</div><div class='del'>- e_list_append(email_list, simple->email[i]);</div><div class='del'>- g_free(simple->email[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>- if ((address->flags & addr_correspondences[i]) == addr_correspondences[i]) {</div><div class='del'>- if (simple->address[i]) {</div><div class='del'>- simple->address[i]->flags = addr_correspondences[i];</div><div class='del'>- if (simple->address[i]->data && *simple->address[i]->data) {</div><div class='del'>- e_iterator_set(iterator, simple->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->address[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>- if (simple->address[i]) {</div><div class='del'>- simple->address[i]->flags = addr_correspondences[i];</div><div class='del'>- e_list_append(address_list, simple->address[i]);</div><div class='del'>- e_card_address_label_unref(simple->address[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>- if ((delivery->flags & addr_correspondences[i]) == addr_correspondences[i]) {</div><div class='del'>- if (simple->delivery[i]) {</div><div class='del'>- simple->delivery[i]->flags = addr_correspondences[i];</div><div class='del'>- if (!e_card_delivery_address_is_empty(simple->delivery[i])) {</div><div class='del'>- e_iterator_set(iterator, simple->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->delivery[i]);</div><div class='del'>- simple->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 < E_CARD_SIMPLE_ADDRESS_ID_LAST; i ++) {</div><div class='del'>- if (simple->delivery[i]) {</div><div class='del'>- simple->delivery[i]->flags = addr_correspondences[i];</div><div class='del'>- e_list_append(delivery_list, simple->delivery[i]);</div><div class='del'>- e_card_delivery_address_unref(simple->delivery[i]);</div><div class='del'>- simple->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->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->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->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->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->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->phone[id]);</div><div class='del'>- simple->phone[id] = e_card_phone_ref(phone);</div><div class='del'>- simple->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->email[id]);</div><div class='del'>- simple->email[id] = g_strdup(email);</div><div class='del'>- simple->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->address[id]);</div><div class='del'>- simple->address[id] = e_card_address_label_ref(address);</div><div class='del'>- e_card_delivery_address_unref(simple->delivery[id]);</div><div class='del'>- simple->delivery[id] = e_card_delivery_address_from_label(simple->address[id]);</div><div class='del'>- simple->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->delivery[id]);</div><div class='del'>- simple->delivery[id] = e_card_delivery_address_ref(delivery);</div><div class='del'>- simple->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->temp_fields = g_list_prepend(simple->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->card) {</div><div class='del'>- gtk_object_get(GTK_OBJECT(simple->card),</div><div class='del'>- field_data[field].ecard_field, &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->card) {</div><div class='del'>- gtk_object_get(GTK_OBJECT(simple->card),</div><div class='del'>- field_data[field].ecard_field, &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->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->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->card) {</div><div class='del'>- gboolean boole;</div><div class='del'>- gtk_object_get (GTK_OBJECT (simple->card),</div><div class='del'>- field_data[field].ecard_field, &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->card) {</div><div class='del'>- gtk_object_get(GTK_OBJECT(simple->card),</div><div class='del'>- "file_as", &string,</div><div class='del'>- NULL);</div><div class='del'>- if (string && *string)</div><div class='del'>- return g_strdup(string);</div><div class='del'>- gtk_object_get(GTK_OBJECT(simple->card),</div><div class='del'>- "full_name", &string,</div><div class='del'>- NULL);</div><div class='del'>- if (string && *string)</div><div class='del'>- return g_strdup(string);</div><div class='del'>- gtk_object_get(GTK_OBJECT(simple->card),</div><div class='del'>- "org", &string,</div><div class='del'>- NULL);</div><div class='del'>- if (string && *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->card) {</div><div class='del'>- gtk_object_get (GTK_OBJECT(simple->card),</div><div class='del'>- "name", &name,</div><div class='del'>- NULL);</div><div class='del'>- return g_strdup (name->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->card) {</div><div class='del'>- gtk_object_get (GTK_OBJECT(simple->card),</div><div class='del'>- "name", &name,</div><div class='del'>- NULL);</div><div class='del'>- return g_strdup (name->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->card) {</div><div class='del'>- gtk_object_get (GTK_OBJECT(simple->card),</div><div class='del'>- "name", &name,</div><div class='del'>- NULL);</div><div class='del'>- return g_strdup (name->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->card) {</div><div class='del'>- gtk_object_get (GTK_OBJECT(simple->card),</div><div class='del'>- "name", &name,</div><div class='del'>- NULL);</div><div class='del'>- return g_strdup (name->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->family && *name->family)</div><div class='del'>- *(stringptr++) = name->family;</div><div class='del'>- if (name->given && *name->given)</div><div class='del'>- *(stringptr++) = name->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->given && *name->given)</div><div class='del'>- *(stringptr++) = name->given;</div><div class='del'>- if (name->family && *name->family)</div><div class='del'>- *(stringptr++) = name->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->family && *name->family)</div><div class='del'>- *(stringptr++) = name->family;</div><div class='del'>- if (name->given && *name->given)</div><div class='del'>- *(stringptr++) = name->given;</div><div class='del'>- *stringptr = NULL;</div><div class='del'>- substring = g_strjoinv(", ", strings);</div><div class='del'>- if (!(company && *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 < 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->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->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->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->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->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->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->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->card) {</div><div class='del'>- EList *list;</div><div class='del'>- EIterator *iterator;</div><div class='del'>- gtk_object_get(GTK_OBJECT(simple->card),</div><div class='del'>- "arbitrary", &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->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->card) {</div><div class='del'>- EList *list;</div><div class='del'>- EIterator *iterator;</div><div class='del'>- gtk_object_get(GTK_OBJECT(simple->card),</div><div class='del'>- "arbitrary", &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->key, key))</div><div class='del'>- return arbitrary;</div><div class='del'>- }</div><div class='del'>- e_card_free_empty_lists (simple->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->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->changed = TRUE;</div><div class='del'>- gtk_object_get(GTK_OBJECT(simple->card),</div><div class='del'>- "arbitrary", &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->key, key)) {</div><div class='del'>- new_arb = e_card_arbitrary_new();</div><div class='del'>- new_arb->key = g_strdup(key);</div><div class='del'>- new_arb->type = g_strdup(type);</div><div class='del'>- new_arb->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->key = g_strdup(key);</div><div class='del'>- new_arb->type = g_strdup(type);</div><div class='del'>- new_arb->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 < E_CARD_SIMPLE_PHONE_ID_LAST, 0);</div><div class='del'>-</div><div class='del'>- for (i = 0; i < field_data_count; i ++)</div><div class='del'>- if (field_data[i].list_type_index == phone_id</div><div class='del'>- && 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 < E_CARD_SIMPLE_EMAIL_ID_LAST, 0);</div><div class='del'>-</div><div class='del'>- for (i = 0; i < field_data_count; i ++)</div><div class='del'>- if (field_data[i].list_type_index == email_id</div><div class='del'>- && 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 < E_CARD_SIMPLE_ADDRESS_ID_LAST, 0);</div><div class='del'>-</div><div class='del'>- for (i = 0; i < field_data_count; i ++)</div><div class='del'>- if (field_data[i].list_type_index == address_id</div><div class='del'>- && 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&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 <clahey@ximian.com></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 <time.h></div><div class='del'>-#include <gtk/gtk.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card-types.h></div><div class='del'>-#include <e-util/e-list.h></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&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 << 0,</div><div class='del'>- E_CARD_PHONE_WORK = 1 << 1,</div><div class='del'>- E_CARD_PHONE_HOME = 1 << 2,</div><div class='del'>- E_CARD_PHONE_VOICE = 1 << 3,</div><div class='del'>- E_CARD_PHONE_FAX = 1 << 4,</div><div class='del'>- E_CARD_PHONE_MSG = 1 << 5,</div><div class='del'>- E_CARD_PHONE_CELL = 1 << 6,</div><div class='del'>- E_CARD_PHONE_PAGER = 1 << 7,</div><div class='del'>- E_CARD_PHONE_BBS = 1 << 8,</div><div class='del'>- E_CARD_PHONE_MODEM = 1 << 9,</div><div class='del'>- E_CARD_PHONE_CAR = 1 << 10,</div><div class='del'>- E_CARD_PHONE_ISDN = 1 << 11,</div><div class='del'>- E_CARD_PHONE_VIDEO = 1 << 12,</div><div class='del'>- E_CARD_PHONE_ASSISTANT = 1 << 13,</div><div class='del'>- E_CARD_PHONE_CALLBACK = 1 << 14,</div><div class='del'>- E_CARD_PHONE_RADIO = 1 << 15,</div><div class='del'>- E_CARD_PHONE_TELEX = 1 << 16,</div><div class='del'>- E_CARD_PHONE_TTYTDD = 1 << 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 << 0, </div><div class='del'>- E_CARD_ADDR_WORK = 1 << 1,</div><div class='del'>- E_CARD_ADDR_POSTAL = 1 << 2, </div><div class='del'>- E_CARD_ADDR_PARCEL = 1 << 3, </div><div class='del'>- E_CARD_ADDR_DOM = 1 << 4,</div><div class='del'>- E_CARD_ADDR_INTL = 1 << 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&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 <config.h></div><div class='del'>-</div><div class='del'>-#include "e-card.h"</div><div class='del'>-</div><div class='del'>-#include <gal/util/e-i18n.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-</div><div class='del'>-#include <ctype.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <stdlib.h></div><div class='del'>-#include <string.h></div><div class='del'>-#include <time.h></div><div class='del'>-#include <math.h></div><div class='del'>-</div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <bonobo/bonobo-object-client.h></div><div class='del'>-#include <gal/util/e-util.h></div><div class='del'>-</div><div class='del'>-#include <libversit/vcc.h></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 &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 &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 (), &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->name == NULL)</div><div class='del'>- card->name = e_card_name_new();</div><div class='del'>- if (card->file_as == NULL)</div><div class='del'>- card->file_as = g_strdup("");</div><div class='del'>- if (card->fname == NULL)</div><div class='del'>- card->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->book) {</div><div class='del'>- new_card->book = card->book;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (new_card->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 (&now);</div><div class='del'>- now_tm = localtime (&now);</div><div class='del'>-</div><div class='del'>- g_date_set_dmy (dt, now_tm->tm_mday, now_tm->tm_mon + 1, now_tm->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 && E_IS_CARD (card), 0);</div><div class='del'>-</div><div class='del'>- if (card->last_use == NULL)</div><div class='del'>- return 0.0;</div><div class='del'>-</div><div class='del'>- e_card_get_today (&today);</div><div class='del'>- g_date_set_dmy (&last_use, card->last_use->day, card->last_use->month, card->last_use->year);</div><div class='del'>-</div><div class='del'>- days_since_last_use = g_date_julian (&today) - g_date_julian (&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 < 0)</div><div class='del'>- days_since_last_use = 0;</div><div class='del'>-</div><div class='del'>- return MAX (card->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 && E_IS_CARD (card));</div><div class='del'>-</div><div class='del'>- e_card_get_today (&today);</div><div class='del'>- use_score = e_card_get_use_score (card);</div><div class='del'>-</div><div class='del'>- if (card->last_use == NULL)</div><div class='del'>- card->last_use = g_new (ECardDate, 1);</div><div class='del'>-</div><div class='del'>- card->last_use->day = g_date_day (&today);</div><div class='del'>- card->last_use->month = g_date_month (&today);</div><div class='del'>- card->last_use->year = g_date_year (&today);</div><div class='del'>-</div><div class='del'>- card->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 && E_IS_CARD (card), NULL);</div><div class='del'>-</div><div class='del'>- return card->id ? card->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 && E_IS_CARD (card));</div><div class='del'>-</div><div class='del'>- if ( card->id )</div><div class='del'>- g_free(card->id);</div><div class='del'>- card->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 && E_IS_CARD (card), NULL);</div><div class='del'>-</div><div class='del'>- return card->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 && E_IS_CARD (card));</div><div class='del'>- </div><div class='del'>- if (card->book)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->book));</div><div class='del'>- card->book = book;</div><div class='del'>- if (card->book)</div><div class='del'>- gtk_object_ref (GTK_OBJECT (card->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->year, 1000, 9999),</div><div class='del'>- CLAMP(dt->month, 1, 12),</div><div class='del'>- CLAMP(dt->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) & 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) & 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 && (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 & 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 & 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 & 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, &is_ascii, &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->file_as && *card->file_as)</div><div class='del'>- ADD_PROP_VALUE(vobj, "X-EVOLUTION-FILE-AS", card->file_as);</div><div class='del'>- else if (card->file_as)</div><div class='del'>- addProp(vobj, "X-EVOLUTION-FILE_AS");</div><div class='del'>-</div><div class='del'>- if (card->fname && *card->fname)</div><div class='del'>- ADD_PROP_VALUE(vobj, VCFullNameProp, card->fname);</div><div class='del'>- else if (card->fname)</div><div class='del'>- addProp(vobj, VCFullNameProp);</div><div class='del'>-</div><div class='del'>- if ( card->name && (card->name->prefix || card->name->given || card->name->additional || card->name->family || card->name->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->name->prefix )</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCNamePrefixesProp, card->name->prefix);</div><div class='del'>- if ( card->name->given ) </div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCGivenNameProp, card->name->given);</div><div class='del'>- if ( card->name->additional )</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCAdditionalNamesProp, card->name->additional);</div><div class='del'>- if ( card->name->family )</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCFamilyNameProp, card->name->family);</div><div class='del'>- if ( card->name->suffix )</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(nameprop, VCNameSuffixesProp, card->name->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->name)</div><div class='del'>- addProp(vobj, VCNameProp);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>- if ( card->address ) {</div><div class='del'>- EIterator *iterator = e_list_get_iterator(card->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->flags);</div><div class='del'>- if (address->po)</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCPostalBoxProp, address->po);</div><div class='del'>- if (address->ext)</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCExtAddressProp, address->ext);</div><div class='del'>- if (address->street)</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCStreetAddressProp, address->street);</div><div class='del'>- if (address->city)</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCCityProp, address->city);</div><div class='del'>- if (address->region)</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCRegionProp, address->region);</div><div class='del'>- if (address->code)</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCPostalCodeProp, address->code);</div><div class='del'>- if (address->country)</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(addressprop, VCCountryNameProp, address->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->address_label ) {</div><div class='del'>- EIterator *iterator = e_list_get_iterator(card->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->data)</div><div class='del'>- labelprop = ADD_PROP_VALUE(vobj, VCDeliveryLabelProp, address_label->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->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->phone ) { </div><div class='del'>- EIterator *iterator = e_list_get_iterator(card->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->number);</div><div class='del'>- </div><div class='del'>- set_phone_flags (phoneprop, phone->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->email ) { </div><div class='del'>- EIterator *iterator = e_list_get_iterator(card->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->bday ) {</div><div class='del'>- char *value;</div><div class='del'>- value = e_card_date_to_string (card->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->url)</div><div class='del'>- ADD_PROP_VALUE(vobj, VCURLProp, card->url);</div><div class='del'>-</div><div class='del'>- if (card->org || card->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->org)</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(orgprop, VCOrgNameProp, card->org);</div><div class='del'>- if (card->org_unit)</div><div class='del'>- ADD_PROP_VALUE_SET_IS_ASCII(orgprop, VCOrgUnitProp, card->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->office)</div><div class='del'>- ADD_PROP_VALUE(vobj, "X-EVOLUTION-OFFICE", card->office);</div><div class='del'>-</div><div class='del'>- if (card->title)</div><div class='del'>- ADD_PROP_VALUE(vobj, VCTitleProp, card->title);</div><div class='del'>-</div><div class='del'>- if (card->role)</div><div class='del'>- ADD_PROP_VALUE(vobj, VCBusinessRoleProp, card->role);</div><div class='del'>- </div><div class='del'>- if (card->manager)</div><div class='del'>- ADD_PROP_VALUE(vobj, "X-EVOLUTION-MANAGER", card->manager);</div><div class='del'>- </div><div class='del'>- if (card->assistant)</div><div class='del'>- ADD_PROP_VALUE(vobj, "X-EVOLUTION-ASSISTANT", card->assistant);</div><div class='del'>- </div><div class='del'>- if (card->nickname)</div><div class='del'>- ADD_PROP_VALUE(vobj, "NICKNAME", card->nickname);</div><div class='del'>-</div><div class='del'>- if (card->spouse)</div><div class='del'>- ADD_PROP_VALUE(vobj, "X-EVOLUTION-SPOUSE", card->spouse);</div><div class='del'>-</div><div class='del'>- if ( card->anniversary ) {</div><div class='del'>- char *value;</div><div class='del'>- value = e_card_date_to_string (card->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->mailer) {</div><div class='del'>- ADD_PROP_VALUE(vobj, VCMailerProp, card->mailer);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (card->caluri)</div><div class='del'>- addPropValueQP(vobj, "CALURI", card->caluri);</div><div class='del'>-</div><div class='del'>- if (card->fburl)</div><div class='del'>- ADD_PROP_VALUE(vobj, "FBURL", card->fburl);</div><div class='del'>- </div><div class='del'>- if (card->note) {</div><div class='del'>- VObject *noteprop;</div><div class='del'>-</div><div class='del'>- noteprop = ADD_PROP_VALUE(vobj, VCNoteProp, card->note);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (card->last_use) {</div><div class='del'>- char *value;</div><div class='del'>- value = e_card_date_to_string (card->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->raw_use_score > 0) {</div><div class='del'>- char *value;</div><div class='del'>- value = g_strdup_printf ("%f", card->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->related_contacts && *card->related_contacts) {</div><div class='del'>- ADD_PROP_VALUE(vobj, XEV_RELATED_CONTACTS, card->related_contacts);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (card->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->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 > 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->wants_html_set) {</div><div class='del'>- ADD_PROP_VALUE (vobj, XEV_WANTS_HTML, card->wants_html ? "TRUE" : "FALSE");</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (card->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->list_show_addresses ? "TRUE" : "FALSE");</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (card->arbitrary) {</div><div class='del'>- EIterator *iterator;</div><div class='del'>- for (iterator = e_list_get_iterator(card->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->value) {</div><div class='del'>- arb_object = ADD_PROP_VALUE (vobj, XEV_ARBITRARY, arbitrary->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->type) {</div><div class='del'>- ADD_PROP_VALUE (arb_object, "TYPE", arbitrary->type);</div><div class='del'>- }</div><div class='del'>- if (arbitrary->key) {</div><div class='del'>- addProp (arb_object, arbitrary->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->id ? card->id : ""));</div><div class='del'>-</div><div class='del'>-#if 0 </div><div class='del'>- if (crd->photo.prop.used) {</div><div class='del'>- vprop = addPropSizedValue (vobj, VCPhotoProp, </div><div class='del'>- crd->photo.data, crd->photo.size);</div><div class='del'>- add_PhotoType (vprop, crd->photo.type);</div><div class='del'>- add_CardProperty (vprop, &crd->photo.prop);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (crd->xtension.l) {</div><div class='del'>- GList *node;</div><div class='del'>- </div><div class='del'>- for (node = crd->xtension.l; node; node = node->next) {</div><div class='del'>- CardXProperty *xp = (CardXProperty *) node->data;</div><div class='del'>- ADD_PROP_VALUE (vobj, xp->name, xp->data);</div><div class='del'>- add_CardProperty (vobj, &xp->prop);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (crd->timezn.prop.used) {</div><div class='del'>- char *str;</div><div class='del'>- </div><div class='del'>- str = card_timezn_str (crd->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, &crd->timezn.prop);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (crd->geopos.prop.used) {</div><div class='del'>- char *str;</div><div class='del'>- </div><div class='del'>- str = card_geopos_str (crd->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, &crd->geopos.prop);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (crd->logo.prop.used) {</div><div class='del'>- vprop = addPropSizedValue (vobj, VCLogoProp, </div><div class='del'>- crd->logo.data, crd->logo.size);</div><div class='del'>- add_PhotoType (vprop, crd->logo.type);</div><div class='del'>- add_CardProperty (vprop, &crd->logo.prop);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (crd->agent)</div><div class='del'>- addVObjectProp (vobj, card_convert_to_vobject (crd->agent));</div><div class='del'>- </div><div class='del'>- if (crd->sound.prop.used) {</div><div class='del'>- if (crd->sound.type != SOUND_PHONETIC)</div><div class='del'>- vprop = addPropSizedValue (vobj, VCPronunciationProp,</div><div class='del'>- crd->sound.data, crd->sound.size);</div><div class='del'>- else</div><div class='del'>- vprop = ADD_PROP_VALUE (vobj, VCPronunciationProp, </div><div class='del'>- crd->sound.data);</div><div class='del'>- </div><div class='del'>- add_SoundType (vprop, crd->sound.type);</div><div class='del'>- add_CardProperty (vprop, &crd->sound.prop);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (crd->key.prop.used) {</div><div class='del'>- vprop = ADD_PROP_VALUE (vobj, VCPublicKeyProp, crd->key.data);</div><div class='del'>- add_KeyType (vprop, crd->key.type);</div><div class='del'>- add_CardProperty (vprop, &crd->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->next) {</div><div class='del'>- VObject *tempvobj;</div><div class='del'>- ECard *card = list->data;</div><div class='del'>-</div><div class='del'>- tempvobj = e_card_get_vobject (card, FALSE);</div><div class='del'>- addList (&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->file_as )</div><div class='del'>- g_free(card->file_as);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->name);</div><div class='del'>-</div><div class='del'>- card->name = e_card_name_new();</div><div class='del'>-</div><div class='del'>- card->name->family = e_v_object_get_child_value (vobj, VCFamilyNameProp, default_charset);</div><div class='del'>- card->name->given = e_v_object_get_child_value (vobj, VCGivenNameProp, default_charset);</div><div class='del'>- card->name->additional = e_v_object_get_child_value (vobj, VCAdditionalNamesProp, default_charset);</div><div class='del'>- card->name->prefix = e_v_object_get_child_value (vobj, VCNamePrefixesProp, default_charset);</div><div class='del'>- card->name->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->fname )</div><div class='del'>- g_free(card->fname);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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, &next_email);</div><div class='del'>- gtk_object_get(GTK_OBJECT(card),</div><div class='del'>- "email", &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->bday )</div><div class='del'>- g_free(card->bday);</div><div class='del'>- card->bday = g_new(ECardDate, 1);</div><div class='del'>- *(card->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, &(next_phone->number));</div><div class='del'>- next_phone->flags = get_phone_flags(vobj);</div><div class='del'>-</div><div class='del'>- gtk_object_get(GTK_OBJECT(card),</div><div class='del'>- "phone", &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->flags = get_address_flags (vobj);</div><div class='del'>- next_addr->po = e_v_object_get_child_value (vobj, VCPostalBoxProp, default_charset);</div><div class='del'>- next_addr->ext = e_v_object_get_child_value (vobj, VCExtAddressProp, default_charset);</div><div class='del'>- next_addr->street = e_v_object_get_child_value (vobj, VCStreetAddressProp, default_charset);</div><div class='del'>- next_addr->city = e_v_object_get_child_value (vobj, VCCityProp, default_charset);</div><div class='del'>- next_addr->region = e_v_object_get_child_value (vobj, VCRegionProp, default_charset);</div><div class='del'>- next_addr->code = e_v_object_get_child_value (vobj, VCPostalCodeProp, default_charset);</div><div class='del'>- next_addr->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", &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->flags = get_address_flags (vobj);</div><div class='del'>- assign_string(vobj, default_charset, &next_addr->data);</div><div class='del'>-</div><div class='del'>- gtk_object_get(GTK_OBJECT(card),</div><div class='del'>- "address_label", &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->url)</div><div class='del'>- g_free(card->url);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->org);</div><div class='del'>- card->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->org_unit);</div><div class='del'>- card->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->office )</div><div class='del'>- g_free(card->office);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->title )</div><div class='del'>- g_free(card->title);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->role)</div><div class='del'>- g_free(card->role);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->manager )</div><div class='del'>- g_free(card->manager);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->assistant )</div><div class='del'>- g_free(card->assistant);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->nickname)</div><div class='del'>- g_free(card->nickname);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->spouse )</div><div class='del'>- g_free(card->spouse);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->anniversary)</div><div class='del'>- g_free(card->anniversary);</div><div class='del'>- card->anniversary = g_new(ECardDate, 1);</div><div class='del'>- *(card->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->mailer )</div><div class='del'>- g_free(card->mailer);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->caluri);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->fburl);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->note);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->related_contacts);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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", &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->wants_html = TRUE;</div><div class='del'>- card->wants_html_set = TRUE;</div><div class='del'>- }</div><div class='del'>- if (!strcasecmp(str, "false")) {</div><div class='del'>- card->wants_html = FALSE;</div><div class='del'>- card->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->list = TRUE;</div><div class='del'>- }</div><div class='del'>- if (!strcasecmp(str, "false")) {</div><div class='del'>- card->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->list_show_addresses = TRUE;</div><div class='del'>- }</div><div class='del'>- if (!strcasecmp(str, "false")) {</div><div class='del'>- card->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 (&iterator, vobj); moreIteration(&iterator); ) {</div><div class='del'>- VObject *temp = nextVObject(&iterator);</div><div class='del'>- const char *name = vObjectName(temp);</div><div class='del'>- if (name && !strcmp(name, "TYPE")) {</div><div class='del'>- g_free(arbitrary->type);</div><div class='del'>- assign_string(temp, default_charset, &(arbitrary->type));</div><div class='del'>- } else {</div><div class='del'>- g_free(arbitrary->key);</div><div class='del'>- arbitrary->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, &(arbitrary->value));</div><div class='del'>- </div><div class='del'>- gtk_object_get(GTK_OBJECT(card),</div><div class='del'>- "arbitrary", &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->id);</div><div class='del'>- assign_string(vobj, default_charset, &(card->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->last_use )</div><div class='del'>- g_free(card->last_use);</div><div class='del'>- card->last_use = g_new(ECardDate, 1);</div><div class='del'>- *(card->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->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->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)->klass)->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(&iterator, vobj);</div><div class='del'>- while(moreIteration (&iterator)) {</div><div class='del'>- parse_attribute(card, nextVObject(&iterator), default_charset);</div><div class='del'>- }</div><div class='del'>- if (!card->fname) {</div><div class='del'>- card->fname = g_strdup("");</div><div class='del'>- }</div><div class='del'>- if (!card->name) {</div><div class='del'>- card->name = e_card_name_from_string(card->fname);</div><div class='del'>- }</div><div class='del'>- if (!card->file_as) {</div><div class='del'>- ECardName *name = card->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->family && *name->family)</div><div class='del'>- *(stringptr++) = name->family;</div><div class='del'>- if (name->given && *name->given)</div><div class='del'>- *(stringptr++) = name->given;</div><div class='del'>- *stringptr = NULL;</div><div class='del'>- string = g_strjoinv(", ", strings);</div><div class='del'>- card->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->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 < sizeof(attribute_jump_array) / sizeof(attribute_jump_array[0]); i++ ) {</div><div class='del'>- g_hash_table_insert(klass->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->destroy = e_card_destroy;</div><div class='del'>- object_class->get_arg = e_card_get_arg;</div><div class='del'>- object_class->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->ref_count = 1;</div><div class='del'>- newphone->number = NULL;</div><div class='del'>- newphone->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->ref_count --;</div><div class='del'>- if (phone->ref_count == 0) {</div><div class='del'>- g_free(phone->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->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->number = g_strdup(phone->number);</div><div class='del'>- phone_copy->flags = phone->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->ref_count = 1;</div><div class='del'>- newaddr->po = NULL;</div><div class='del'>- newaddr->ext = NULL;</div><div class='del'>- newaddr->street = NULL;</div><div class='del'>- newaddr->city = NULL;</div><div class='del'>- newaddr->region = NULL;</div><div class='del'>- newaddr->code = NULL;</div><div class='del'>- newaddr->country = NULL;</div><div class='del'>- newaddr->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->ref_count --;</div><div class='del'>- if (addr->ref_count == 0) {</div><div class='del'>- g_free(addr->po);</div><div class='del'>- g_free(addr->ext);</div><div class='del'>- g_free(addr->street);</div><div class='del'>- g_free(addr->city);</div><div class='del'>- g_free(addr->region);</div><div class='del'>- g_free(addr->code);</div><div class='del'>- g_free(addr->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->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->po = g_strdup(addr->po );</div><div class='del'>- addr_copy->ext = g_strdup(addr->ext );</div><div class='del'>- addr_copy->street = g_strdup(addr->street );</div><div class='del'>- addr_copy->city = g_strdup(addr->city );</div><div class='del'>- addr_copy->region = g_strdup(addr->region );</div><div class='del'>- addr_copy->code = g_strdup(addr->code );</div><div class='del'>- addr_copy->country = g_strdup(addr->country);</div><div class='del'>- addr_copy->flags = addr->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->po == NULL) || (*addr->po == 0)) &&</div><div class='del'>- ((addr->ext == NULL) || (*addr->ext == 0)) &&</div><div class='del'>- ((addr->street == NULL) || (*addr->street == 0)) &&</div><div class='del'>- ((addr->city == NULL) || (*addr->city == 0)) &&</div><div class='del'>- ((addr->region == NULL) || (*addr->region == 0)) &&</div><div class='del'>- ((addr->code == NULL) || (*addr->code == 0)) &&</div><div class='del'>- ((addr->country == NULL) || (*addr->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->data);</div><div class='del'>- </div><div class='del'>- addr->po = g_strdup (western->po_box );</div><div class='del'>- addr->ext = g_strdup (western->extended );</div><div class='del'>- addr->street = g_strdup (western->street );</div><div class='del'>- addr->city = g_strdup (western->locality );</div><div class='del'>- addr->region = g_strdup (western->region );</div><div class='del'>- addr->code = g_strdup (western->postal_code);</div><div class='del'>- addr->country = g_strdup (western->country );</div><div class='del'>- addr->flags = label->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->po && *addr->po)</div><div class='del'>- *(stringptr++) = addr->po;</div><div class='del'>- if (addr->street && *addr->street)</div><div class='del'>- *(stringptr++) = addr->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->region && *addr->region)</div><div class='del'>- *(stringptr++) = addr->region;</div><div class='del'>- if (addr->code && *addr->code)</div><div class='del'>- *(stringptr++) = addr->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->city && *addr->city)</div><div class='del'>- *(stringptr++) = addr->city;</div><div class='del'>- if (line22 && *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 && *line1)</div><div class='del'>- *(stringptr++) = line1;</div><div class='del'>- if (addr->ext && *addr->ext)</div><div class='del'>- *(stringptr++) = addr->ext;</div><div class='del'>- if (line2 && *line2)</div><div class='del'>- *(stringptr++) = line2;</div><div class='del'>- if (addr->country && *addr->country)</div><div class='del'>- *(stringptr++) = addr->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->flags = addr->flags;</div><div class='del'>- label->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->ref_count = 1;</div><div class='del'>- newaddr->data = NULL;</div><div class='del'>- newaddr->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->ref_count --;</div><div class='del'>- if (addr->ref_count == 0) {</div><div class='del'>- g_free(addr->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->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->data = g_strdup(addr->data);</div><div class='del'>- addr_copy->flags = addr->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->ref_count = 1;</div><div class='del'>- newname->prefix = NULL;</div><div class='del'>- newname->given = NULL;</div><div class='del'>- newname->additional = NULL;</div><div class='del'>- newname->family = NULL;</div><div class='del'>- newname->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->ref_count --;</div><div class='del'>- if (name->ref_count == 0) {</div><div class='del'>- g_free (name->prefix);</div><div class='del'>- g_free (name->given);</div><div class='del'>- g_free (name->additional);</div><div class='del'>- g_free (name->family);</div><div class='del'>- g_free (name->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->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->prefix = g_strdup(name->prefix);</div><div class='del'>- newname->given = g_strdup(name->given);</div><div class='del'>- newname->additional = g_strdup(name->additional);</div><div class='del'>- newname->family = g_strdup(name->family);</div><div class='del'>- newname->suffix = g_strdup(name->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->prefix && *name->prefix)</div><div class='del'>- *(stringptr++) = name->prefix;</div><div class='del'>- if (name->given && *name->given)</div><div class='del'>- *(stringptr++) = name->given;</div><div class='del'>- if (name->additional && *name->additional)</div><div class='del'>- *(stringptr++) = name->additional;</div><div class='del'>- if (name->family && *name->family)</div><div class='del'>- *(stringptr++) = name->family;</div><div class='del'>- if (name->suffix && *name->suffix)</div><div class='del'>- *(stringptr++) = name->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->prefix = g_strdup (western->prefix);</div><div class='del'>- name->given = g_strdup (western->first );</div><div class='del'>- name->additional = g_strdup (western->middle);</div><div class='del'>- name->family = g_strdup (western->last );</div><div class='del'>- name->suffix = g_strdup (western->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->ref_count = 1;</div><div class='del'>- arbitrary->key = NULL;</div><div class='del'>- arbitrary->type = NULL;</div><div class='del'>- arbitrary->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->ref_count --;</div><div class='del'>- if (arbitrary->ref_count == 0) {</div><div class='del'>- g_free(arbitrary->key);</div><div class='del'>- g_free(arbitrary->type);</div><div class='del'>- g_free(arbitrary->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->key = g_strdup(arbitrary->key);</div><div class='del'>- arb_copy->type = g_strdup(arbitrary->type);</div><div class='del'>- arb_copy->value = g_strdup(arbitrary->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->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 && *xa != '@'; ++xa);</div><div class='del'>- for (xb=b; *xb && *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 && *xa != '@' && *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 && ((*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 && 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->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->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->id);</div><div class='del'>- if (card->book)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->book));</div><div class='del'>- g_free(card->file_as);</div><div class='del'>- g_free(card->fname);</div><div class='del'>- e_card_name_unref(card->name);</div><div class='del'>- g_free(card->bday);</div><div class='del'>-</div><div class='del'>- g_free(card->url);</div><div class='del'>- g_free(card->org);</div><div class='del'>- g_free(card->org_unit);</div><div class='del'>- g_free(card->office);</div><div class='del'>- g_free(card->title);</div><div class='del'>- g_free(card->role);</div><div class='del'>- g_free(card->manager);</div><div class='del'>- g_free(card->assistant);</div><div class='del'>- g_free(card->nickname);</div><div class='del'>- g_free(card->spouse);</div><div class='del'>- g_free(card->anniversary);</div><div class='del'>- g_free(card->caluri);</div><div class='del'>- g_free(card->fburl);</div><div class='del'>- g_free(card->note);</div><div class='del'>- g_free(card->related_contacts);</div><div class='del'>-</div><div class='del'>- if (card->categories)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(card->categories));</div><div class='del'>- if (card->email)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(card->email));</div><div class='del'>- if (card->phone)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(card->phone));</div><div class='del'>- if (card->address)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(card->address));</div><div class='del'>- if (card->address_label)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(card->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->file_as);</div><div class='del'>- card->file_as = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>- if (card->file_as == NULL)</div><div class='del'>- card->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->fname);</div><div class='del'>- card->fname = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>- if (card->fname == NULL)</div><div class='del'>- card->fname = g_strdup("");</div><div class='del'>-</div><div class='del'>- e_card_name_unref (card->name);</div><div class='del'>- card->name = e_card_name_from_string (card->fname);</div><div class='del'>- break;</div><div class='del'>- case ARG_NAME:</div><div class='del'>- e_card_name_unref (card->name);</div><div class='del'>- card->name = e_card_name_ref(GTK_VALUE_POINTER(*arg));</div><div class='del'>- if (card->name == NULL)</div><div class='del'>- card->name = e_card_name_new();</div><div class='del'>- if (card->fname == NULL) {</div><div class='del'>- card->fname = e_card_name_to_string(card->name);</div><div class='del'>- }</div><div class='del'>- if (card->file_as == NULL) {</div><div class='del'>- ECardName *name = card->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->family && *name->family)</div><div class='del'>- *(stringptr++) = name->family;</div><div class='del'>- if (name->given && *name->given)</div><div class='del'>- *(stringptr++) = name->given;</div><div class='del'>- *stringptr = NULL;</div><div class='del'>- string = g_strjoinv(", ", strings);</div><div class='del'>- card->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->categories)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(card->categories));</div><div class='del'>- card->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->categories)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(card->categories));</div><div class='del'>- card->categories = E_LIST(GTK_VALUE_OBJECT(*arg));</div><div class='del'>- if (card->categories)</div><div class='del'>- gtk_object_ref(GTK_OBJECT(card->categories));</div><div class='del'>- break;</div><div class='del'>- case ARG_BIRTH_DATE:</div><div class='del'>- g_free(card->bday);</div><div class='del'>- if (GTK_VALUE_POINTER (*arg)) {</div><div class='del'>- card->bday = g_new (ECardDate, 1);</div><div class='del'>- memcpy (card->bday, GTK_VALUE_POINTER (*arg), sizeof (ECardDate));</div><div class='del'>- } else {</div><div class='del'>- card->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->url);</div><div class='del'>- card->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->org);</div><div class='del'>- card->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->org_unit);</div><div class='del'>- card->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->office);</div><div class='del'>- card->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->title);</div><div class='del'>- card->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->role);</div><div class='del'>- card->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->manager);</div><div class='del'>- card->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->assistant);</div><div class='del'>- card->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->nickname);</div><div class='del'>- card->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->spouse);</div><div class='del'>- card->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->anniversary);</div><div class='del'>- if (GTK_VALUE_POINTER (*arg)) {</div><div class='del'>- card->anniversary = g_new (ECardDate, 1);</div><div class='del'>- memcpy (card->anniversary, GTK_VALUE_POINTER (*arg), sizeof (ECardDate));</div><div class='del'>- } else {</div><div class='del'>- card->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->mailer);</div><div class='del'>- card->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->caluri);</div><div class='del'>- card->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->fburl);</div><div class='del'>- card->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->note);</div><div class='del'>- card->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->related_contacts);</div><div class='del'>- card->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->wants_html = GTK_VALUE_BOOL(*arg);</div><div class='del'>- card->wants_html_set = TRUE;</div><div class='del'>- break;</div><div class='del'>- case ARG_ARBITRARY:</div><div class='del'>- if (card->arbitrary)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(card->arbitrary));</div><div class='del'>- card->arbitrary = E_LIST(GTK_VALUE_OBJECT(*arg));</div><div class='del'>- if (card->arbitrary)</div><div class='del'>- gtk_object_ref(GTK_OBJECT(card->arbitrary));</div><div class='del'>- break;</div><div class='del'>- case ARG_ID:</div><div class='del'>- g_free(card->id);</div><div class='del'>- card->id = g_strdup(GTK_VALUE_STRING(*arg));</div><div class='del'>- if (card->id == NULL)</div><div class='del'>- card->id = g_strdup ("");</div><div class='del'>- break;</div><div class='del'>- case ARG_LAST_USE:</div><div class='del'>- g_free(card->last_use);</div><div class='del'>- if (GTK_VALUE_POINTER (*arg)) {</div><div class='del'>- card->last_use = g_new (ECardDate, 1);</div><div class='del'>- memcpy (card->last_use, GTK_VALUE_POINTER (*arg), sizeof (ECardDate));</div><div class='del'>- } else {</div><div class='del'>- card->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->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->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->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->file_as;</div><div class='del'>- break;</div><div class='del'>- case ARG_FULL_NAME:</div><div class='del'>- GTK_VALUE_STRING (*arg) = card->fname;</div><div class='del'>- break;</div><div class='del'>- case ARG_NAME:</div><div class='del'>- GTK_VALUE_POINTER(*arg) = card->name;</div><div class='del'>- break;</div><div class='del'>- case ARG_ADDRESS:</div><div class='del'>- if (!card->address)</div><div class='del'>- card->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->address);</div><div class='del'>- break;</div><div class='del'>- case ARG_ADDRESS_LABEL:</div><div class='del'>- if (!card->address_label)</div><div class='del'>- card->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->address_label);</div><div class='del'>- break;</div><div class='del'>- case ARG_PHONE:</div><div class='del'>- if (!card->phone)</div><div class='del'>- card->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->phone);</div><div class='del'>- break;</div><div class='del'>- case ARG_EMAIL:</div><div class='del'>- if (!card->email)</div><div class='del'>- card->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->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->categories)</div><div class='del'>- card->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->categories);</div><div class='del'>- strs = g_new(char *, length + 1);</div><div class='del'>- for (iterator = e_list_get_iterator(card->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->categories)</div><div class='del'>- card->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->categories);</div><div class='del'>- break;</div><div class='del'>- case ARG_BIRTH_DATE:</div><div class='del'>- GTK_VALUE_POINTER(*arg) = card->bday;</div><div class='del'>- break;</div><div class='del'>- case ARG_URL:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->url;</div><div class='del'>- break;</div><div class='del'>- case ARG_ORG:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->org;</div><div class='del'>- break;</div><div class='del'>- case ARG_ORG_UNIT:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->org_unit;</div><div class='del'>- break;</div><div class='del'>- case ARG_OFFICE:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->office;</div><div class='del'>- break;</div><div class='del'>- case ARG_TITLE:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->title;</div><div class='del'>- break;</div><div class='del'>- case ARG_ROLE:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->role;</div><div class='del'>- break;</div><div class='del'>- case ARG_MANAGER:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->manager;</div><div class='del'>- break;</div><div class='del'>- case ARG_ASSISTANT:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->assistant;</div><div class='del'>- break;</div><div class='del'>- case ARG_NICKNAME:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->nickname;</div><div class='del'>- break;</div><div class='del'>- case ARG_SPOUSE:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->spouse;</div><div class='del'>- break;</div><div class='del'>- case ARG_ANNIVERSARY:</div><div class='del'>- GTK_VALUE_POINTER(*arg) = card->anniversary;</div><div class='del'>- break;</div><div class='del'>- case ARG_MAILER:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->mailer;</div><div class='del'>- break;</div><div class='del'>- case ARG_CALURI:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->caluri;</div><div class='del'>- break;</div><div class='del'>- case ARG_FBURL:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->fburl;</div><div class='del'>- break;</div><div class='del'>- case ARG_NOTE:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->note;</div><div class='del'>- break;</div><div class='del'>- case ARG_RELATED_CONTACTS:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->related_contacts;</div><div class='del'>- break;</div><div class='del'>- case ARG_WANTS_HTML:</div><div class='del'>- GTK_VALUE_BOOL(*arg) = card->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->wants_html_set;</div><div class='del'>- break;</div><div class='del'>- case ARG_ARBITRARY:</div><div class='del'>- if (!card->arbitrary)</div><div class='del'>- card->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->arbitrary);</div><div class='del'>- break;</div><div class='del'>- case ARG_ID:</div><div class='del'>- GTK_VALUE_STRING(*arg) = card->id;</div><div class='del'>- break;</div><div class='del'>- case ARG_LAST_USE:</div><div class='del'>- GTK_VALUE_POINTER(*arg) = card->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->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->list_show_addresses;</div><div class='del'>- break;</div><div class='del'>- default:</div><div class='del'>- arg->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->id = g_strdup("");</div><div class='del'>- </div><div class='del'>- card->file_as = NULL;</div><div class='del'>- card->fname = NULL;</div><div class='del'>- card->name = NULL;</div><div class='del'>- card->bday = NULL;</div><div class='del'>- card->email = NULL;</div><div class='del'>- card->phone = NULL;</div><div class='del'>- card->address = NULL;</div><div class='del'>- card->address_label = NULL;</div><div class='del'>- card->url = NULL;</div><div class='del'>- card->org = NULL;</div><div class='del'>- card->org_unit = NULL;</div><div class='del'>- card->office = NULL;</div><div class='del'>- card->title = NULL;</div><div class='del'>- card->role = NULL;</div><div class='del'>- card->manager = NULL;</div><div class='del'>- card->assistant = NULL;</div><div class='del'>- card->nickname = NULL;</div><div class='del'>- card->spouse = NULL;</div><div class='del'>- card->anniversary = NULL;</div><div class='del'>- card->mailer = NULL;</div><div class='del'>- card->caluri = NULL;</div><div class='del'>- card->fburl = NULL;</div><div class='del'>- card->note = NULL;</div><div class='del'>- card->related_contacts = NULL;</div><div class='del'>- card->categories = NULL;</div><div class='del'>- card->wants_html = FALSE;</div><div class='del'>- card->wants_html_set = FALSE;</div><div class='del'>- card->list = FALSE;</div><div class='del'>- card->list_show_addresses = FALSE;</div><div class='del'>- card->arbitrary = NULL;</div><div class='del'>- card->last_use = NULL;</div><div class='del'>- card->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->fname = </div><div class='del'>- c->mailer = </div><div class='del'>- c->role = </div><div class='del'>- c->comment = </div><div class='del'>- c->categories = </div><div class='del'>- c->uid = e_card_prop_str_empty ();</div><div class='del'>- </div><div class='del'>- c->photo.type = PHOTO_JPEG;</div><div class='del'>- c->logo.type = PHOTO_JPEG;</div><div class='del'>- c->rev.utc = -1;</div><div class='del'>- c->sound.type = SOUND_PHONETIC;</div><div class='del'>- c->key.type = KEY_PGP;</div><div class='del'>-</div><div class='del'>- c->categories.prop.encod = ENC_QUOTED_PRINTABLE;</div><div class='del'>- c->comment.prop.encod = ENC_QUOTED_PRINTABLE;</div><div class='del'>- </div><div class='del'>- c->name.prop = c->photo.prop = c->bday.prop = c->timezn.prop = </div><div class='del'>- c->geopos.prop = c->logo.prop = c->org.prop = c->rev.prop =</div><div class='del'>- c->sound.prop = c->key.prop = c->deladdr.prop = c->dellabel.prop =</div><div class='del'>- c->phone.prop = c->email.prop = c->xtension.prop = c->prop = e_card_prop_empty ();</div><div class='del'>- </div><div class='del'>- c->prop.type = PROP_CARD;</div><div class='del'>- c->fname.prop.type = PROP_FNAME;</div><div class='del'>- c->name.prop.type = PROP_NAME;</div><div class='del'>- c->photo.prop.type = PROP_PHOTO;</div><div class='del'>- c->bday.prop.type = PROP_BDAY;</div><div class='del'>- </div><div class='del'>- c->deladdr.prop.type = PROP_DELADDR_LIST;</div><div class='del'>- c->dellabel.prop.type = PROP_DELLABEL_LIST;</div><div class='del'>- c->phone.prop.type = PROP_PHONE_LIST;</div><div class='del'>- c->email.prop.type = PROP_EMAIL_LIST;</div><div class='del'>- c->xtension.prop.type = PROP_XTENSION_LIST;</div><div class='del'>- c->mailer.prop.type = PROP_MAILER;</div><div class='del'>- c->timezn.prop.type = PROP_TIMEZN;</div><div class='del'>- c->geopos.prop.type = PROP_GEOPOS;</div><div class='del'>- c->role.prop.type = PROP_ROLE;</div><div class='del'>- c->logo.prop.type = PROP_LOGO;</div><div class='del'>- c->org.prop.type = PROP_ORG;</div><div class='del'>- c->categories.prop.type = PROP_CATEGORIES;</div><div class='del'>- c->comment.prop.type = PROP_COMMENT;</div><div class='del'>- c->rev.prop.type = PROP_REV;</div><div class='del'>- c->sound.prop.type = PROP_SOUND;</div><div class='del'>- c->uid.prop.type = PROP_UID;</div><div class='del'>- c->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->address && e_list_length (card->address) == 0) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->address));</div><div class='del'>- card->address = NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (card->address_label && e_list_length (card->address_label) == 0) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->address_label));</div><div class='del'>- card->address_label = NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (card->phone && e_list_length (card->phone) == 0) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->phone));</div><div class='del'>- card->phone = NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (card->email && e_list_length (card->email) == 0) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->email));</div><div class='del'>- card->email = NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (card->categories && e_list_length (card->categories) == 0) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->categories));</div><div class='del'>- card->categories = NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (card->arbitrary && e_list_length (card->arbitrary) == 0) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (card->arbitrary));</div><div class='del'>- card->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->str);</div><div class='del'>-</div><div class='del'>- e_card_prop_free (sp->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->data);</div><div class='del'>-</div><div class='del'>- e_card_prop_free (photo->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 (& card->name);</div><div class='del'>- e_card_str_free (& card->fname);</div><div class='del'>-</div><div class='del'>- e_card_photo_free (card->photo);</div><div class='del'>-</div><div class='del'>- e_card_logo_free (card->logo);</div><div class='del'>- e_card_org_free (card->org);</div><div class='del'>- e_card_key_free (card->key);</div><div class='del'>- e_card_sound_free (card->sound);</div><div class='del'>-</div><div class='del'>- e_card_prop_str_free (& card->mailer);</div><div class='del'>- e_card_prop_str_free (& card->role);</div><div class='del'>- e_card_prop_str_free (& card->categories);</div><div class='del'>- e_card_prop_str_free (& card->comment);</div><div class='del'>- e_card_prop_str_free (& card->uid);</div><div class='del'>-</div><div class='del'>- /* address is a little more complicated */</div><div class='del'>- card_prop_free (card->deladdr.prop);</div><div class='del'>- while ((l = card->deladdr.l)) {</div><div class='del'>-</div><div class='del'>- e_card_deladdr_free ((CardDelAddr *) l->data);</div><div class='del'>-</div><div class='del'>- card->deladdr.l = g_list_remove_link (card->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)) &&</div><div class='del'>- ((prop.type >= PROP_NONE) && (prop.type <= PROP_LAST)) &&</div><div class='del'>- ((prop.encod >= ENC_NONE) && (prop.encod <= ENC_LAST)) &&</div><div class='del'>- ((prop.value >= VAL_NONE) && (prop.value <= 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->next) {</div><div class='del'>- CardXAttribute *xa = (CardXAttribute *) l->data;</div><div class='del'>- g_free (xa->name);</div><div class='del'>- g_free (xa->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->prop);</div><div class='del'>-</div><div class='del'>- g_free (p->pobox);</div><div class='del'>- g_free (p->ext);</div><div class='del'>- g_free (p->street);</div><div class='del'>- g_free (p->city);</div><div class='del'>- g_free (p->region);</div><div class='del'>- g_free (p->code);</div><div class='del'>- g_free (p->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->c = c;</div><div class='del'>- t->id = id;</div><div class='del'>- t->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->sons = g_list_append (t->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->sons; node; node = node->next)</div><div class='del'>- if (((tree *) node->data)->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->data;</div><div class='del'>- tmp->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->id == 0 && c != end) {</div><div class='del'>- for (node = tmp->sons; node; node = node->next)</div><div class='del'>- if (((tree *) node->data)->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->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->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 ("? < 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 (&i, o);</div><div class='del'>- while (moreIteration (&i)) {</div><div class='del'>- VObject *vo = nextVObject (&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 ("? < 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 ("? < 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->name = g_strdup (n);</div><div class='del'>- </div><div class='del'>- if (vObjectValueType (vo))</div><div class='del'>- c->data = </div><div class='del'>- g_strdup (vObjectStringZValue (vo));</div><div class='del'>- else</div><div class='del'>- c->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->family = e_card_prop_get_substr (o, VCFamilyNameProp);</div><div class='del'>- name->given = e_card_prop_get_substr (o, VCGivenNameProp);</div><div class='del'>- name->additional = e_card_prop_get_substr (o, VCAdditionalNamesProp);</div><div class='del'>- name->prefix = e_card_prop_get_substr (o, VCNamePrefixesProp);</div><div class='del'>- name->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->type = get_addr_type (o);</div><div class='del'>- dellabel->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->type = get_phone_type (o);</div><div class='del'>- ret->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->type = get_email_type (o);</div><div class='del'>- ret->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) > 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 ("? < 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) >= 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 ("? < 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) > 3)</div><div class='del'>- g_warning ("? < 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 ("? < 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->name = g_strdup (vObjectName (o));</div><div class='del'>- ret->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) > 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 ("? < 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) > 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 ("? < 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) > 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 ("? < 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) > 3)</div><div class='del'>- g_warning ("? < Rev value is too long.");</div><div class='del'>- </div><div class='del'>- } else {</div><div class='del'>- g_warning ("? < 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 ("? < Too many values for Rev property.");</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (i < 2)</div><div class='del'>- g_warning ("? < Too few values for Rev property.");</div><div class='del'>- } else {</div><div class='del'>- if (strlen (str) >= 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 ("? < 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 ("? < 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 (&i, vcrd);</div><div class='del'>- crd = card_new ();</div><div class='del'>-</div><div class='del'>- while (moreIteration (&i)) {</div><div class='del'>- VObject *o = nextVObject (&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 = &crd->fname.prop;</div><div class='del'>- crd->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 = &crd->name.prop;</div><div class='del'>- crd->name = e_card_get_name (o);</div><div class='del'>- break;</div><div class='del'>- case PROP_PHOTO:</div><div class='del'>- prop = &crd->photo.prop;</div><div class='del'>- crd->photo = get_CardPhoto (o);</div><div class='del'>- break;</div><div class='del'>- case PROP_BDAY:</div><div class='del'>- prop = &crd->bday.prop;</div><div class='del'>- crd->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 = &c->prop;</div><div class='del'>- crd->deladdr.l = g_list_append (crd->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 = &c->prop;</div><div class='del'>- crd->dellabel.l = g_list_append (crd->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 = &c->prop;</div><div class='del'>- crd->phone.l = g_list_append (crd->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 = &c->prop;</div><div class='del'>- crd->email.l = g_list_append (crd->email.l, c);</div><div class='del'>- }</div><div class='del'>- break;</div><div class='del'>- case PROP_MAILER:</div><div class='del'>- prop = &crd->mailer.prop;</div><div class='del'>- crd->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 = &crd->timezn.prop;</div><div class='del'>- crd->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 = &crd->geopos.prop;</div><div class='del'>- crd->geopos = strtoCardGeoPos (str_val (o));</div><div class='del'>- break;</div><div class='del'>- case PROP_ROLE:</div><div class='del'>- prop = &crd->role.prop;</div><div class='del'>- crd->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 = &crd->logo.prop;</div><div class='del'>- crd->logo = get_CardPhoto (o);</div><div class='del'>- break;</div><div class='del'>- case PROP_AGENT:</div><div class='del'>- crd->agent = card_create_from_vobject (o);</div><div class='del'>- break;</div><div class='del'>- case PROP_ORG:</div><div class='del'>- prop = &crd->org.prop;</div><div class='del'>- crd->org = get_CardOrg (o);</div><div class='del'>- break;</div><div class='del'>- case PROP_CATEGORIES:</div><div class='del'>- prop = &crd->categories.prop;</div><div class='del'>- crd->categories.str = g_strdup (str_val (o));</div><div class='del'>- crd->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 = &crd->comment.prop;</div><div class='del'>- crd->comment.str = g_strdup (str_val (o));</div><div class='del'>- crd->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 = &crd->rev.prop;</div><div class='del'>- crd->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 = &crd->sound.prop;</div><div class='del'>- crd->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 ("? < 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 = &crd->key.prop;</div><div class='del'>- crd->key.type = get_key_type (o);</div><div class='del'>- crd->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 = &c->prop;</div><div class='del'>- crd->xtension.l = g_list_append (crd->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->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->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 ("? < Card had invalid encoding type.");</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- switch (prop->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 ("? < Card had invalid value type.");</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- for (node = prop->xtension; node; node = node->next) {</div><div class='del'>- CardXAttribute *xa = (CardXAttribute *) node->data;</div><div class='del'>- if (xa->data)</div><div class='del'>- addPropValue (o, xa->name, xa->data);</div><div class='del'>- else</div><div class='del'>- addProp (o, xa->name);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- add_strProp (o, VCCharSetProp, prop->charset);</div><div class='del'>- add_strProp (o, VCLanguageProp, prop->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->prop.used) {</div><div class='del'>- vprop = add_strProp (vobj, id, strprop->str);</div><div class='del'>- add_CardProperty (vprop, &strprop->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 ("? > 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 & 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 & 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 & 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 & 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 ("? > 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 ("? > 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->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->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: "), &crd->fname);</div><div class='del'>- if (crd->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->name.prefix);</div><div class='del'>- add_strProp_to_string (string, N_("\n Given: "), crd->name.given);</div><div class='del'>- add_strProp_to_string (string, N_("\n Additional: "), crd->name.additional);</div><div class='del'>- add_strProp_to_string (string, N_("\n Family: "), crd->name.family);</div><div class='del'>- add_strProp_to_string (string, N_("\n Suffix: "), crd->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->photo.prop.used) {</div><div class='del'>- addPropSizedValue (string, _ ("\nPhoto: "), </div><div class='del'>- crd->photo.data, crd->photo.size);</div><div class='del'>- add_PhotoType (string, crd->photo.type);</div><div class='del'>- }*/</div><div class='del'>- </div><div class='del'>- if (crd->bday.prop.used) {</div><div class='del'>- char *date_str;</div><div class='del'>- </div><div class='del'>- date_str = card_bday_str (crd->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->deladdr.l) {</div><div class='del'>- GList *node;</div><div class='del'>- </div><div class='del'>- for (node = crd->deladdr.l; node; node = node->next) {</div><div class='del'>- CardDelAddr *deladdr = (CardDelAddr *) node->data;</div><div class='del'>- </div><div class='del'>- if (deladdr->prop.used) {</div><div class='del'>- addProp_to_string (string, N_("\nAddress:"));</div><div class='del'>- add_strAddrType (string, deladdr->type);</div><div class='del'>- add_strProp_to_string (string, N_("\n Postal Box: "), deladdr->po);</div><div class='del'>- add_strProp_to_string (string, N_("\n Ext: "), deladdr->ext);</div><div class='del'>- add_strProp_to_string (string, N_("\n Street: "), deladdr->street);</div><div class='del'>- add_strProp_to_string (string, N_("\n City: "), deladdr->city);</div><div class='del'>- add_strProp_to_string (string, N_("\n Region: "), deladdr->region);</div><div class='del'>- add_strProp_to_string (string, N_("\n Postal Code: "), deladdr->code);</div><div class='del'>- add_strProp_to_string (string, N_("\n Country: "), deladdr->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->dellabel.l) {</div><div class='del'>- GList *node;</div><div class='del'>- </div><div class='del'>- for (node = crd->dellabel.l; node; node = node->next) {</div><div class='del'>- CardDelLabel *dellabel = (CardDelLabel *) node->data;</div><div class='del'>- </div><div class='del'>- add_strProp_to_string (string, N_("\nDelivery Label: "),</div><div class='del'>- dellabel->data);</div><div class='del'>- add_strAddrType (string, dellabel->type);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (crd->phone.l) {</div><div class='del'>- GList *node;</div><div class='del'>- char *sep;</div><div class='del'>- </div><div class='del'>- if (crd->phone.l->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->phone.l; node; node = node->next) {</div><div class='del'>- CardPhone *phone = (CardPhone *) node->data;</div><div class='del'>-</div><div class='del'>- if (phone->prop.used) {</div><div class='del'>- g_string_append (string, sep);</div><div class='del'>- g_string_append (string, phone->data);</div><div class='del'>- add_strPhoneType (string, phone->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->phone.l->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->email.l) {</div><div class='del'>- GList *node;</div><div class='del'>- char *sep;</div><div class='del'>- </div><div class='del'>- if (crd->email.l->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->email.l; node; node = node->next) {</div><div class='del'>- CardEMail *email = (CardEMail *) node->data;</div><div class='del'>- </div><div class='del'>- if (email->prop.used) {</div><div class='del'>- g_string_append (string, sep);</div><div class='del'>- g_string_append (string, email->data);</div><div class='del'>- add_strEMailType (string, email->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->email.l->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: "), &crd->mailer);</div><div class='del'>- </div><div class='del'>- if (crd->timezn.prop.used) {</div><div class='del'>- char *str;</div><div class='del'>- </div><div class='del'>- str = card_timezn_str (crd->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->geopos.prop.used) {</div><div class='del'>- char *str;</div><div class='del'>- </div><div class='del'>- str = card_geopos_str (crd->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: "), &crd->role);</div><div class='del'>- </div><div class='del'>-/* if (crd->logo.prop.used) {</div><div class='del'>- addPropSizedValue (string, _ ("\nLogo: "), </div><div class='del'>- crd->logo.data, crd->logo.size);</div><div class='del'>- add_PhotoType (string, crd->logo.type);</div><div class='del'>- }*/</div><div class='del'>- </div><div class='del'>-/* if (crd->agent)</div><div class='del'>- addstringectProp (string, card_convert_to_stringect (crd->agent));*/</div><div class='del'>- </div><div class='del'>- if (crd->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->org.name);</div><div class='del'>- add_strProp_to_string (string, N_("\n Unit: "), crd->org.unit1);</div><div class='del'>- add_strProp_to_string (string, N_("\n Unit2: "), crd->org.unit2);</div><div class='del'>- add_strProp_to_string (string, N_("\n Unit3: "), crd->org.unit3);</div><div class='del'>- add_strProp_to_string (string, N_("\n Unit4: "), crd->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: "), &crd->categories);</div><div class='del'>- add_CardStrProperty_to_string (string, N_("\nComment: "), &crd->comment);</div><div class='del'>- </div><div class='del'>-/* if (crd->sound.prop.used) {</div><div class='del'>- if (crd->sound.type != SOUND_PHONETIC)</div><div class='del'>- addPropSizedValue (string, _ ("\nPronunciation: "),</div><div class='del'>- crd->sound.data, crd->sound.size);</div><div class='del'>- else</div><div class='del'>- add_strProp_to_string (string, _ ("\nPronunciation: "), </div><div class='del'>- crd->sound.data);</div><div class='del'>- </div><div class='del'>- add_SoundType (string, crd->sound.type);</div><div class='del'>- }*/</div><div class='del'>- </div><div class='del'>- add_CardStrProperty_to_string (string, N_("\nUnique String: "), &crd->uid);</div><div class='del'>- </div><div class='del'>- if (crd->key.prop.used) {</div><div class='del'>- add_strProp_to_string (string, N_("\nPublic Key: "), crd->key.data);</div><div class='del'>- add_strKeyType (string, crd->key.type);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- ret = g_strdup (string->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(&iterator, vobj);</div><div class='del'>- while(moreIteration (&iterator)) {</div><div class='del'>- VObject *attribute = nextVObject(&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, &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 < 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 < sizeof(phone_pairs) / sizeof(phone_pairs[0]); i++) {</div><div class='del'>- if (flags & 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 < 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 < sizeof(addr_pairs) / sizeof(addr_pairs[0]); i++) {</div><div class='del'>- if (flags & 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 <Evolution-Composer.h></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 (&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->data);</div><div class='del'>- if (e_card_evolution_list (card)) {</div><div class='del'>- gint len = card->email ? e_list_length (card->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->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->_maximum = to_length;</div><div class='del'>- to_list->_length = to_length;</div><div class='del'>- if (to_length > 0) {</div><div class='del'>- to_list->_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->_maximum = cc_list->_length = 0;</div><div class='del'>- </div><div class='del'>- bcc_list = GNOME_Evolution_Composer_RecipientList__alloc ();</div><div class='del'>- bcc_list->_maximum = bcc_length;</div><div class='del'>- bcc_list->_length = bcc_length;</div><div class='del'>- if (bcc_length > 0) {</div><div class='del'>- bcc_list->_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->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->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 && !e_card_evolution_list_show_addresses (card);</div><div class='del'>- </div><div class='del'>- for (iterator = e_list_get_iterator (card->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 = &(bcc_list->_buffer[bcc_i]);</div><div class='del'>- ++bcc_i;</div><div class='del'>- } else {</div><div class='del'>- recipient = &(to_list->_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->name)</div><div class='del'>- name = e_card_name_to_string (card->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->name = CORBA_string_dup (name ? name : "");</div><div class='del'>- recipient->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, &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 (&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->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->data),</div><div class='del'>- "file_as", &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->_maximum = attach_data->_length = strlen (tempstr);</div><div class='del'>- attach_data->_buffer = CORBA_sequence_CORBA_char_allocbuf (attach_data->_length);</div><div class='del'>- strcpy (attach_data->_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'>- &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 (&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, &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 (&ev);</div><div class='del'>- return;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- CORBA_exception_free (&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 && E_IS_CARD (card), FALSE);</div><div class='del'>- return card->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 && E_IS_CARD (card), FALSE);</div><div class='del'>- return card->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->cb != NULL) {</div><div class='del'>- if (status == E_BOOK_STATUS_SUCCESS)</div><div class='del'>- data->cb (card, data->closure);</div><div class='del'>- else</div><div class='del'>- data->cb (NULL, data->closure);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_free (data->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->card_id, get_card_cb, closure);</div><div class='del'>- else {</div><div class='del'>- data->cb (NULL, data->closure);</div><div class='del'>- g_free (data->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->card_id = g_strdup (uid);</div><div class='del'>- data->cb = cb;</div><div class='del'>- data->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&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 <clahey@ximian.com></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 <time.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card-types.h></div><div class='del'>-#include <e-util/e-list.h></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&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 <trow@ximian.com></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 <config.h></div><div class='del'>-#include "e-destination.h"</div><div class='del'>-</div><div class='del'>-#include <stdlib.h></div><div class='del'>-#include <ctype.h></div><div class='del'>-#include <string.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <gtk/gtkmain.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include "e-book.h"</div><div class='del'>-#include "e-book-util.h"</div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-#include <gnome-xml/parser.h></div><div class='del'>-#include <gnome-xml/xmlmemory.h></div><div class='del'>-#include <camel/camel-internet-address.h></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->priv->old_card)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (dest->priv->old_card));</div><div class='del'>- </div><div class='del'>- if (dest->priv->cardify_book)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (dest->priv->cardify_book));</div><div class='del'>-</div><div class='del'>- g_free (dest->priv->old_textrep);</div><div class='del'>-</div><div class='del'>- g_free (dest->priv);</div><div class='del'>-</div><div class='del'>- if (parent_class->destroy)</div><div class='del'>- parent_class->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->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->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->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->priv = g_new0 (struct _EDestinationPrivate, 1);</div><div class='del'>-</div><div class='del'>- dest->priv->allow_cardify = TRUE;</div><div class='del'>- dest->priv->cannot_cardify = FALSE;</div><div class='del'>- dest->priv->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 (), &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->priv->freeze_count >= 0);</div><div class='del'>- ++dest->priv->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->priv->freeze_count > 0);</div><div class='del'>- --dest->priv->freeze_count;</div><div class='del'>- if (dest->priv->freeze_count == 0 && dest->priv->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->priv->freeze_count == 0) {</div><div class='del'>- gtk_signal_emit (GTK_OBJECT (dest), e_destination_signals[CHANGED]);</div><div class='del'>- dest->priv->pending_change = FALSE;</div><div class='del'>- dest->priv->cannot_cardify = FALSE;</div><div class='del'>- </div><div class='del'>- } else {</div><div class='del'>- dest->priv->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 && 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->priv->book_uri = g_strdup (dest->priv->book_uri);</div><div class='del'>- new_dest->priv->card_uid = g_strdup (dest->priv->card_uid);</div><div class='del'>- new_dest->priv->name = g_strdup (dest->priv->name);</div><div class='del'>- new_dest->priv->email = g_strdup (dest->priv->email);</div><div class='del'>- new_dest->priv->addr = g_strdup (dest->priv->addr);</div><div class='del'>- new_dest->priv->card_email_num = dest->priv->card_email_num;</div><div class='del'>- new_dest->priv->old_card_email_num = dest->priv->old_card_email_num;</div><div class='del'>- new_dest->priv->old_textrep = g_strdup (dest->priv->old_textrep);</div><div class='del'>-</div><div class='del'>- new_dest->priv->card = dest->priv->card;</div><div class='del'>- if (new_dest->priv->card)</div><div class='del'>- gtk_object_ref (GTK_OBJECT (new_dest->priv->card));</div><div class='del'>-</div><div class='del'>- new_dest->priv->old_card = dest->priv->old_card;</div><div class='del'>- if (new_dest->priv->old_card)</div><div class='del'>- gtk_object_ref (GTK_OBJECT (new_dest->priv->old_card));</div><div class='del'>-</div><div class='del'>- new_dest->priv->html_mail_override = dest->priv->html_mail_override;</div><div class='del'>- new_dest->priv->wants_html_mail = dest->priv->wants_html_mail;</div><div class='del'>-</div><div class='del'>- for (iter = dest->priv->list_dests; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>- new_dest->priv->list_dests = g_list_append (new_dest->priv->list_dests,</div><div class='del'>- e_destination_copy (E_DESTINATION (iter->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->priv->card) {</div><div class='del'>- </div><div class='del'>- if (dest->priv->old_card)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (dest->priv->old_card));</div><div class='del'>-</div><div class='del'>- dest->priv->old_card = dest->priv->card;</div><div class='del'>- dest->priv->old_card_email_num = dest->priv->card_email_num;</div><div class='del'>-</div><div class='del'>- g_free (dest->priv->old_textrep);</div><div class='del'>- dest->priv->old_textrep = g_strdup (e_destination_get_textrep (dest));</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_free (dest->priv->book_uri);</div><div class='del'>- dest->priv->book_uri = NULL;</div><div class='del'>- g_free (dest->priv->card_uid);</div><div class='del'>- dest->priv->card_uid = NULL;</div><div class='del'>-</div><div class='del'>- dest->priv->card = NULL;</div><div class='del'>- dest->priv->card_email_num = -1;</div><div class='del'>-</div><div class='del'>- g_list_foreach (dest->priv->list_dests, (GFunc) gtk_object_unref, NULL);</div><div class='del'>- g_list_free (dest->priv->list_dests);</div><div class='del'>- dest->priv->list_dests = NULL;</div><div class='del'>-</div><div class='del'>- dest->priv->allow_cardify = TRUE;</div><div class='del'>- dest->priv->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->priv->raw);</div><div class='del'>- dest->priv->raw = NULL;</div><div class='del'>- </div><div class='del'>- g_free (dest->priv->name);</div><div class='del'>- dest->priv->name = NULL;</div><div class='del'>-</div><div class='del'>- g_free (dest->priv->email);</div><div class='del'>- dest->priv->email = NULL;</div><div class='del'>-</div><div class='del'>- g_free (dest->priv->addr);</div><div class='del'>- dest->priv->addr = NULL;</div><div class='del'>-</div><div class='del'>- g_free (dest->priv->textrep);</div><div class='del'>- dest->priv->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 && 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->priv;</div><div class='del'>-</div><div class='del'>- return !(p->card != NULL</div><div class='del'>- || (p->book_uri && *p->book_uri)</div><div class='del'>- || (p->card_uid && *p->card_uid)</div><div class='del'>- || (p->raw && nonempty (p->raw))</div><div class='del'>- || (p->name && nonempty (p->name))</div><div class='del'>- || (p->email && nonempty (p->email))</div><div class='del'>- || (p->addr && nonempty (p->addr))</div><div class='del'>- || (p->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 && *email && 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->priv;</div><div class='del'>- pb = b->priv;</div><div class='del'>-</div><div class='del'>- /* Check equality of cards. */</div><div class='del'>- if (pa->card || pb->card) {</div><div class='del'>- if (! (pa->card && pb->card))</div><div class='del'>- return FALSE;</div><div class='del'>-</div><div class='del'>- if (pa->card == pb->card || !strcmp (e_card_get_id (pa->card), e_card_get_id (pb->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) && !(na && nb && !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 && E_IS_DESTINATION (dest));</div><div class='del'>- g_return_if_fail (card && E_IS_CARD (card));</div><div class='del'>-</div><div class='del'>- if (dest->priv->card != card || dest->priv->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 ->card && ->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->priv->card = card;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (dest->priv->card));</div><div class='del'>-</div><div class='del'>- dest->priv->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 && E_IS_DESTINATION (dest));</div><div class='del'>- g_return_if_fail (uri != NULL);</div><div class='del'>-</div><div class='del'>- if (dest->priv->book_uri == NULL</div><div class='del'>- || strcmp (dest->priv->book_uri, uri)) {</div><div class='del'>- </div><div class='del'>- g_free (dest->priv->book_uri);</div><div class='del'>- dest->priv->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->priv->card) {</div><div class='del'>- EBook *book = e_card_get_book (dest->priv->card);</div><div class='del'>- if ((!book) || strcmp (uri, e_book_get_uri (book))) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (dest->priv->card));</div><div class='del'>- dest->priv->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 && E_IS_DESTINATION (dest));</div><div class='del'>- g_return_if_fail (uid != NULL);</div><div class='del'>-</div><div class='del'>- if (dest->priv->card_uid == NULL</div><div class='del'>- || strcmp (dest->priv->card_uid, uid)</div><div class='del'>- || dest->priv->card_email_num != email_num) {</div><div class='del'>-</div><div class='del'>- g_free (dest->priv->card_uid);</div><div class='del'>- dest->priv->card_uid = g_strdup (uid);</div><div class='del'>- dest->priv->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->priv->card && strcmp (uid, e_card_get_id (dest->priv->card))) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (dest->priv->card));</div><div class='del'>- dest->priv->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->priv->name != NULL) {</div><div class='del'>- g_free (dest->priv->name);</div><div class='del'>- dest->priv->name = NULL;</div><div class='del'>- changed = TRUE;</div><div class='del'>- }</div><div class='del'>- } else if (dest->priv->name == NULL || strcmp (dest->priv->name, name)) {</div><div class='del'>- g_free (dest->priv->name);</div><div class='del'>- dest->priv->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->priv->addr);</div><div class='del'>- dest->priv->addr = NULL;</div><div class='del'>- g_free (dest->priv->textrep);</div><div class='del'>- dest->priv->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->priv->email != NULL) {</div><div class='del'>- g_free (dest->priv->addr);</div><div class='del'>- dest->priv->addr = NULL;</div><div class='del'>- changed = TRUE;</div><div class='del'>- }</div><div class='del'>- } else if (dest->priv->email == NULL || strcmp (dest->priv->email, email)) {</div><div class='del'>-</div><div class='del'>- g_free (dest->priv->email);</div><div class='del'>- dest->priv->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->priv->addr);</div><div class='del'>- dest->priv->addr = NULL;</div><div class='del'>- g_free (dest->priv->textrep);</div><div class='del'>- dest->priv->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 && E_IS_DESTINATION (dest));</div><div class='del'>- </div><div class='del'>- dest->priv->html_mail_override = TRUE;</div><div class='del'>- if (dest->priv->wants_html_mail != x) {</div><div class='del'>- dest->priv->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 && E_IS_DESTINATION (dest), FALSE);</div><div class='del'>- return dest->priv->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 && E_IS_DESTINATION (dest), FALSE);</div><div class='del'>- return dest->priv->card != NULL || dest->priv->book_uri != NULL || dest->priv->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 && uc->dest->priv->card == NULL) {</div><div class='del'>-</div><div class='del'>- uc->dest->priv->card = card;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (uc->dest->priv->card));</div><div class='del'>- e_destination_changed (uc->dest);</div><div class='del'>-</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (uc->cb) {</div><div class='del'>- uc->cb (uc->dest, uc->dest->priv->card, uc->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->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 && E_IS_DESTINATION (dest));</div><div class='del'>-</div><div class='del'>- if (dest->priv->card != NULL) {</div><div class='del'>-</div><div class='del'>- if (cb) {</div><div class='del'>- cb (dest, dest->priv->card, closure);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- } else if (dest->priv->book_uri != NULL && dest->priv->card_uid != NULL) {</div><div class='del'>-</div><div class='del'>- UseCard *uc = g_new (UseCard, 1);</div><div class='del'>- uc->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->dest));</div><div class='del'>- uc->cb = cb;</div><div class='del'>- uc->closure = closure;</div><div class='del'>- e_card_load_uri (dest->priv->book_uri, dest->priv->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 && E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>- return dest->priv->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 && E_IS_DESTINATION (dest), NULL);</div><div class='del'>- </div><div class='del'>- if (dest->priv->card_uid)</div><div class='del'>- return dest->priv->card_uid;</div><div class='del'>- </div><div class='del'>- if (dest->priv->card)</div><div class='del'>- return e_card_get_id (dest->priv->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 && E_IS_DESTINATION (dest), NULL);</div><div class='del'>- </div><div class='del'>- if (dest->priv->book_uri)</div><div class='del'>- return dest->priv->book_uri;</div><div class='del'>- </div><div class='del'>- if (dest->priv->card) {</div><div class='del'>- EBook *book = e_card_get_book (dest->priv->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 && E_IS_DESTINATION (dest), -1);</div><div class='del'>-</div><div class='del'>- if (dest->priv->card == NULL && (dest->priv->book_uri == NULL || dest->priv->card_uid == NULL))</div><div class='del'>- return -1;</div><div class='del'>-</div><div class='del'>- return dest->priv->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 && E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>- priv = (struct _EDestinationPrivate *)dest->priv; /* cast out const */</div><div class='del'>- </div><div class='del'>- if (priv->name == NULL) {</div><div class='del'>-</div><div class='del'>- if (priv->card != NULL) {</div><div class='del'>- </div><div class='del'>- priv->name = e_card_name_to_string (priv->card->name);</div><div class='del'>- </div><div class='del'>- if (priv->name == NULL || *priv->name == '\0') {</div><div class='del'>- g_free (priv->name);</div><div class='del'>- priv->name = g_strdup (priv->card->file_as);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (priv->name == NULL || *priv->name == '\0') {</div><div class='del'>- g_free (priv->name);</div><div class='del'>- priv->name = g_strdup (e_destination_get_email (dest));</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- } else if (priv->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->raw)) {</div><div class='del'>- const gchar *camel_name = NULL;</div><div class='del'>- camel_internet_address_get (addr, 0, &camel_name, NULL);</div><div class='del'>- priv->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->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 && E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>- priv = (struct _EDestinationPrivate *)dest->priv; /* cast out const */</div><div class='del'>- </div><div class='del'>- if (priv->email == NULL) {</div><div class='del'>-</div><div class='del'>- if (priv->card != NULL) { /* Pull the address out of the card. */</div><div class='del'>-</div><div class='del'>- if (priv->card->email) {</div><div class='del'>- EIterator *iter = e_list_get_iterator (priv->card->email);</div><div class='del'>- gint n = priv->card_email_num;</div><div class='del'>-</div><div class='del'>- if (n >= 0) {</div><div class='del'>- while (n > 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->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->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->raw)) {</div><div class='del'>- const gchar *camel_email = NULL;</div><div class='del'>- camel_internet_address_get (addr, 0, NULL, &camel_email);</div><div class='del'>- priv->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->email == NULL) {</div><div class='del'>- priv->email = g_strdup ("");</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- return priv->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 && E_IS_DESTINATION (dest), NULL);</div><div class='del'>- </div><div class='del'>- priv = (struct _EDestinationPrivate *)dest->priv; /* cast out const */</div><div class='del'>-</div><div class='del'>- if (priv->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->priv->list_dests;</div><div class='del'>- </div><div class='del'>- while (iter) {</div><div class='del'>- EDestination *list_dest = E_DESTINATION (iter->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->addr = camel_address_encode (CAMEL_ADDRESS (addr));</div><div class='del'>-</div><div class='del'>- } else if (priv->raw) {</div><div class='del'>-</div><div class='del'>- if (camel_address_unformat (CAMEL_ADDRESS (addr), priv->raw)) {</div><div class='del'>- priv->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->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->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->priv->raw == NULL || strcmp (dest->priv->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->priv->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 && E_IS_DESTINATION (dest), NULL);</div><div class='del'>-</div><div class='del'>- if (dest->priv->raw)</div><div class='del'>- return dest->priv->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) && 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 && email && dest->priv->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->priv->textrep);</div><div class='del'>- dest->priv->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->priv->textrep != NULL)</div><div class='del'>- return dest->priv->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 && E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>- if (dest->priv->list_dests == NULL</div><div class='del'>- && dest->priv->card != NULL</div><div class='del'>- && dest->priv->card->email != NULL</div><div class='del'>- && e_card_evolution_list (dest->priv->card)) {</div><div class='del'>-</div><div class='del'>- EIterator *iter = e_list_get_iterator (dest->priv->card->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->priv->list_dests = g_list_append (dest->priv->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->priv->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->priv->card != NULL)</div><div class='del'>- return e_card_evolution_list_show_addresses (dest->priv->card);</div><div class='del'>-</div><div class='del'>- return dest->priv->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 && E_IS_DESTINATION (dest), FALSE);</div><div class='del'>-</div><div class='del'>- if (dest->priv->html_mail_override || dest->priv->card == NULL)</div><div class='del'>- return dest->priv->wants_html_mail;</div><div class='del'>-</div><div class='del'>- return dest->priv->card->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->priv->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->priv->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->priv->cardify_book && dest->priv->cardify_book != book) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (dest->priv->cardify_book));</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- dest->priv->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 && g_list_length ((GList *) cards) == 1) {</div><div class='del'>- ECard *card = E_CARD (cards->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) && email && *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 >= 0) {</div><div class='del'>- dest->priv->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->priv->has_been_cardified) {</div><div class='del'>- dest->priv->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->priv->has_been_cardified = TRUE;</div><div class='del'>- e_destination_set_card (dest, E_CARD (cards->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->priv->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->priv->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->priv->cardify_book == NULL) {</div><div class='del'>- dest->priv->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->priv->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->priv->old_textrep, -1);</div><div class='del'>-</div><div class='del'>- if (len <= 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->priv->allow_cardify)</div><div class='del'>- return;</div><div class='del'>-</div><div class='del'>- if (dest->priv->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'>- && e_destination_reverting_is_a_good_idea (dest)</div><div class='del'>- && 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->priv->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->priv->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 < 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->priv->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->priv->pending_cardification) {</div><div class='del'>- gtk_timeout_remove (dest->priv->pending_cardification);</div><div class='del'>- dest->priv->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->priv->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->priv->old_card;</div><div class='del'>- card_email_num = dest->priv->old_card_email_num;</div><div class='del'>-</div><div class='del'>- dest->priv->old_card = NULL;</div><div class='del'>- g_free (dest->priv->old_textrep);</div><div class='del'>- dest->priv->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 && 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->priv->list_dests;</div><div class='del'>- </div><div class='del'>- while (iter) {</div><div class='del'>- EDestination *list_dest = E_DESTINATION (iter->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 && 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->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->xmlChildrenNode;</div><div class='del'>- while (node) {</div><div class='del'>- if (!strcmp (node->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 && !strcmp (node->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 && !strcmp (node->name, "list_entry")) {</div><div class='del'>- xmlNodePtr subnode = node->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->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->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->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->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->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->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->priv->list_dests = list_dests;</div><div class='del'>-</div><div class='del'>- dest->priv->html_mail_override = TRUE;</div><div class='del'>- dest->priv->wants_html_mail = html_mail;</div><div class='del'>-</div><div class='del'>- dest->priv->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 <= 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 && 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 && 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, &buffer, &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 && *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 && dest_doc->xmlRootNode) {</div><div class='del'>- dest = e_destination_new ();</div><div class='del'>- if (! e_destination_xml_decode (dest, dest_doc->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, &buffer, &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 && *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->xmlRootNode;</div><div class='del'>- </div><div class='del'>- if (strcmp (node->name, "destinations"))</div><div class='del'>- goto finished;</div><div class='del'>- </div><div class='del'>- node = node->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) && !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->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->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->data);</div><div class='del'>- list->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 && 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 && 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&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 <trow@ximian.com></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 <gtk/gtkobject.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book.h></div><div class='del'>-#include <gnome-xml/tree.h></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 <jane@assbarn.com>" (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 < 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&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 <config.h></div><div class='del'>-#include <bonobo.h></div><div class='del'>-#include <gnome.h></div><div class='del'>-#include <liboaf/liboaf.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <ctype.h></div><div class='del'>-</div><div class='del'>-#include <e-book.h></div><div class='del'>-#include <e-card-simple.h></div><div class='del'>-#include <e-destination.h></div><div class='del'>-</div><div class='del'>-#include <importer/evolution-importer.h></div><div class='del'>-#include <importer/GNOME_Evolution_Importer.h></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<inend) {</div><div class='del'>- c = base64_rank[*inptr++];</div><div class='del'>- if (c != 0xff) {</div><div class='del'>- v = (v<<6) | c;</div><div class='del'>- i++;</div><div class='del'>- if (i==4) {</div><div class='del'>- *outptr++ = v>>16;</div><div class='del'>- *outptr++ = v>>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>in && 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, &state, &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 && *s != '\n' && *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] == ' ' && 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, &value );</div><div class='del'>-</div><div class='del'>- field_handled = FALSE;</div><div class='del'>- for (i = 0; i < 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 & FLAG_ADDRESS) {</div><div class='del'>- if (!g_strcasecmp (ptr, "locality"))</div><div class='del'>- address->city = g_strdup (ldif_value);</div><div class='del'>- else if (!g_strcasecmp (ptr, "countryname"))</div><div class='del'>- address->country = g_strdup (ldif_value);</div><div class='del'>- else if (!g_strcasecmp (ptr, "postalcode"))</div><div class='del'>- address->code = g_strdup (ldif_value);</div><div class='del'>- else if (!g_strcasecmp (ptr, "st"))</div><div class='del'>- address->region = g_strdup (ldif_value);</div><div class='del'>- else if (!g_strcasecmp (ptr, "streetaddress"))</div><div class='del'>- address->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->card);</div><div class='del'>- else if (!g_strcasecmp (ptr, "objectclass") && !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->card),</div><div class='del'>- "email", &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->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->str;</div><div class='del'>- while (buf) {</div><div class='del'>- if (!parseLine (simple, address, &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->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", &email,</div><div class='del'>- "full_name", &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 && !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->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->cardlist = list;</div><div class='del'>- gci->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->book = e_book_new ();</div><div class='del'>-</div><div class='del'>- if (!gci->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->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->iterator == NULL)</div><div class='del'>- gci->iterator = gci->cardlist;</div><div class='del'>-</div><div class='del'>- if (gci->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->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->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->iterator->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->book, card, add_card_cb, card);</div><div class='del'>-</div><div class='del'>- gci->iterator = gci->iterator->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->iterator ? TRUE : FALSE, </div><div class='del'>- ev);</div><div class='del'>- if (ev->_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->filename = g_strdup (filename);</div><div class='del'>- gci->cardlist = NULL;</div><div class='del'>- gci->iterator = NULL;</div><div class='del'>- gci->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&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 <config.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-</div><div class='del'>-#include <liboaf/liboaf.h></div><div class='del'>-#include <bonobo/bonobo-context.h></div><div class='del'>-#include <bonobo/bonobo-generic-factory.h></div><div class='del'>-#include <bonobo/bonobo-main.h></div><div class='del'>-</div><div class='del'>-#include <e-book.h></div><div class='del'>-</div><div class='del'>-#include <importer/evolution-importer.h></div><div class='del'>-#include <importer/GNOME_Evolution_Importer.h></div><div class='del'>-</div><div class='del'>-#include <e-util/e-path.h></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->cardlist = e_card_load_cards_from_file_with_default_charset(gci->filename, "ISO-8859-1");</div><div class='del'>- gci->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->book = e_book_new ();</div><div class='del'>-</div><div class='del'>- if (!gci->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->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->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->iterator == NULL)</div><div class='del'>- gci->iterator = gci->cardlist;</div><div class='del'>- </div><div class='del'>- if (gci->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->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->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->iterator->data;</div><div class='del'>- e_book_add_card (gci->book, card, add_card_cb, card);</div><div class='del'>- </div><div class='del'>- gci->iterator = gci->iterator->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->iterator ? TRUE : FALSE, </div><div class='del'>- ev);</div><div class='del'>- if (ev->_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->filename = g_strdup (filename);</div><div class='del'>- gci->folderpath = g_strdup (folderpath);</div><div class='del'>- gci->cardlist = NULL;</div><div class='del'>- gci->iterator = NULL;</div><div class='del'>- gci->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&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 <config.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <glib.h></div><div class='del'>-#include <gtk/gtkmain.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnome/gnome-util.h></div><div class='del'>-#include <libgnomeui/gnome-init.h></div><div class='del'>-#include <bonobo/bonobo-main.h></div><div class='del'>-#include <liboaf/liboaf.h></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->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 (&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&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 <config.h></div><div class='del'>-#include <ctype.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <glib.h></div><div class='del'>-#include <gtk/gtkmain.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnome/gnome-util.h></div><div class='del'>-#include <libgnomeui/gnome-init.h></div><div class='del'>-#include <bonobo/bonobo-main.h></div><div class='del'>-#include <liboaf/liboaf.h></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] && strings[1] && 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", &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 && *thisline && isspace(*thisline)) {</div><div class='del'>- char *temp;</div><div class='del'>- while(*thisline && 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 (&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&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 <string.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnomeui/gnome-init.h></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 < 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", &fname,</div><div class='del'>- "name", &name,</div><div class='del'>- "address", &address,</div><div class='del'>- "phone", &phone,</div><div class='del'>- "email", &email,</div><div class='del'>- "org", &org,</div><div class='del'>- "org_unit", &org_unit,</div><div class='del'>- "title", &title,</div><div class='del'>- "role", &role,</div><div class='del'>- "nickname", &nickname,</div><div class='del'>- "fburl", &fburl,</div><div class='del'>- "birth_date", &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->prefix )</div><div class='del'>- printf(" prefix : %s\n", name->prefix);</div><div class='del'>- if ( name->given )</div><div class='del'>- printf(" given : %s\n", name->given);</div><div class='del'>- if ( name->additional )</div><div class='del'>- printf(" additional : %s\n", name->additional);</div><div class='del'>- if ( name->family )</div><div class='del'>- printf(" family : %s\n", name->family);</div><div class='del'>- if ( name->suffix )</div><div class='del'>- printf(" suffix : %s\n", name->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->year, bday->month, bday->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->flags, e_card_phone->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->flags);</div><div class='del'>- if ( del_address->po )</div><div class='del'>- printf(" Po : %s\n", del_address->po);</div><div class='del'>- if ( del_address->ext )</div><div class='del'>- printf(" Ext : %s\n", del_address->ext);</div><div class='del'>- if ( del_address->street )</div><div class='del'>- printf(" Street : %s\n", del_address->street);</div><div class='del'>- if ( del_address->city )</div><div class='del'>- printf(" City : %s\n", del_address->city);</div><div class='del'>- if ( del_address->region )</div><div class='del'>- printf(" Region : %s\n", del_address->region);</div><div class='del'>- if ( del_address->code )</div><div class='del'>- printf(" Code : %s\n", del_address->code);</div><div class='del'>- if ( del_address->country )</div><div class='del'>- printf(" Country : %s\n", del_address->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&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 <config.h></div><div class='del'>-</div><div class='del'>-#include <glib.h></div><div class='del'>-#include <gtk/gtkmain.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnomeui/gnome-init.h></div><div class='del'>-#include <liboaf/liboaf.h></div><div class='del'>-#include <bonobo/bonobo-main.h></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 < 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 (&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&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 <config.h></div><div class='del'>-#include <glib.h></div><div class='del'>-#include <gtk/gtkmain.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnomeui/gnome-init.h></div><div class='del'>-#include <bonobo/bonobo-main.h></div><div class='del'>-#include <liboaf/liboaf.h></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 >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 < 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 < 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 (&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&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&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&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 <Bonobo.idl></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<VCard> VCardList;</div><div class='del'>- typedef sequence<string> 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&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&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&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&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&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 <string.h></div><div class='del'>-#include <e-util/e-sexp.h></div><div class='del'>-#include <ebook/e-card-simple.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></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 < 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 && 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 < 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 && compare(phone->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", &ecard,</div><div class='del'>- NULL);</div><div class='del'>- gtk_object_get (GTK_OBJECT (ecard),</div><div class='del'>- "category_list", &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'>- && argv[0]->type == ESEXP_RES_STRING</div><div class='del'>- && argv[1]->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]->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 < 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 = &prop_info_table[i];</div><div class='del'>- </div><div class='del'>- if (info->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->card, info->field_id);</div><div class='del'>-</div><div class='del'>- if (prop && compare(prop, argv[1]->value.string)) {</div><div class='del'>- truth = TRUE;</div><div class='del'>- }</div><div class='del'>- if ((!prop) && compare("", argv[1]->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->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->list_compare (ctx->card, argv[1]->value.string, compare);</div><div class='del'>- } else if (info->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->card->card);</div><div class='del'>-</div><div class='del'>- if (prop && compare(prop, argv[1]->value.string)) {</div><div class='del'>- truth = TRUE;</div><div class='del'>- }</div><div class='del'>- if ((!prop) && compare("", argv[1]->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 && 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->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'>- && (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'>- && (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->priv->search_context->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->priv->search_context->card)</div><div class='del'>- return FALSE;</div><div class='del'>-</div><div class='del'>- r = e_sexp_eval(sexp->priv->search_sexp);</div><div class='del'>-</div><div class='del'>- retval = (r && r->type == ESEXP_RES_BOOL && r->value.bool);</div><div class='del'>-</div><div class='del'>- gtk_object_unref(GTK_OBJECT(sexp->priv->search_context->card));</div><div class='del'>-</div><div class='del'>- e_sexp_result_free(sexp->priv->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->priv->search_sexp = e_sexp_new();</div><div class='del'>-</div><div class='del'>- for(i=0;i<sizeof(symbols)/sizeof(symbols[0]);i++) {</div><div class='del'>- if (symbols[i].type == 1) {</div><div class='del'>- e_sexp_add_ifunction(sexp->priv->search_sexp, 0, symbols[i].name,</div><div class='del'>- (ESExpIFunc *)symbols[i].func, sexp->priv->search_context);</div><div class='del'>- } else {</div><div class='del'>- e_sexp_add_function(sexp->priv->search_sexp, 0, symbols[i].name,</div><div class='del'>- symbols[i].func, sexp->priv->search_context);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- e_sexp_input_text(sexp->priv->search_sexp, text, strlen(text));</div><div class='del'>- esexp_error = e_sexp_parse(sexp->priv->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->priv->search_sexp);</div><div class='del'>-</div><div class='del'>- g_free (sexp->priv->search_context);</div><div class='del'>- g_free (sexp->priv);</div><div class='del'>-</div><div class='del'>- GTK_OBJECT_CLASS (parent_class)->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->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->priv = priv;</div><div class='del'>- priv->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 (), &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&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 <gtk/gtk.h></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&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 <stdio.h></div><div class='del'>-#include <unistd.h></div><div class='del'>-#include <fcntl.h></div><div class='del'>-#include <time.h></div><div class='del'>-#include <db.h></div><div class='del'>-</div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-</div><div class='del'>-#include <e-util/e-db3-utils.h></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 <gtk/gtksignal.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-util.h></div><div class='del'>-#include <gal/util/e-util.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-</div><div class='del'>-#include <ebook/e-card-simple.h></div><div class='del'>-#include <e-util/e-dbhash.h></div><div class='del'>-#include <e-util/e-db3-utils.h></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->book_view = book_view->book_view;</div><div class='del'>-</div><div class='del'>- new_book_view->search = g_strdup(book_view->search);</div><div class='del'>- new_book_view->card_sexp = book_view->card_sexp;</div><div class='del'>- if (new_book_view->card_sexp)</div><div class='del'>- gtk_object_ref(GTK_OBJECT(new_book_view->card_sexp));</div><div class='del'>- </div><div class='del'>- new_book_view->change_id = g_strdup(book_view->change_id);</div><div class='del'>- if (book_view->change_context) {</div><div class='del'>- new_book_view->change_context = g_new(PASBackendFileChangeContext, 1);</div><div class='del'>- new_book_view->change_context->db = book_view->change_context->db;</div><div class='del'>- new_book_view->change_context->add_cards = book_view->change_context->add_cards;</div><div class='del'>- new_book_view->change_context->add_ids = book_view->change_context->add_ids;</div><div class='del'>- new_book_view->change_context->mod_cards = book_view->change_context->mod_cards;</div><div class='del'>- new_book_view->change_context->mod_ids = book_view->change_context->mod_ids;</div><div class='del'>- new_book_view->change_context->del_ids = book_view->change_context->del_ids;</div><div class='del'>- } else</div><div class='del'>- new_book_view->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->search);</div><div class='del'>- if (book_view->card_sexp)</div><div class='del'>- gtk_object_unref (GTK_OBJECT(book_view->card_sexp));</div><div class='del'>-</div><div class='del'>- g_free(book_view->change_id);</div><div class='del'>- if (book_view->change_context) {</div><div class='del'>- g_list_foreach (book_view->change_context->add_cards, (GFunc)g_free, NULL);</div><div class='del'>- g_list_foreach (book_view->change_context->add_ids, (GFunc)g_free, NULL);</div><div class='del'>- g_list_foreach (book_view->change_context->mod_cards, (GFunc)g_free, NULL);</div><div class='del'>- g_list_foreach (book_view->change_context->mod_ids, (GFunc)g_free, NULL);</div><div class='del'>- g_list_foreach (book_view->change_context->del_ids, (GFunc)g_free, NULL);</div><div class='del'>- g_list_free (book_view->change_context->add_cards);</div><div class='del'>- g_list_free (book_view->change_context->add_ids);</div><div class='del'>- g_list_free (book_view->change_context->mod_cards);</div><div class='del'>- g_list_free (book_view->change_context->mod_ids);</div><div class='del'>- g_list_free (book_view->change_context->del_ids);</div><div class='del'>- }</div><div class='del'>- g_free(book_view->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->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->elements, n);</div><div class='del'>-</div><div class='del'>- return g_strdup((char*)nth_item->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->book));</div><div class='del'>-</div><div class='del'>- CORBA_exception_init(&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_Book_unref(corba_book, &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(&ev);</div><div class='del'>-</div><div class='del'>- g_list_foreach(cursor_data->elements, (GFunc)g_free, NULL);</div><div class='del'>- g_list_free (cursor_data->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->priv->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->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->data = (void*)str;</div><div class='del'>- dbt->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->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->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->priv->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->priv->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->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->book_view, _("Searching..."));</div><div class='del'>- else</div><div class='del'>- pas_book_view_notify_status_message (view->book_view, _("Loading..."));</div><div class='del'>-</div><div class='del'>- if (view->card_sexp)</div><div class='del'>- gtk_object_unref (GTK_OBJECT(view->card_sexp));</div><div class='del'>-</div><div class='del'>- view->card_sexp = pas_backend_card_sexp_new (view->search);</div><div class='del'>- </div><div class='del'>- if (!view->card_sexp) {</div><div class='del'>- /* need a different error message here. */</div><div class='del'>- pas_book_view_notify_status_message (view->book_view, _("Error in search expression."));</div><div class='del'>- pas_book_view_notify_complete (view->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->cursor (db, NULL, &dbc, 0);</div><div class='del'>-</div><div class='del'>- memset (&id_dbt, 0, sizeof (id_dbt));</div><div class='del'>- memset (&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->c_get(dbc, &id_dbt, &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 >= card_threshold) {</div><div class='del'>- cards = g_list_reverse (cards);</div><div class='del'>- pas_book_view_notify_add (view->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 < 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->c_get(dbc, &id_dbt, &vcard_dbt, DB_NEXT);</div><div class='del'>- }</div><div class='del'>- dbc->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->book_view, cards);</div><div class='del'>-</div><div class='del'>- pas_book_view_notify_complete (view->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->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, &id_dbt);</div><div class='del'>- memset (&vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>- db_error = db->get (db, NULL, &id_dbt, &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->del_ids = g_list_append (ctx->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->priv->file_db;</div><div class='del'>- DBC *dbc;</div><div class='del'>- PASBackendFileBookView *view = (PASBackendFileBookView *)cnstview;</div><div class='del'>- PASBackendFileChangeContext *ctx = cnstview->change_context;</div><div class='del'>-</div><div class='del'>- memset (&id_dbt, 0, sizeof (id_dbt));</div><div class='del'>- memset (&vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>- if (!bf->priv->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->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->cursor (db, NULL, &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->c_get(dbc, &id_dbt, &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->add_cards = g_list_append (ctx->add_cards, </div><div class='del'>- g_strdup(vcard_string));</div><div class='del'>- ctx->add_ids = g_list_append (ctx->add_ids, g_strdup(id));</div><div class='del'>- break;</div><div class='del'>- case E_DBHASH_STATUS_DIFFERENT:</div><div class='del'>- ctx->mod_cards = g_list_append (ctx->mod_cards, </div><div class='del'>- g_strdup(vcard_string));</div><div class='del'>- ctx->mod_ids = g_list_append (ctx->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->c_get(dbc, &id_dbt, &vcard_dbt, DB_NEXT);</div><div class='del'>- }</div><div class='del'>- dbc->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->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->add_cards != NULL)</div><div class='del'>- pas_book_view_notify_add (view->book_view, ctx->add_cards);</div><div class='del'>- </div><div class='del'>- if (ctx->mod_cards != NULL)</div><div class='del'>- pas_book_view_notify_change (view->book_view, ctx->mod_cards);</div><div class='del'>-</div><div class='del'>- for (v = ctx->del_ids; v != NULL; v = v->next){</div><div class='del'>- char *id = v->data;</div><div class='del'>- pas_book_view_notify_remove (view->book_view, id);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- pas_book_view_notify_complete (view->book_view);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- /* Update the hash */</div><div class='del'>- for (i = ctx->add_ids, v = ctx->add_cards; i != NULL; i = i->next, v = v->next){</div><div class='del'>- char *id = i->data;</div><div class='del'>- char *vcard = v->data;</div><div class='del'>-</div><div class='del'>- e_dbhash_add (ehash, id, vcard);</div><div class='del'>- g_free (i->data);</div><div class='del'>- g_free (v->data); </div><div class='del'>- } </div><div class='del'>- for (i = ctx->mod_ids, v = ctx->mod_cards; i != NULL; i = i->next, v = v->next){</div><div class='del'>- char *id = i->data;</div><div class='del'>- char *vcard = v->data;</div><div class='del'>-</div><div class='del'>- e_dbhash_add (ehash, id, vcard);</div><div class='del'>- g_free (i->data);</div><div class='del'>- g_free (v->data); </div><div class='del'>- } </div><div class='del'>- for (i = ctx->del_ids; i != NULL; i = i->next){</div><div class='del'>- char *id = i->data;</div><div class='del'>-</div><div class='del'>- e_dbhash_remove (ehash, id);</div><div class='del'>- g_free (i->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->priv->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, &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, &vcard_dbt);</div><div class='del'>-</div><div class='del'>- db_error = db->put (db, NULL, &id_dbt, &vcard_dbt, 0);</div><div class='del'>-</div><div class='del'>- if (0 == db_error) {</div><div class='del'>- db_error = db->sync (db, 0);</div><div class='del'>- if (db_error != 0)</div><div class='del'>- g_warning ("db->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 && 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->vcard, &vcard);</div><div class='del'>- if (id) {</div><div class='del'>- for (iterator = e_list_get_iterator(bf->priv->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->book_view));</div><div class='del'>- pas_book_view_notify_add_1 (view->book_view, vcard);</div><div class='del'>- pas_book_view_notify_complete (view->book_view);</div><div class='del'>- bonobo_object_unref (BONOBO_OBJECT (view->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->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->priv->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->id;</div><div class='del'>- string_to_dbt (id, &id_dbt);</div><div class='del'>- memset (&vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>- db_error = db->get (db, NULL, &id_dbt, &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->id);</div><div class='del'>- return;</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- db_error = db->del (db, NULL, &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->id);</div><div class='del'>- return;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- db_error = db->sync (db, 0);</div><div class='del'>- if (db_error != 0)</div><div class='del'>- g_warning ("db->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->priv->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->book_view));</div><div class='del'>- pas_book_view_notify_remove (view->book_view, req->id);</div><div class='del'>- pas_book_view_notify_complete (view->book_view);</div><div class='del'>- bonobo_object_unref (BONOBO_OBJECT (view->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->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->priv->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->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, &id_dbt); </div><div class='del'>- memset (&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->get (db, NULL, &id_dbt, &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->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->vcard, &vcard_dbt); </div><div class='del'>-</div><div class='del'>- db_error = db->put (db, NULL, &id_dbt, &vcard_dbt, 0);</div><div class='del'>-</div><div class='del'>- if (0 == db_error) {</div><div class='del'>- db_error = db->sync (db, 0);</div><div class='del'>- if (db_error != 0)</div><div class='del'>- g_warning ("db->sync failed.\n");</div><div class='del'>-</div><div class='del'>- for (iterator = e_list_get_iterator(bf->priv->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(&ev);</div><div class='del'>-</div><div class='del'>- bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(view->book_view)), &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->vcard);</div><div class='del'>- if (old_match && new_match)</div><div class='del'>- pas_book_view_notify_change_1 (view->book_view, req->vcard);</div><div class='del'>- else if (new_match)</div><div class='del'>- pas_book_view_notify_add_1 (view->book_view, req->vcard);</div><div class='del'>- else /* if (old_match) */</div><div class='del'>- pas_book_view_notify_remove (view->book_view, id);</div><div class='del'>- pas_book_view_notify_complete (view->book_view);</div><div class='del'>-</div><div class='del'>- bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(view->book_view)), &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->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->priv->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->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->cursor (db, NULL, &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 (&vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>- memset (&id_dbt, 0, sizeof (id_dbt));</div><div class='del'>- db_error = dbc->c_get(dbc, &id_dbt, &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 && pas_backend_card_sexp_match_vcard (card_sexp, vcard_dbt.data))) {</div><div class='del'>- cursor_data->elements = g_list_prepend (cursor_data->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->c_get(dbc, &id_dbt, &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->num_elements = g_list_length (cursor_data->elements);</div><div class='del'>- cursor_data->elements = g_list_reverse (cursor_data->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->priv->file_db;</div><div class='del'>-</div><div class='del'>- string_to_dbt (req->id, &id_dbt);</div><div class='del'>- memset (&vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>- db_error = db->get (db, NULL, &id_dbt, &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->priv->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->backend = backend;</div><div class='del'>- cursor_data->book = book;</div><div class='del'>-</div><div class='del'>- pas_backend_file_build_cards_list(backend, cursor_data, req->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(&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_Book_ref(corba_book, &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(&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->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->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->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->priv->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'>- iterator = e_list_get_iterator(bf->priv->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->search);</div><div class='del'>- CORBA_exception_init(&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->listener, &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(&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->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->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->change_id;</div><div class='del'>- view.change_context = &ctx;</div><div class='del'>- ctx.db = bf->priv->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->priv->book_views, &view);</div><div class='del'>-</div><div class='del'>- iterator = e_list_get_iterator(bf->priv->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->search);</div><div class='del'>- CORBA_exception_init(&ev);</div><div class='del'>- bonobo_object_release_unref (req->listener, &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(&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->priv->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 < 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->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->priv->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'>- && 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->cursor (db, NULL, &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 (&id_dbt, 0, sizeof (id_dbt));</div><div class='del'>- memset (&vcard_dbt, 0, sizeof (vcard_dbt));</div><div class='del'>-</div><div class='del'>- db_error = dbc->c_get(dbc, &id_dbt, &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, &vcard_dbt);</div><div class='del'>-</div><div class='del'>- db_error = db->put (db, NULL,</div><div class='del'>- &id_dbt, &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->c_get(dbc, &id_dbt, &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, &version_name_dbt);</div><div class='del'>- string_to_dbt (PAS_BACKEND_FILE_VERSION, &version_dbt);</div><div class='del'>-</div><div class='del'>- db_error = db->put (db, NULL, &version_name_dbt, &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->priv->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, &version_name_dbt);</div><div class='del'>- memset (&version_dbt, 0, sizeof (version_dbt));</div><div class='del'>-</div><div class='del'>- db_error = db->get (db, NULL, &version_name_dbt, &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->priv->loaded == FALSE);</div><div class='del'>-</div><div class='del'>- db_version (&major, &minor, &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 (&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->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->open (db, filename, NULL, DB_HASH, 0, 0666);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- bf->priv->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->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->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->priv->file_db = NULL;</div><div class='del'>- return FALSE;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- bf->priv->writable = writable;</div><div class='del'>-</div><div class='del'>- if (pas_backend_file_maybe_upgrade_db (bf))</div><div class='del'>- bf->priv->loaded = TRUE;</div><div class='del'>- else {</div><div class='del'>- db->close (db, 0);</div><div class='del'>- bf->priv->file_db = NULL;</div><div class='del'>- bf->priv->writable = FALSE;</div><div class='del'>- return FALSE;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_free(bf->priv->uri);</div><div class='del'>- bf->priv->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->priv->clients; l; l = g_list_next (l)) {</div><div class='del'>- PASBook *book = l->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->priv->loaded, NULL);</div><div class='del'>- g_assert (bf->priv->uri != NULL);</div><div class='del'>-</div><div class='del'>- return bf->priv->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->priv->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->priv->clients = g_list_prepend (</div><div class='del'>- bf->priv->clients, book);</div><div class='del'>-</div><div class='del'>- if (bf->priv->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->priv->writable)</div><div class='del'>- pas_book_report_writable (book, bf->priv->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->priv->writable)</div><div class='del'>- pas_book_report_writable (book, bf->priv->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->priv->clients; l; l = l->next) {</div><div class='del'>- lbook = PAS_BOOK (l->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->priv->clients = g_list_remove_link (bf->priv->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->priv->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->priv->book_views));</div><div class='del'>- g_free (bf->priv->uri);</div><div class='del'>-</div><div class='del'>- GTK_OBJECT_CLASS (pas_backend_file_parent_class)->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->load_uri = pas_backend_file_load_uri;</div><div class='del'>- parent_class->get_uri = pas_backend_file_get_uri;</div><div class='del'>- parent_class->add_client = pas_backend_file_add_client;</div><div class='del'>- parent_class->remove_client = pas_backend_file_remove_client;</div><div class='del'>- parent_class->get_static_capabilities = pas_backend_file_get_static_capabilities;</div><div class='del'>-</div><div class='del'>- object_class->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->loaded = FALSE;</div><div class='del'>- priv->clients = NULL;</div><div class='del'>- priv->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->uri = NULL;</div><div class='del'>- priv->writable = FALSE;</div><div class='del'>-</div><div class='del'>- backend->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 (), &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&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 <libgnome/gnome-defs.h></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&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 <fcntl.h></div><div class='del'>-#include <time.h></div><div class='del'>-#include <lber.h></div><div class='del'>-#include <gtk/gtksignal.h></div><div class='del'>-</div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></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 <ldap.h></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 > 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 <e-util/e-sexp.h></div><div class='del'>-#include <ebook/e-card-simple.h></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->priv->book_views; list; list = g_list_next(list)) {</div><div class='del'>- PASBackendLDAPBookView *view = list->data;</div><div class='del'>- if (view->book_view == PAS_BOOK_VIEW(object)) {</div><div class='del'>- if (view->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->search_idle);</div><div class='del'>- if (view->search_msgid != -1)</div><div class='del'>- ldap_abandon (bl->priv->ldap, view->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->search_op == bl->priv->current_op)</div><div class='del'>- ldap_op_finished (view->search_op);</div><div class='del'>- else {</div><div class='del'>- bl->priv->pending_ops = g_list_remove (bl->priv->pending_ops,</div><div class='del'>- view->search_op);</div><div class='del'>- view->search_op->dtor (view->search_op->backend,</div><div class='del'>- view->search_op);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- g_free (view->search);</div><div class='del'>- gtk_object_unref (GTK_OBJECT (view->card_sexp));</div><div class='del'>- g_free (view);</div><div class='del'>- bl->priv->book_views = g_list_remove_link(bl->priv->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(&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_Book_unref(corba_book, &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(&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->priv->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->priv->supported_fields, "email_2");</div><div class='del'>- e_list_append (bl->priv->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->priv->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->priv->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 < 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->oc_at_oids_must)</div><div class='del'>- add_to_supported_fields (bl, oc->oc_at_oids_must, attr_hash);</div><div class='del'>-</div><div class='del'>- if (oc->oc_at_oids_may)</div><div class='del'>- add_to_supported_fields (bl, oc->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->priv->ldap;</div><div class='del'>-</div><div class='del'>- bl->priv->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, &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], &code, &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->oc_names[j]; j++)</div><div class='del'>- if (!g_strcasecmp (oc->oc_names[j], EVOLUTIONPERSON)) {</div><div class='del'>- g_print ("support found on ldap server for objectclass evolutionPerson\n");</div><div class='del'>- bl->priv->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->oc_names[j], INETORGPERSON)</div><div class='del'>- || !g_strcasecmp (oc->oc_names[j], ORGANIZATIONALPERSON)</div><div class='del'>- || !g_strcasecmp (oc->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->priv;</div><div class='del'>-</div><div class='del'>- /* close connection first if it's open first */</div><div class='del'>- if (blpriv->ldap)</div><div class='del'>- ldap_unbind (blpriv->ldap);</div><div class='del'>-</div><div class='del'>- blpriv->ldap = ldap_init (blpriv->ldap_host, blpriv->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->ldap, LDAP_OPT_DEBUG_LEVEL, &debug_level);</div><div class='del'>- }</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>- if (NULL != blpriv->ldap) {</div><div class='del'>- ldap_simple_bind_s(blpriv->ldap,</div><div class='del'>- NULL /*binddn*/, NULL /*passwd*/);</div><div class='del'>- blpriv->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->ldap_host,</div><div class='del'>- blpriv->ldap_port,</div><div class='del'>- blpriv->ldap_rootdn ? blpriv->ldap_rootdn : "");</div><div class='del'>- blpriv->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->priv->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, &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->backend = backend;</div><div class='del'>- op->book = book;</div><div class='del'>- op->view = view;</div><div class='del'>- op->handler = handler;</div><div class='del'>- op->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->priv->current_op;</div><div class='del'>-</div><div class='del'>- if (!bl->priv->connected) {</div><div class='del'>- if (op->view)</div><div class='del'>- pas_book_view_notify_status_message (op->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->priv->connected) {</div><div class='del'>- if (op->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->view) {</div><div class='del'>- pas_book_view_notify_status_message (op->view, _("Unable to connect to LDAP server."));</div><div class='del'>- pas_book_view_notify_complete (op->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->backend);</div><div class='del'>-</div><div class='del'>- if (bl->priv->current_op) {</div><div class='del'>- /* operation in progress. queue this op for later and return. */</div><div class='del'>- if (op->view)</div><div class='del'>- pas_book_view_notify_status_message (op->view, _("Waiting for connection to LDAP server..."));</div><div class='del'>- bl->priv->pending_ops = g_list_append (bl->priv->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->priv->current_op = op;</div><div class='del'>- ldap_op_process_current (op->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->priv->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->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->priv->current_op);</div><div class='del'>-</div><div class='del'>- bl->priv->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->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->priv->current_op);</div><div class='del'>-</div><div class='del'>- op->dtor (backend, op);</div><div class='del'>-</div><div class='del'>- if (bl->priv->pending_ops) {</div><div class='del'>- bl->priv->current_op = bl->priv->pending_ops->data;</div><div class='del'>- bl->priv->pending_ops = g_list_remove_link (bl->priv->pending_ops, bl->priv->pending_ops);</div><div class='del'>-</div><div class='del'>- bl->priv->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->priv->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 && strlen(root_dn)) ? "," : "",</div><div class='del'>- (root_dn && 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->mod_type);</div><div class='del'>-</div><div class='del'>- if (mod->mod_op & LDAP_MOD_BVALUES) {</div><div class='del'>- for (j = 0; mod->mod_bvalues[j]; j++) {</div><div class='del'>- g_free (mod->mod_bvalues[j]->bv_val);</div><div class='del'>- g_free (mod->mod_bvalues[j]);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- else {</div><div class='del'>- for (j = 0; mod->mod_values[j]; j++)</div><div class='del'>- g_free (mod->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 < 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 & PROP_EVOLVE && !bl->priv->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 & 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 & PROP_TYPE_STRING)</div><div class='del'>- include = (new_prop_present && *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 & 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 && current_prop)</div><div class='del'>- include = *new_prop && 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]->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 & PROP_DN;</div><div class='del'>-</div><div class='del'>- if (adding) {</div><div class='del'>- mod->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->mod_op = LDAP_MOD_DELETE;</div><div class='del'>- else if (!current_prop_present)</div><div class='del'>- mod->mod_op = LDAP_MOD_ADD;</div><div class='del'>- else</div><div class='del'>- mod->mod_op = LDAP_MOD_REPLACE;</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- mod->mod_type = g_strdup (prop_info[i].ldap_attr);</div><div class='del'>-</div><div class='del'>- if (prop_info[i].prop_type & PROP_TYPE_STRING) {</div><div class='del'>- mod->mod_values = g_new (char*, 2);</div><div class='del'>- mod->mod_values[0] = new_prop;</div><div class='del'>- mod->mod_values[1] = NULL;</div><div class='del'>- }</div><div class='del'>- else { /* PROP_TYPE_LIST */</div><div class='del'>- mod->mod_op |= LDAP_MOD_BVALUES;</div><div class='del'>- mod->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->mod_op = LDAP_MOD_ADD;</div><div class='del'>- objectclass_mod->mod_type = g_strdup ("objectClass");</div><div class='del'>- objectclass_mod->mod_values = g_new (char*, bl->priv->evolutionPersonSupported ? 6 : 5);</div><div class='del'>- objectclass_mod->mod_values[0] = g_strdup (TOP);</div><div class='del'>- objectclass_mod->mod_values[1] = g_strdup (PERSON);</div><div class='del'>- objectclass_mod->mod_values[2] = g_strdup (ORGANIZATIONALPERSON);</div><div class='del'>- objectclass_mod->mod_values[3] = g_strdup (INETORGPERSON);</div><div class='del'>- if (bl->priv->evolutionPersonSupported) {</div><div class='del'>- objectclass_mod->mod_values[4] = g_strdup (EVOLUTIONPERSON);</div><div class='del'>- objectclass_mod->mod_values[5] = NULL;</div><div class='del'>- }</div><div class='del'>- else {</div><div class='del'>- objectclass_mod->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->vcard);</div><div class='del'>-</div><div class='del'>- new_ecard = e_card_new (create_op->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->priv->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->priv->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->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->mod_op & LDAP_MOD_DELETE)</div><div class='del'>- printf ("del ");</div><div class='del'>- else if (mod->mod_op & 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->mod_op & 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->mod_type);</div><div class='del'>-</div><div class='del'>- if (mod->mod_op & LDAP_MOD_BVALUES) {</div><div class='del'>- int j;</div><div class='del'>- for (j = 0; mod->mod_bvalues[j] && mod->mod_bvalues[j]->bv_val; j++)</div><div class='del'>- printf ("\t\t'%s'\n", mod->mod_bvalues[j]->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->mod_values[j]; j++)</div><div class='del'>- printf ("\t\t'%s'\n", mod->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->pdata;</div><div class='del'>-</div><div class='del'>- if (op->view)</div><div class='del'>- pas_book_view_notify_status_message (op->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->priv->book_views; l; l = l->next) {</div><div class='del'>- CORBA_Environment ev;</div><div class='del'>- gboolean match;</div><div class='del'>- PASBackendLDAPBookView *view = l->data; </div><div class='del'>- </div><div class='del'>- CORBA_exception_init(&ev);</div><div class='del'>-</div><div class='del'>- bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(view->book_view)), &ev);</div><div class='del'>-</div><div class='del'>- match = pas_backend_card_sexp_match_vcard (view->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->book_view, e_card_simple_get_vcard_assume_utf8 (new_card));</div><div class='del'>- pas_book_view_notify_complete (view->book_view);</div><div class='del'>-</div><div class='del'>- bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(view->book_view)), &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->view)</div><div class='del'>- pas_book_view_notify_complete (op->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->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->view)</div><div class='del'>- bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(op->view)), NULL);</div><div class='del'>-</div><div class='del'>- g_free (create_op->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->priv->book_views) {</div><div class='del'>- PASBackendLDAPBookView *v = bl->priv->book_views->data;</div><div class='del'>- book_view = v->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->vcard = req->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->view)</div><div class='del'>- pas_book_view_notify_status_message (op->view, _("Removing card from LDAP server..."));</div><div class='del'>-</div><div class='del'>- simple = search_for_dn (bl, remove_op->id);</div><div class='del'>-</div><div class='del'>- if (simple) {</div><div class='del'>- ldap_error = ldap_delete_s (bl->priv->ldap, remove_op->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->priv->book_views; l; l = l->next) {</div><div class='del'>- CORBA_Environment ev;</div><div class='del'>- gboolean match;</div><div class='del'>- PASBackendLDAPBookView *view = l->data; </div><div class='del'>- </div><div class='del'>- CORBA_exception_init(&ev);</div><div class='del'>-</div><div class='del'>- bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(view->book_view)), &ev);</div><div class='del'>-</div><div class='del'>- match = pas_backend_card_sexp_match_vcard (view->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->book_view, remove_op->id);</div><div class='del'>- pas_book_view_notify_complete (view->book_view);</div><div class='del'>-</div><div class='del'>- bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(view->book_view)), &ev);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- else {</div><div class='del'>- ldap_perror (bl->priv->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->op.book,</div><div class='del'>- response);</div><div class='del'>-</div><div class='del'>- if (op->view)</div><div class='del'>- pas_book_view_notify_complete (op->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->view)</div><div class='del'>- bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(op->view)), NULL);</div><div class='del'>-</div><div class='del'>- g_free (remove_op->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->priv->book_views) {</div><div class='del'>- PASBackendLDAPBookView *v = bl->priv->book_views->data;</div><div class='del'>- book_view = v->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->id = req->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->vcard);</div><div class='del'>- id = e_card_get_id(new_ecard);</div><div class='del'>-</div><div class='del'>- ldap = bl->priv->ldap;</div><div class='del'>-</div><div class='del'>- if (op->view)</div><div class='del'>- pas_book_view_notify_status_message (op->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, &need_new_dn);</div><div class='del'>- if (mod_array->len > 0) {</div><div class='del'>- ldap_mods = (LDAPMod**)mod_array->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->priv->book_views; l; l = l->next) {</div><div class='del'>- CORBA_Environment ev;</div><div class='del'>- gboolean old_match, new_match;</div><div class='del'>- PASBackendLDAPBookView *view = l->data; </div><div class='del'>- </div><div class='del'>- CORBA_exception_init(&ev);</div><div class='del'>-</div><div class='del'>- bonobo_object_dup_ref(bonobo_object_corba_objref(BONOBO_OBJECT(view->book_view)), &ev);</div><div class='del'>-</div><div class='del'>- old_match = pas_backend_card_sexp_match_vcard (view->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->card_sexp,</div><div class='del'>- modify_op->vcard);</div><div class='del'>- if (old_match && new_match)</div><div class='del'>- pas_book_view_notify_change_1 (view->book_view, modify_op->vcard);</div><div class='del'>- else if (new_match)</div><div class='del'>- pas_book_view_notify_add_1 (view->book_view, modify_op->vcard);</div><div class='del'>- else /* if (old_match) */</div><div class='del'>- pas_book_view_notify_remove (view->book_view, e_card_simple_get_id (new_card));</div><div class='del'>- pas_book_view_notify_complete (view->book_view);</div><div class='del'>-</div><div class='del'>- bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(view->book_view)), &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->op.book,</div><div class='del'>- response);</div><div class='del'>-</div><div class='del'>- if (op->view)</div><div class='del'>- pas_book_view_notify_complete (op->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->view)</div><div class='del'>- bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(op->view)), NULL);</div><div class='del'>-</div><div class='del'>- g_free (modify_op->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->priv->book_views) {</div><div class='del'>- PASBackendLDAPBookView *v = bl->priv->book_views->data;</div><div class='del'>- book_view = v->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->vcard = req->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->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->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 < cursor_data->num_elements, NULL);</div><div class='del'>-</div><div class='del'>- return (char*)g_list_nth (cursor_data->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->book));</div><div class='del'>-</div><div class='del'>- CORBA_exception_init(&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_Book_unref(corba_book, &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(&ev);</div><div class='del'>-</div><div class='del'>- /* free the ldap specific cursor information */</div><div class='del'>- g_list_foreach (cursor_data->elements, (GFunc)g_free, NULL);</div><div class='del'>- g_list_free (cursor_data->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->priv->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->priv->ldap_rootdn,</div><div class='del'>- bl->priv->ldap_scope,</div><div class='del'>- "(objectclass=*)",</div><div class='del'>- NULL, 0, &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->elements = NULL;</div><div class='del'>-</div><div class='del'>- cursor_data->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, &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->elements = g_list_prepend(cursor_data->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->book;</div><div class='del'>-</div><div class='del'>- cursor_data = g_new(PASBackendLDAPCursorPrivate, 1);</div><div class='del'>- cursor_data->backend = backend;</div><div class='del'>- cursor_data->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(&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_Book_ref(corba_book, &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(&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] && i < 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 < 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 < 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 < 3; i ++) {</div><div class='del'>- if (emails[i]) {</div><div class='del'>- result[j]->bv_val = g_strdup (emails[i]);</div><div class='del'>- result[j++]->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 < 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 && 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 < 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 < 2; i ++) {</div><div class='del'>- if (homephones[i]) {</div><div class='del'>- result[j]->bv_val = g_strdup (homephones[i]);</div><div class='del'>- result[j++]->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 < 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 && 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 < 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 < 2; i ++) {</div><div class='del'>- if (business_phones[i]) {</div><div class='del'>- result[j]->bv_val = g_strdup (business_phones[i]);</div><div class='del'>- result[j++]->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 < 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 && 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 < 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 < 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]&0xf0) >> 4];</div><div class='del'>- newstr[j++] = hex[str[i]&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 > 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'>- </div><div class='del'>- for (i = 0; i < argc; i ++) {</div><div class='del'>- GList *list_head = *list;</div><div class='del'>- strings[argc - i] = (*list)->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 < 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->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 > 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 < argc; i ++) {</div><div class='del'>- GList *list_head = *list;</div><div class='del'>- strings[argc - i] = (*list)->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 < 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->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 > 0) {</div><div class='del'>- char *term = (*list)->data;</div><div class='del'>- (*list)->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->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'>- && argv[0]->type == ESEXP_RES_STRING</div><div class='del'>- && argv[1]->type == ESEXP_RES_STRING) {</div><div class='del'>- char *propname = argv[0]->value.string;</div><div class='del'>- char *str = rfc2254_escape(argv[1]->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 < 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 < 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->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'>- && argv[0]->type == ESEXP_RES_STRING</div><div class='del'>- && argv[1]->type == ESEXP_RES_STRING) {</div><div class='del'>- char *propname = argv[0]->value.string;</div><div class='del'>- char *str = rfc2254_escape(argv[1]->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->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'>- && argv[0]->type == ESEXP_RES_STRING</div><div class='del'>- && argv[1]->type == ESEXP_RES_STRING) {</div><div class='del'>- char *propname = argv[0]->value.string;</div><div class='del'>- char *str = rfc2254_escape(argv[1]->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->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'>- && argv[0]->type == ESEXP_RES_STRING</div><div class='del'>- && argv[1]->type == ESEXP_RES_STRING) {</div><div class='del'>- char *propname = argv[0]->value.string;</div><div class='del'>- char *str = rfc2254_escape(argv[1]->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->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<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, &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, &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->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->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 < 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, &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 < num_prop_infos; i ++)</div><div class='del'>- if (!g_strcasecmp (attr, prop_info[i].ldap_attr))</div><div class='del'>- info = &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->prop_type & 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->field_id, values[0]);</div><div class='del'>-</div><div class='del'>- }</div><div class='del'>- else if (info->prop_type & 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->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->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->ld_errno != LDAP_DECODING_ERROR && 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->view;</div><div class='del'>- PASBackendLDAP *bl = op->bl;</div><div class='del'>- LDAP *ldap = bl->priv->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->book_view, _("Receiving LDAP search results..."));</div><div class='del'>-</div><div class='del'>- rc = ldap_result (ldap, view->search_msgid, 0, NULL, &res);</div><div class='del'>- </div><div class='del'>- if (rc == -1 && received == 0) {</div><div class='del'>- pas_book_view_notify_status_message (view->book_view, _("Restarting search."));</div><div class='del'>- /* connection went down and we never got any. */</div><div class='del'>- bl->priv->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->search_idle = 0;</div><div class='del'>- pas_book_view_notify_complete (view->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->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->view)</div><div class='del'>- pas_book_view_notify_status_message (op->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->ldap_query == NULL)</div><div class='del'>- search_op->ldap_query = pas_backend_ldap_build_query(search_op->view->search);</div><div class='del'>-</div><div class='del'>- if (search_op->ldap_query != NULL) {</div><div class='del'>- PASBackendLDAP *bl = PAS_BACKEND_LDAP (backend);</div><div class='del'>- PASBackendLDAPBookView *view = search_op->view;</div><div class='del'>- LDAP *ldap = bl->priv->ldap;</div><div class='del'>- int ldap_err;</div><div class='del'>-</div><div class='del'>- ldap_err = ldap_search_ext (ldap, bl->priv->ldap_rootdn,</div><div class='del'>- bl->priv->ldap_scope,</div><div class='del'>- search_op->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, &view->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->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->search_msgid == -1) {</div><div class='del'>- pas_book_view_notify_status_message (view->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->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->view->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->view)</div><div class='del'>- bonobo_object_release_unref(bonobo_object_corba_objref(BONOBO_OBJECT(op->view)), NULL);</div><div class='del'>-</div><div class='del'>- g_free (search_op->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->book_view)), NULL);</div><div class='del'>- ldap_op_init ((LDAPOp*)op, PAS_BACKEND(bl), book, view->book_view, ldap_search_handler, ldap_search_dtor);</div><div class='del'>-</div><div class='del'>- op->ldap_query = NULL;</div><div class='del'>- op->view = view;</div><div class='del'>- op->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->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->listener != NULL);</div><div class='del'>-</div><div class='del'>- book_view = pas_book_view_new (req->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->book_view = book_view;</div><div class='del'>- view->search = g_strdup(req->search);</div><div class='del'>- view->card_sexp = pas_backend_card_sexp_new (view->search);</div><div class='del'>- view->blpriv = bl->priv;</div><div class='del'>-</div><div class='del'>- bl->priv->book_views = g_list_prepend(bl->priv->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->search);</div><div class='del'>- CORBA_exception_init(&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->listener, &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(&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->priv->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->user);</div><div class='del'>-</div><div class='del'>- if (ldap_search_s (bl->priv->ldap,</div><div class='del'>- bl->priv->ldap_rootdn,</div><div class='del'>- bl->priv->ldap_scope,</div><div class='del'>- query,</div><div class='del'>- NULL, 0, &res) != -1) {</div><div class='del'>- char *dn;</div><div class='del'>-</div><div class='del'>- e = ldap_first_entry (bl->priv->ldap, res);</div><div class='del'>- dn = ldap_get_dn (bl->priv->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->priv->ldap,</div><div class='del'>- dn,</div><div class='del'>- req->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->priv->writable = (ldap_error == LDAP_SUCCESS);</div><div class='del'>-</div><div class='del'>- if (!bl->priv->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->priv->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->priv->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->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->priv->connected == FALSE);</div><div class='del'>-</div><div class='del'>- ldap_error = ldap_url_parse ((char*)uri, &lud);</div><div class='del'>- if (ldap_error == LDAP_SUCCESS) {</div><div class='del'>- g_free(bl->priv->uri);</div><div class='del'>- bl->priv->uri = g_strdup (uri);</div><div class='del'>- bl->priv->ldap_host = g_strdup(lud->lud_host);</div><div class='del'>- bl->priv->ldap_port = lud->lud_port;</div><div class='del'>- /* if a port wasn't specified, default to LDAP_PORT */</div><div class='del'>- if (bl->priv->ldap_port == 0)</div><div class='del'>- bl->priv->ldap_port = LDAP_PORT;</div><div class='del'>- bl->priv->ldap_rootdn = g_strdup(lud->lud_dn);</div><div class='del'>- bl->priv->ldap_scope = lud->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->priv->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->priv->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->priv->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->priv->clients = g_list_prepend (</div><div class='del'>- bl->priv->clients, book);</div><div class='del'>-</div><div class='del'>- if (bl->priv->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->priv->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->priv->clients; l; l = l->next) {</div><div class='del'>- lbook = PAS_BOOK (l->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->priv->clients = g_list_remove_link (bl->priv->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->priv->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->dtor (op->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->priv->pending_ops, (GFunc)call_dtor, NULL);</div><div class='del'>- g_list_free (bl->priv->pending_ops);</div><div class='del'>-</div><div class='del'>- if (bl->priv->supported_fields)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (bl->priv->supported_fields));</div><div class='del'>-</div><div class='del'>- g_free (bl->priv->uri);</div><div class='del'>-</div><div class='del'>- GTK_OBJECT_CLASS (pas_backend_ldap_parent_class)->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->load_uri = pas_backend_ldap_load_uri;</div><div class='del'>- parent_class->get_uri = pas_backend_ldap_get_uri;</div><div class='del'>- parent_class->add_client = pas_backend_ldap_add_client;</div><div class='del'>- parent_class->remove_client = pas_backend_ldap_remove_client;</div><div class='del'>- parent_class->get_static_capabilities = pas_backend_ldap_get_static_capabilites;</div><div class='del'>-</div><div class='del'>- object_class->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->supported_fields = e_list_new ((EListCopyFunc)g_strdup, (EListFreeFunc)g_free, NULL);</div><div class='del'>-</div><div class='del'>- backend->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 (), &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&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 <libgnome/gnome-defs.h></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&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 <config.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <gtk/gtksignal.h></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)->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)->load_uri != NULL);</div><div class='del'>-</div><div class='del'>- return (* CLASS (backend)->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)->get_uri != NULL);</div><div class='del'>-</div><div class='del'>- return (* CLASS (backend)->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)->add_client != NULL);</div><div class='del'>-</div><div class='del'>- return CLASS (backend)->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)->remove_client != NULL);</div><div class='del'>-</div><div class='del'>- CLASS (backend)->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)->get_static_capabilities != NULL);</div><div class='del'>-</div><div class='del'>- return CLASS (backend)->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->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->add_client = NULL;</div><div class='del'>- klass->remove_client = NULL;</div><div class='del'>- klass->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 (), &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&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 <libgnome/gnome-defs.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <pas/addressbook.h></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 <pas/pas-book.h></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&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 <config.h></div><div class='del'>-#include <ctype.h></div><div class='del'>-</div><div class='del'>-#include <gtk/gtksignal.h></div><div class='del'>-#include <liboaf/liboaf.h></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->priv->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->priv->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->priv->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->priv->active_server_map, uri,</div><div class='del'>- &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->priv->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->priv->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->priv->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 (&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'>- &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 (&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 (&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'>- &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 (&ev);</div><div class='del'>- return NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_hash_table_insert (factory->priv->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->uri;</div><div class='del'>- listener = request->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->priv->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 (&ev);</div><div class='del'>- CORBA_Object_release (listener, &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 (&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->priv->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->priv->queued_requests;</div><div class='del'>- request = l->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->priv->queued_requests = g_list_remove_link (</div><div class='del'>- factory->priv->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->priv->queued_requests == NULL) {</div><div class='del'>-</div><div class='del'>- factory->priv->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 (&ev);</div><div class='del'>-</div><div class='del'>- listener_copy = CORBA_Object_duplicate (listener, &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 (&ev);</div><div class='del'>- return;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- CORBA_exception_free (&ev);</div><div class='del'>-</div><div class='del'>- request = g_new0 (PASBookFactoryQueuedRequest, 1);</div><div class='del'>- request->listener = listener_copy;</div><div class='del'>- request->uri = g_strdup (uri);</div><div class='del'>-</div><div class='del'>- factory->priv->queued_requests =</div><div class='del'>- g_list_prepend (factory->priv->queued_requests, request);</div><div class='del'>-</div><div class='del'>- if (! factory->priv->idle_id) {</div><div class='del'>- factory->priv->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->vepv = &pas_book_factory_vepv;</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- POA_GNOME_Evolution_Addressbook_BookFactory__init ((PortableServer_Servant) servant, &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 (&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 (&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->priv;</div><div class='del'>-</div><div class='del'>- g_return_val_if_fail (!priv->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->registered = TRUE;</div><div class='del'>- priv->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->priv = g_new0 (PASBookFactoryPrivate, 1);</div><div class='del'>-</div><div class='del'>- factory->priv->active_server_map = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>- factory->priv->backends = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>- factory->priv->queued_requests = NULL;</div><div class='del'>- factory->priv->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->priv->queued_requests; l != NULL; l = l->next) {</div><div class='del'>- PASBookFactoryQueuedRequest *request = l->data;</div><div class='del'>- CORBA_Environment ev;</div><div class='del'>-</div><div class='del'>- g_free (request->uri);</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- CORBA_Object_release (request->listener, &ev);</div><div class='del'>- CORBA_exception_free (&ev);</div><div class='del'>-</div><div class='del'>- g_free (request);</div><div class='del'>- }</div><div class='del'>- g_list_free (factory->priv->queued_requests);</div><div class='del'>- factory->priv->queued_requests = NULL;</div><div class='del'>-</div><div class='del'>- g_hash_table_foreach (factory->priv->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->priv->active_server_map);</div><div class='del'>- factory->priv->active_server_map = NULL;</div><div class='del'>-</div><div class='del'>- g_hash_table_foreach (factory->priv->backends,</div><div class='del'>- remove_backends_entry,</div><div class='del'>- NULL);</div><div class='del'>- g_hash_table_destroy (factory->priv->backends);</div><div class='del'>- factory->priv->backends = NULL;</div><div class='del'>-</div><div class='del'>- if (factory->priv->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->priv->iid, obj);</div><div class='del'>- factory->priv->registered = FALSE;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_free (factory->priv->iid);</div><div class='del'>- </div><div class='del'>- g_free (factory->priv);</div><div class='del'>-</div><div class='del'>- GTK_OBJECT_CLASS (pas_book_factory_parent_class)->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->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->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->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 (), &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&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 <bonobo/bonobo-object.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-</div><div class='del'>-#include <pas/pas-backend.h></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&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 <config.h></div><div class='del'>-#include <glib.h></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->data);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookViewListener_notifyCardChanged (</div><div class='del'>- book_view->priv->listener, &card_sequence, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookViewListener_notifyCardRemoved (</div><div class='del'>- book_view->priv->listener, (GNOME_Evolution_Addressbook_CardId) id, &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 (&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->data);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookViewListener_notifyCardAdded (</div><div class='del'>- book_view->priv->listener, &card_sequence, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookViewListener_notifySequenceComplete (</div><div class='del'>- book_view->priv->listener, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookViewListener_notifyStatusMessage (</div><div class='del'>- book_view->priv->listener, message, &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 (&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->vepv = &pas_book_view_vepv;</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- POA_GNOME_Evolution_Addressbook_BookView__init ((PortableServer_Servant) servant, &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 (&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, &ev);</div><div class='del'>- if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>- g_warning("Unable to duplicate & ref listener object in pas-book-view.c\n");</div><div class='del'>- CORBA_exception_free (&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 (&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->priv->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 (&ev);</div><div class='del'>- bonobo_object_release_unref (book_view->priv->listener, &ev);</div><div class='del'>- if (ev._major != CORBA_NO_EXCEPTION) {</div><div class='del'>- CORBA_exception_free (&ev);</div><div class='del'>-</div><div class='del'>- return;</div><div class='del'>- }</div><div class='del'>- CORBA_exception_free (&ev);</div><div class='del'>-</div><div class='del'>- g_free (book_view->priv);</div><div class='del'>-</div><div class='del'>- GTK_OBJECT_CLASS (pas_book_view_parent_class)->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->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->priv = g_new0 (PASBookViewPrivate, 1);</div><div class='del'>- book_view->priv->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 (), &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&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 <bonobo/bonobo-object.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <pas/addressbook.h></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&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 <config.h></div><div class='del'>-#include <gtk/gtksignal.h></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->priv->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->priv->request_queue == NULL) {</div><div class='del'>- book->priv->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->priv->request_queue =</div><div class='del'>- g_list_append (book->priv->request_queue, req);</div><div class='del'>-</div><div class='del'>- if (book->priv->idle_id == 0) {</div><div class='del'>- gtk_object_ref (GTK_OBJECT (book));</div><div class='del'>- book->priv->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->op = CreateCard;</div><div class='del'>- req->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->op = RemoveCard;</div><div class='del'>- req->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->op = ModifyCard;</div><div class='del'>- req->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->op = GetCursor;</div><div class='del'>- req->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->op = GetVCard;</div><div class='del'>- req->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->op = AuthenticateUser;</div><div class='del'>- req->user = g_strdup(user);</div><div class='del'>- req->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->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->op = GetBookView;</div><div class='del'>- req->search = g_strdup(search);</div><div class='del'>- </div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- req->listener = bonobo_object_dup_ref(listener, &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 (&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->op = GetChanges;</div><div class='del'>- req->change_id= g_strdup(change_id);</div><div class='del'>- </div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- req->listener = bonobo_object_dup_ref(listener, &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 (&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->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->priv->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->priv->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->priv->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->priv->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->priv->request_queue == NULL)</div><div class='del'>- return NULL;</div><div class='del'>-</div><div class='del'>- req = book->priv->request_queue->data;</div><div class='del'>-</div><div class='del'>- popped = book->priv->request_queue;</div><div class='del'>- book->priv->request_queue =</div><div class='del'>- g_list_remove_link (book->priv->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 (&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->priv->listener, status,</div><div class='del'>- bonobo_object_corba_objref (BONOBO_OBJECT (book)),</div><div class='del'>- &ev);</div><div class='del'>- } else {</div><div class='del'>- GNOME_Evolution_Addressbook_BookListener_notifyBookOpened (</div><div class='del'>- book->priv->listener, status,</div><div class='del'>- CORBA_OBJECT_NIL, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookListener_notifyCardCreated (</div><div class='del'>- book->priv->listener, status, (char *)id, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookListener_notifyCardRemoved (</div><div class='del'>- book->priv->listener, status, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookListener_notifyCardModified (</div><div class='del'>- book->priv->listener, status, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookListener_notifyAuthenticationResult (</div><div class='del'>- book->priv->listener, status, &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 (&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 (&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->priv->listener, status,</div><div class='del'>- &stringlist,</div><div class='del'>- &ev);</div><div class='del'>-</div><div class='del'>- CORBA_exception_free (&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 (&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->priv->listener, status, object, &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 (&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 (&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->priv->listener, status, object, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookListener_notifyCardRequested (</div><div class='del'>- book->priv->listener, status, vcard, &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 (&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 (&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->priv->listener, status, object, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookListener_notifyConnectionStatus (</div><div class='del'>- book->priv->listener, (CORBA_boolean) connected, &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 (&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 (&ev);</div><div class='del'>-</div><div class='del'>- GNOME_Evolution_Addressbook_BookListener_notifyWritable (</div><div class='del'>- book->priv->listener, (CORBA_boolean) writable, &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 (&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->vepv = &pas_book_vepv;</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- POA_GNOME_Evolution_Addressbook_Book__init ((PortableServer_Servant) servant, &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 (&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 (&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 (&ev);</div><div class='del'>- book->priv->listener = CORBA_Object_duplicate (listener, &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 (&ev);</div><div class='del'>-</div><div class='del'>- book->priv->listener = listener;</div><div class='del'>- book->priv->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->priv->request_queue; l != NULL; l = l->next) {</div><div class='del'>- PASRequest *req = l->data;</div><div class='del'>-</div><div class='del'>- g_free (req->id);</div><div class='del'>- g_free (req->vcard);</div><div class='del'>- g_free (req);</div><div class='del'>- }</div><div class='del'>- g_list_free (book->priv->request_queue);</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- CORBA_Object_release (book->priv->listener, &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 (&ev);</div><div class='del'>-</div><div class='del'>- g_free (book->priv);</div><div class='del'>-</div><div class='del'>- GTK_OBJECT_CLASS (pas_book_parent_class)->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->getVCard = impl_GNOME_Evolution_Addressbook_Book_getVCard;</div><div class='del'>- epv->authenticateUser = impl_GNOME_Evolution_Addressbook_Book_authenticateUser;</div><div class='del'>- epv->addCard = impl_GNOME_Evolution_Addressbook_Book_addCard;</div><div class='del'>- epv->removeCard = impl_GNOME_Evolution_Addressbook_Book_removeCard;</div><div class='del'>- epv->modifyCard = impl_GNOME_Evolution_Addressbook_Book_modifyCard;</div><div class='del'>- epv->checkConnection = impl_GNOME_Evolution_Addressbook_Book_checkConnection;</div><div class='del'>- epv->getStaticCapabilities = impl_GNOME_Evolution_Addressbook_Book_getStaticCapabilities;</div><div class='del'>- epv->getSupportedFields = impl_GNOME_Evolution_Addressbook_Book_getSupportedFields;</div><div class='del'>- epv->getCursor = impl_GNOME_Evolution_Addressbook_Book_getCursor;</div><div class='del'>- epv->getBookView = impl_GNOME_Evolution_Addressbook_Book_getBookView;</div><div class='del'>- epv->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->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->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->priv = g_new0 (PASBookPrivate, 1);</div><div class='del'>- book->priv->idle_id = 0;</div><div class='del'>- book->priv->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 (), &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&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 <bonobo/bonobo-object.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <pas/addressbook.h></div><div class='del'>-#include <pas/pas-book-view.h></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 <pas/pas-backend.h></div><div class='del'>-#include <pas/pas-card-cursor.h></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&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 <clahey@ximian.com.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include <config.h></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->priv )</div><div class='del'>- g_free ( cursor->priv );</div><div class='del'>-</div><div class='del'>- GTK_OBJECT_CLASS (parent_class)->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->priv->get_length )</div><div class='del'>- return cursor->priv->get_length( cursor, cursor->priv->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->priv->get_nth ) {</div><div class='del'>- char *vcard = cursor->priv->get_nth( cursor, n, cursor->priv->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->count = impl_pas_card_cursor_get_length;</div><div class='del'>- epv->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->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->priv = g_new(PASCardCursorPrivate, 1);</div><div class='del'>- cursor->priv->get_length = NULL;</div><div class='del'>- cursor->priv->get_nth = NULL;</div><div class='del'>- cursor->priv->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 (), &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->priv->get_length = get_length;</div><div class='del'>- cursor->priv->get_nth = get_nth;</div><div class='del'>- cursor->priv->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->vepv = &cursor_vepv;</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- POA_GNOME_Evolution_Addressbook_CardCursor__init ((PortableServer_Servant) servant, &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 (&ev);</div><div class='del'>- return CORBA_OBJECT_NIL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- CORBA_exception_free (&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&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 <libgnome/gnome-defs.h></div><div class='del'>-#include <bonobo/bonobo-object.h></div><div class='del'>-#include <pas/addressbook.h></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&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&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'>- < $(srcdir)/e-address.conduit.in > e-address.conduit.tmp \</div><div class='del'>- && 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&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 <deity@eskil.dk> </div><div class='del'>- * JP Rosevear <jpr@ximian.com></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 <gnome.h></div><div class='del'>-#include <libgpilotdCM/gnome-pilot-conduit-management.h></div><div class='del'>-#include <gpilotd/gnome-pilot-conduit.h></div><div class='del'>-#include <libgpilotdCM/gnome-pilot-conduit-config.h></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)->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)->sync_type = GnomePilotConduitSyncTypeCustom; </div><div class='del'>- gnome_config_pop_prefix ();</div><div class='del'>- </div><div class='del'>- (*c)->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->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->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->sync_type = c->sync_type;</div><div class='del'>- retval->open_secret = c->open_secret;</div><div class='del'>- retval->pilot_id = c->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&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 <deity@eskil.dk> </div><div class='del'>- * JP Rosevear <jpr@ximian.com></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 <config.h></div><div class='del'>-</div><div class='del'>-#include <liboaf/liboaf.h></div><div class='del'>-#include <bonobo.h></div><div class='del'>-#include <gnome-xml/parser.h></div><div class='del'>-#include <pi-source.h></div><div class='del'>-#include <pi-socket.h></div><div class='del'>-#include <pi-file.h></div><div class='del'>-#include <pi-dlp.h></div><div class='del'>-#include <ebook/e-book.h></div><div class='del'>-#include <ebook/e-card-types.h></div><div class='del'>-#include <ebook/e-card-cursor.h></div><div class='del'>-#include <ebook/e-card.h></div><div class='del'>-#include <ebook/e-card-simple.h></div><div class='del'>-#include <e-pilot-util.h></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->addr) {</div><div class='del'>- g_snprintf (buff, 4096, "['%s' '%s' '%s']",</div><div class='del'>- local->addr->entry[entryLastname] ?</div><div class='del'>- local->addr->entry[entryLastname] : "",</div><div class='del'>- local->addr->entry[entryFirstname] ?</div><div class='del'>- local->addr->entry[entryFirstname] : "",</div><div class='del'>- local->addr->entry[entryCompany] ?</div><div class='del'>- local->addr->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 (&addr, 0, sizeof (struct Address));</div><div class='del'>- unpack_Address (&addr, remote->record, remote->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 (&(*ctxt)->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)->cfg != NULL)</div><div class='del'>- addrconduit_destroy_configuration (&(*ctxt)->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->status = status;</div><div class='del'>- cons->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->address_load_success = TRUE;</div><div class='del'>-</div><div class='del'>- length = e_card_cursor_get_length (cursor);</div><div class='del'>- ctxt->cards = NULL;</div><div class='del'>- for (i = 0; i < 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->cards = g_list_append (ctxt->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->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->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->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->cfg->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->next) {</div><div class='del'>- coc = l->data;</div><div class='del'>- </div><div class='del'>- if (g_hash_table_lookup (ctxt->changed_hash, e_card_get_id (coc->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 < 8; i++) {</div><div class='del'>- if (!strcmp (ctxt->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->local.archived = FALSE;</div><div class='del'>- local->local.secret = FALSE;</div><div class='del'>-</div><div class='del'>- coc = g_hash_table_lookup (ctxt->changed_hash, uid);</div><div class='del'>- </div><div class='del'>- if (coc == NULL) {</div><div class='del'>- local->local.attr = GnomePilotRecordNothing;</div><div class='del'>- return;</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- switch (coc->type) {</div><div class='del'>- case CARD_ADDED:</div><div class='del'>- local->local.attr = GnomePilotRecordNew;</div><div class='del'>- break; </div><div class='del'>- case CARD_MODIFIED:</div><div class='del'>- local->local.attr = GnomePilotRecordModified;</div><div class='del'>- break;</div><div class='del'>- case CARD_DELETED:</div><div class='del'>- local->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->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->local.ID;</div><div class='del'>- p.category = local->local.category;</div><div class='del'>- p.attr = local->local.attr;</div><div class='del'>- p.archived = local->local.archived;</div><div class='del'>- p.secret = local->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->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->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->local.ID = e_pilot_map_lookup_pid (ctxt->map, ecard->id);</div><div class='del'>-</div><div class='del'>- compute_status (ctxt, local, ecard->id);</div><div class='del'>-</div><div class='del'>- local->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->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->dbi->pilot_socket, </div><div class='del'>- ctxt->dbi->db_handle,</div><div class='del'>- local->local.ID, &record, </div><div class='del'>- NULL, NULL, NULL, &cat) > 0) {</div><div class='del'>- local->local.category = cat; </div><div class='del'>- unpack_Address (local->addr, record, 0xffff);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (ecard->name) {</div><div class='del'>- if (ecard->name->given)</div><div class='del'>- local->addr->entry[entryFirstname] = e_pilot_utf8_to_pchar (ecard->name->given);</div><div class='del'>- if (ecard->name->family)</div><div class='del'>- local->addr->entry[entryLastname] = e_pilot_utf8_to_pchar (ecard->name->family);</div><div class='del'>- if (ecard->org)</div><div class='del'>- local->addr->entry[entryCompany] = e_pilot_utf8_to_pchar (ecard->org);</div><div class='del'>- if (ecard->title)</div><div class='del'>- local->addr->entry[entryTitle] = e_pilot_utf8_to_pchar (ecard->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->addr->entry[entryAddress] = e_pilot_utf8_to_pchar (delivery->street);</div><div class='del'>- local->addr->entry[entryCity] = e_pilot_utf8_to_pchar (delivery->city);</div><div class='del'>- local->addr->entry[entryState] = e_pilot_utf8_to_pchar (delivery->region);</div><div class='del'>- local->addr->entry[entryZip] = e_pilot_utf8_to_pchar (delivery->code);</div><div class='del'>- local->addr->entry[entryCountry] = e_pilot_utf8_to_pchar (delivery->country);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- /* Phone numbers */</div><div class='del'>- get_next_init (&next_mail, &next_home, &next_work, &next_fax,</div><div class='del'>- &next_other, &next_main, &next_pager, &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 <= entryPhone5; i++) {</div><div class='del'>- char *phonelabel = ctxt->ai.phoneLabels[local->addr->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 && *phone_str)</div><div class='del'>- next_mail = get_next_mail (&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 && *phone_str)</div><div class='del'>- next_home = get_next_home (&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 && *phone_str)</div><div class='del'>- next_work = get_next_work (&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 && *phone_str)</div><div class='del'>- next_fax = get_next_fax (&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 && *phone_str)</div><div class='del'>- next_other = get_next_other (&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 && *phone_str)</div><div class='del'>- next_main = get_next_main (&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 && *phone_str)</div><div class='del'>- next_pager = get_next_pager (&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 && *phone_str)</div><div class='del'>- next_mobile = get_next_mobile (&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 && phone <= 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 && *phone_str) {</div><div class='del'>- local->addr->entry[phone] = e_pilot_utf8_to_pchar (phone_str);</div><div class='del'>- local->addr->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 <= entryPhone5; phone++)</div><div class='del'>- local->addr->phoneLabel[phone - entryPhone1] = phone - entryPhone1;</div><div class='del'>- } else {</div><div class='del'>- INFO ("Not Syncable");</div><div class='del'>- get_next_init (&next_mail, &next_home, &next_work, &next_fax,</div><div class='del'>- &next_other, &next_main, &next_pager, &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 <= entryPhone5; i++) {</div><div class='del'>- char *phonelabel = ctxt->ai.phoneLabels[local->addr->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") && !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 (&next_mail);</div><div class='del'>- } else if (!strcmp (phonelabel, "Home") && !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 (&next_home);</div><div class='del'>- } else if (!strcmp (phonelabel, "Work") && !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 (&next_work);</div><div class='del'>- } else if (!strcmp (phonelabel, "Fax") && !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 (&next_fax);</div><div class='del'>- } else if (!strcmp (phonelabel, "Other") && !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 (&next_other);</div><div class='del'>- } else if (!strcmp (phonelabel, "Main") && !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 (&next_main);</div><div class='del'>- } else if (!strcmp (phonelabel, "Pager") && !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 (&next_pager);</div><div class='del'>- } else if (!strcmp (phonelabel, "Mobile") && !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 (&next_mobile);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (phone_str && *phone_str)</div><div class='del'>- local->addr->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->addr->entry[entryNote] = e_pilot_utf8_to_pchar (ecard->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->cards; l != NULL; l = l->next) {</div><div class='del'>- ecard = l->data;</div><div class='del'>- </div><div class='del'>- if (ecard->id && !strcmp (ecard->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 (&address, 0, sizeof (struct Address));</div><div class='del'>- unpack_Address (&address, remote->record, remote->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] && *address.entry[entryFirstname])</div><div class='del'>- stringparts[i++] = address.entry[entryFirstname];</div><div class='del'>- if (address.entry[entryLastname] && *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->flags = E_CARD_ADDR_WORK;</div><div class='del'>- delivery->street = get_entry_text (address, entryAddress);</div><div class='del'>- delivery->city = get_entry_text (address, entryCity);</div><div class='del'>- delivery->region = get_entry_text (address, entryState);</div><div class='del'>- delivery->country = get_entry_text (address, entryCountry);</div><div class='del'>- delivery->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->flags = E_CARD_ADDR_WORK;</div><div class='del'>- label->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 (&next_mail, &next_home, &next_work, &next_fax,</div><div class='del'>- &next_other, &next_main, &next_pager, &next_mobile);</div><div class='del'>-</div><div class='del'>- for (i = entryPhone1; i <= entryPhone5; i++) {</div><div class='del'>- char *phonelabel = ctxt->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") && !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 (&next_mail);</div><div class='del'>- } else if (!strcmp (phonelabel, "Home") && !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 (&next_home);</div><div class='del'>- } else if (!strcmp (phonelabel, "Work") && !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 (&next_work);</div><div class='del'>- } else if (!strcmp (phonelabel, "Fax") && !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 (&next_fax);</div><div class='del'>- } else if (!strcmp (phonelabel, "Other") && !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 (&next_other);</div><div class='del'>- } else if (!strcmp (phonelabel, "Main") && !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 (&next_main);</div><div class='del'>- } else if (!strcmp (phonelabel, "Pager") && !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 (&next_pager);</div><div class='del'>- } else if (!strcmp (phonelabel, "Mobile") && !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 (&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(&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->cards);</div><div class='del'>- map_count = g_hash_table_size (ctxt->map->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->next) {</div><div class='del'>- ECard *card = E_CARD (l->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->card = card;</div><div class='del'>- coc->type = CARD_ADDED;</div><div class='del'>-</div><div class='del'>- gtk_object_ref (GTK_OBJECT (coc->card));</div><div class='del'>- ctxt->changed = g_list_prepend (ctxt->changed, coc);</div><div class='del'>- if (!e_pilot_map_uid_is_archived (ctxt->map, e_card_get_id (coc->card)))</div><div class='del'>- g_hash_table_insert (ctxt->changed_hash, (gpointer)e_card_get_id (coc->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->next) {</div><div class='del'>- ECard *card = E_CARD (l->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->card = E_CARD (l->data);</div><div class='del'>- coc->type = CARD_MODIFIED;</div><div class='del'>-</div><div class='del'>- gtk_object_ref (GTK_OBJECT (coc->card));</div><div class='del'>- ctxt->changed = g_list_prepend (ctxt->changed, coc);</div><div class='del'>- if (!e_pilot_map_uid_is_archived (ctxt->map, e_card_get_id (coc->card)))</div><div class='del'>- g_hash_table_insert (ctxt->changed_hash, (gpointer)e_card_get_id (coc->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->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->card = e_card_new ("");</div><div class='del'>- e_card_set_id (coc->card, id);</div><div class='del'>- coc->type = CARD_DELETED;</div><div class='del'>-</div><div class='del'>- ctxt->changed = g_list_prepend (ctxt->changed, coc);</div><div class='del'>- </div><div class='del'>- if (!e_pilot_map_uid_is_archived (ctxt->map, id))</div><div class='del'>- g_hash_table_insert (ctxt->changed_hash, (gpointer)e_card_get_id (coc->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->dbi = dbi; </div><div class='del'>- ctxt->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 <--> pilot id mappings */</div><div class='del'>- filename = map_name (ctxt);</div><div class='del'>- e_pilot_map_read (filename, &ctxt->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->cfg->pilot_id);</div><div class='del'>- ctxt->changed_hash = g_hash_table_new (g_str_hash, g_str_equal);</div><div class='del'>- e_book_get_changes (ctxt->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->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->pilot_socket, dbi->db_handle, 0,</div><div class='del'>- (unsigned char *)buf, 0xffff);</div><div class='del'>- </div><div class='del'>- if (len < 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 (&(ctxt->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->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->cfg->pilot_id);</div><div class='del'>- e_book_get_changes (ctxt->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->map, ID, local->ecard->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->changed_hash, e_card_get_id (local->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->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->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->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->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->data;</div><div class='del'>- </div><div class='del'>- LOG ("iterating over %d records", g_hash_table_size (ctxt->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->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 && (iterator = next_changed_item (ctxt, iterator))) {</div><div class='del'>- CardObjectChange *coc = iterator->data;</div><div class='del'>-</div><div class='del'>- *local = g_new0 (EAddrLocalRecord, 1);</div><div class='del'>- local_record_from_ecard (*local, coc->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->length != local_pilot.length</div><div class='del'>- || memcmp (local_pilot.record, remote->record, remote->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->ebook, ecard, add_card_cb, &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->map, remote->ID, ecard->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->ecard));</div><div class='del'>- coc = g_hash_table_lookup (ctxt->changed_hash, old_id);</div><div class='del'>- </div><div class='del'>- new_ecard = ecard_from_remote_record (ctxt, remote, local->ecard);</div><div class='del'>- gtk_object_unref (GTK_OBJECT (local->ecard));</div><div class='del'>- local->ecard = new_ecard;</div><div class='del'>-</div><div class='del'>- if (coc && coc->type == CARD_DELETED)</div><div class='del'>- e_book_add_card (ctxt->ebook, local->ecard, add_card_cb, &cons);</div><div class='del'>- else</div><div class='del'>- e_book_commit_card (ctxt->ebook, local->ecard, status_cb, &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 && coc->type == CARD_DELETED) {</div><div class='del'>- gboolean arch = e_pilot_map_uid_is_archived (ctxt->map, e_card_get_id (local->ecard));</div><div class='del'>- </div><div class='del'>- e_card_set_id (local->ecard, cons.id);</div><div class='del'>- e_pilot_map_insert (ctxt->map, remote->ID, cons.id, arch);</div><div class='del'>-</div><div class='del'>- coc = g_hash_table_lookup (ctxt->changed_hash, old_id);</div><div class='del'>- if (coc) {</div><div class='del'>- g_hash_table_remove (ctxt->changed_hash, e_card_get_id (coc->card));</div><div class='del'>- coc->card = local->ecard;</div><div class='del'>- g_hash_table_insert (ctxt->changed_hash, (gpointer)e_card_get_id (coc->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->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->map, local->ecard->id);</div><div class='del'>- e_book_remove_card_by_id (ctxt->ebook, local->ecard->id, status_cb, &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 && 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->map, local->local.ID, local->ecard->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->map, remote->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->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 (&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 (&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&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 <deity@eskil.dk> </div><div class='del'>- * JP Rosevear <jpr@ximian.com></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 <sys/types.h></div><div class='del'>-#include <fcntl.h></div><div class='del'>-#include <unistd.h></div><div class='del'>-#include <gnome.h></div><div class='del'>-#include <pi-address.h></div><div class='del'>-#include <gpilotd/gnome-pilot-conduit.h></div><div class='del'>-#include <gpilotd/gnome-pilot-conduit-sync-abs.h></div><div class='del'>-#include <e-pilot-map.h></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&id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/conduit/e-address.conduit.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9 +0,0 @@</div><div class='del'>-<gnome-pilot-conduit version="1.0"></div><div class='del'>- <conduit id="e_address_conduit" type="shlib" location="@prefix@/lib/gnome-pilot/conduits/libeaddress_conduit.so"/></div><div class='del'>- <name value="EAddress"/></div><div class='del'>- <conduit-attribute name="description" value="Synchronizes Addressbook with Evolution"/></div><div class='del'>- <conduit-attribute name="default-synctype" value="synchronize"/></div><div class='del'>- <conduit-attribute name="valid-synctypes" value="synchronize copy_from_pilot copy_to_pilot merge_from_pilot merge_to_pilot"/></div><div class='del'>- <conduit-attribute name="settings" value="FALSE"/></div><div class='del'>- <conduit-attribute name="icon" value="@datadir@/images/evolution/conduits/48_evo-address-conduit.png"/></div><div class='del'>-</gnome-pilot-conduit></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&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&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&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&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'>-<oaf_info></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_MiniCard_ControlFactory"</div><div class='del'>- type="exe"</div><div class='del'>- location="evolution-addressbook"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/ObjectFactory:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Factory for the Addressbook Minicard control"/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<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"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:Bonobo/Control:1.0"/></div><div class='del'>- <item value="IDL:Bonobo/PersistStream:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="bonobo:supported_mime_types" type="stringv"></div><div class='del'>- <item value="text/vcard"/></div><div class='del'>- <item value="text/x-vcard"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="name" type="string"</div><div class='del'>- _value="Evolution Addressbook minicard viewer"/></div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Control that displays an Evolution addressbook minicard."/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_ControlFactory"</div><div class='del'>- type="exe"</div><div class='del'>- location="evolution-addressbook"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/ObjectFactory:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Factory for the sample Addressbook control"/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_Control"</div><div class='del'>- type="factory"</div><div class='del'>- location="OAFIID:GNOME_Evolution_Addressbook_ControlFactory"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:BonoboControl/addressbook-control:1.0"/></div><div class='del'>- <item value="IDL:GNOME/Control:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="A sample Bonobo control which displays an addressbook."/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_ShellComponent"</div><div class='del'>- type="exe"</div><div class='del'>- location="evolution-addressbook"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/Evolution/ShellComponent:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Evolution component for handling contacts."/></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="evolution:shell-component-icon" type="string"</div><div class='del'>- value="evolution-contacts.png"/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_AddressWidgetFactory"</div><div class='del'>- type="exe"</div><div class='del'>- location="evolution-addressbook"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/ObjectFactory:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Factory for the Addressbook's address displayer"/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_AddressWidget"</div><div class='del'>- type="factory"</div><div class='del'>- location="OAFIID:GNOME_Evolution_Addressbook_AddressWidgetFactory"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:BonoboControl/address-widget:1.0"/></div><div class='del'>- <item value="IDL:GNOME/Control:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="A Bonobo control for displaying an address."/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_AddressPopupFactory"</div><div class='del'>- type="exe"</div><div class='del'>- location="evolution-addressbook"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/ObjectFactory:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Factory for the Addressbook's address popup"/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_AddressPopup"</div><div class='del'>- type="factory"</div><div class='del'>- location="OAFIID:GNOME_Evolution_Addressbook_AddressPopupFactory"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:BonoboControl/address-widget:1.0"/></div><div class='del'>- <item value="IDL:GNOME/Control:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="A Bonobo control for an address popup."/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-</oaf_info></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&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&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 <config.h></div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include <sys/types.h></div><div class='del'>-#include <sys/stat.h></div><div class='del'>-#include <errno.h></div><div class='del'>-</div><div class='del'>-#include <bonobo/bonobo-generic-factory.h></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(&ev);</div><div class='del'>- GNOME_Evolution_ShellComponentListener_notifyResult(listener, result, &ev);</div><div class='del'>- CORBA_exception_free(&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(&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'>- &ev);</div><div class='del'>- CORBA_exception_free(&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'>- &ev);</div><div class='del'>- CORBA_exception_free(&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'>- &ev);</div><div class='del'>- CORBA_exception_free(&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, &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'>- &ev);</div><div class='del'>- CORBA_exception_free(&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'>- &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'>- &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'>- &ev);</div><div class='del'>- }</div><div class='del'>- CORBA_exception_free(&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'>- &ev);</div><div class='del'>- CORBA_exception_free(&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'>- &ev);</div><div class='del'>- CORBA_exception_free(&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'>- &ev);</div><div class='del'>- CORBA_exception_free(&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 (&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, &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 (&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->next) {</div><div class='del'>- ECard *card = l->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->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&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&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 <config.h></div><div class='del'>-</div><div class='del'>-#include <glib.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnomeui/gnome-dialog.h></div><div class='del'>-#include <libgnomeui/gnome-stock.h></div><div class='del'>-#include <glade/glade.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-#include <gtkhtml/gtkhtml.h></div><div class='del'>-#include <e-util/e-html-utils.h></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->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->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->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->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->email_label,</div><div class='del'>- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->auth_checkbutton)));</div><div class='del'>- gtk_entry_set_editable (GTK_ENTRY(dialog->email),</div><div class='del'>- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dialog->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->ldap_scope = g_list_index (gtk_container_children (GTK_CONTAINER (item->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->notebook), closure->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->notebook = notebook;</div><div class='del'>- focus_closure->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->name), source ? source->name : "");</div><div class='del'>- e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog->host), source ? source->host : "");</div><div class='del'>- e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog->email), source ? source->email_addr : "");</div><div class='del'>- e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog->port), source ? source->port : "389");</div><div class='del'>- e_utf8_gtk_entry_set_text (GTK_ENTRY (dialog->rootdn), source ? source->rootdn : "");</div><div class='del'>-</div><div class='del'>- gtk_option_menu_set_history (GTK_OPTION_MENU(dialog->scope_optionmenu), source ? source->scope : ADDRESSBOOK_LDAP_SCOPE_ONELEVEL);</div><div class='del'>- dialog->ldap_scope = source ? source->scope : ADDRESSBOOK_LDAP_SCOPE_ONELEVEL;</div><div class='del'>-</div><div class='del'>- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(dialog->auth_checkbutton), source && source->auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE);</div><div class='del'>- gtk_widget_set_sensitive (dialog->email_label, source && source->auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE);</div><div class='del'>- gtk_entry_set_editable (GTK_ENTRY(dialog->email), source && source->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->name = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog->name));</div><div class='del'>- source->host = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog->host));</div><div class='del'>- source->email_addr = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog->email));</div><div class='del'>- source->port = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog->port));</div><div class='del'>- source->rootdn = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog->rootdn));</div><div class='del'>- source->scope = dialog->ldap_scope;</div><div class='del'>- source->auth = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->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->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->gui = gui;</div><div class='del'>-</div><div class='del'>- dialog->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->dialog), _("Edit Addressbook"));</div><div class='del'>-</div><div class='del'>- gtk_window_set_modal (GTK_WINDOW (dialog->dialog), TRUE);</div><div class='del'>- gtk_window_set_policy (GTK_WINDOW (dialog->dialog), </div><div class='del'>- FALSE, TRUE, FALSE);</div><div class='del'>-</div><div class='del'>- gnome_dialog_set_parent (GNOME_DIALOG (dialog->dialog),</div><div class='del'>- GTK_WINDOW (parent));</div><div class='del'>-</div><div class='del'>- dialog->notebook = glade_xml_get_widget (gui, "add-addressbook-notebook");</div><div class='del'>- dialog->basic_notebook = glade_xml_get_widget (gui, "basic-notebook");</div><div class='del'>- dialog->advanced_notebook = glade_xml_get_widget (gui, "advanced-notebook");</div><div class='del'>-</div><div class='del'>- /* BASIC STUFF */</div><div class='del'>- dialog->name = glade_xml_get_widget (gui, "account-name-entry");</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (dialog->name), "changed",</div><div class='del'>- GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>- add_focus_handler (dialog->name, dialog->basic_notebook, 0);</div><div class='del'>-</div><div class='del'>- dialog->host = glade_xml_get_widget (gui, "server-name-entry");</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (dialog->host), "changed",</div><div class='del'>- GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>- add_focus_handler (dialog->host, dialog->basic_notebook, 1);</div><div class='del'>-</div><div class='del'>- dialog->email = glade_xml_get_widget (gui, "email-address-entry");</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (dialog->email), "changed",</div><div class='del'>- GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>- add_focus_handler (dialog->email, dialog->basic_notebook, 2);</div><div class='del'>-</div><div class='del'>- dialog->email_label = glade_xml_get_widget (gui, "email-address-label");</div><div class='del'>-</div><div class='del'>- dialog->auth_checkbutton = glade_xml_get_widget (gui, "auth-checkbutton");</div><div class='del'>- add_focus_handler (dialog->auth_checkbutton, dialog->basic_notebook, 2);</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (dialog->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->port = glade_xml_get_widget (gui, "port-entry");</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (dialog->port), "changed",</div><div class='del'>- GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>- add_focus_handler (dialog->port, dialog->advanced_notebook, 0);</div><div class='del'>-</div><div class='del'>- dialog->rootdn = glade_xml_get_widget (gui, "rootdn-entry");</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (dialog->rootdn), "changed",</div><div class='del'>- GTK_SIGNAL_FUNC (addressbook_source_edit_changed), dialog);</div><div class='del'>- add_focus_handler (dialog->rootdn, dialog->advanced_notebook, 1);</div><div class='del'>-</div><div class='del'>- dialog->scope_optionmenu = glade_xml_get_widget (gui, "scope-optionmenu");</div><div class='del'>- add_focus_handler (dialog->scope_optionmenu, dialog->advanced_notebook, 2);</div><div class='del'>- menu = gtk_option_menu_get_menu (GTK_OPTION_MENU(dialog->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->notebook), 0);</div><div class='del'>-</div><div class='del'>- gnome_dialog_set_sensitive (GNOME_DIALOG (dialog->dialog), 0, FALSE);</div><div class='del'>- </div><div class='del'>- gnome_dialog_button_connect( GNOME_DIALOG (dialog->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->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->dialog), TRUE);</div><div class='del'>-</div><div class='del'>- dialog->id = gnome_dialog_run_and_close (GNOME_DIALOG (dialog->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->name), new_source);</div><div class='del'>-</div><div class='del'>- gnome_dialog_close_hides (GNOME_DIALOG(dialog->dialog), TRUE);</div><div class='del'>-</div><div class='del'>- dialog->id = gnome_dialog_run_and_close (GNOME_DIALOG (dialog->dialog));</div><div class='del'>- </div><div class='del'>- gtk_object_unref (GTK_OBJECT (dialog->gui));</div><div class='del'>-</div><div class='del'>- if (dialog->id == 0) {</div><div class='del'>- /* Ok was clicked */</div><div class='del'>- addressbook_storage_add_source (addressbook_source_copy(dialog->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->source_row != -1;</div><div class='del'>-</div><div class='del'>- gtk_widget_set_sensitive (dialog->editSource, sensitive);</div><div class='del'>- gtk_widget_set_sensitive (dialog->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->gui, NULL, dialog->dialog);</div><div class='del'>- if (sdialog->id == 0) {</div><div class='del'>- /* Ok was clicked */</div><div class='del'>- AddressbookSource *source = addressbook_source_copy(sdialog->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->name;</div><div class='del'>- text[1] = source->host;</div><div class='del'>-</div><div class='del'>- row = e_utf8_gtk_clist_append (GTK_CLIST(dialog->clistSources), text);</div><div class='del'>- gtk_clist_set_row_data_full (GTK_CLIST(dialog->clistSources), row, source, (GtkDestroyNotify) addressbook_source_free);</div><div class='del'>- gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 0, TRUE);</div><div class='del'>- gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->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->clistSources), dialog->source_row);</div><div class='del'>-</div><div class='del'>- sdialog = addressbook_config_source_with_gui (dialog->gui, source, dialog->dialog);</div><div class='del'>- if (sdialog->id == 0) {</div><div class='del'>- /* Ok was clicked */</div><div class='del'>- source = addressbook_source_copy(sdialog->source);</div><div class='del'>-</div><div class='del'>- e_utf8_gtk_clist_set_text (GTK_CLIST (dialog->clistSources), dialog->source_row, 0, source->name);</div><div class='del'>- e_utf8_gtk_clist_set_text (GTK_CLIST (dialog->clistSources), dialog->source_row, 1, source->host);</div><div class='del'>- gtk_clist_set_row_data (GTK_CLIST (dialog->clistSources), dialog->source_row, source);</div><div class='del'>- gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 0, TRUE);</div><div class='del'>- gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->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->clistSources), dialog->source_row);</div><div class='del'>- dialog->source_row = -1;</div><div class='del'>- gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->dialog), 0, TRUE);</div><div class='del'>- gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->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->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->dialog);</div><div class='del'>- gtk_object_unref (GTK_OBJECT (dialog->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 < GTK_CLIST(dialog->clistSources)->rows; i ++) {</div><div class='del'>- AddressbookSource *source = (AddressbookSource*)gtk_clist_get_row_data (GTK_CLIST (dialog->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->dialog), 0, FALSE);</div><div class='del'>- gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->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->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->gui = gui;</div><div class='del'>- dialog->shell = shell;</div><div class='del'>-</div><div class='del'>- dialog->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->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->addSource = glade_xml_get_widget (gui, "addSource");</div><div class='del'>- gtk_signal_connect (GTK_OBJECT(dialog->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->editSource = glade_xml_get_widget (gui, "editSource");</div><div class='del'>- gtk_signal_connect (GTK_OBJECT(dialog->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->deleteSource = glade_xml_get_widget (gui, "deleteSource");</div><div class='del'>- gtk_signal_connect (GTK_OBJECT(dialog->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->dialog), 0, FALSE);</div><div class='del'>- gnome_dialog_set_sensitive (GNOME_DIALOG(dialog->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->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->data);</div><div class='del'>-</div><div class='del'>- text[0] = source->name;</div><div class='del'>- text[1] = source->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->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->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->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->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&id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/component/addressbook-config.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,926 +0,0 @@</div><div class='del'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeDialog</class></div><div class='del'>- <name>add_addressbook</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <title>Add Addressbook</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <default_width>417</default_width></div><div class='del'>- <default_height>332</default_height></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>True</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>False</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>dialog-vbox1</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>dialog-action_area1</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button1</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_OK</stock_button></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button3</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkNotebook</class></div><div class='del'>- <name>notebook2</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <show_tabs>True</show_tabs></div><div class='del'>- <show_border>True</show_border></div><div class='del'>- <tab_pos>GTK_POS_TOP</tab_pos></div><div class='del'>- <scrollable>False</scrollable></div><div class='del'>- <tab_hborder>2</tab_hborder></div><div class='del'>- <tab_vborder>2</tab_vborder></div><div class='del'>- <popup_enable>False</popup_enable></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox1</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>6</spacing></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label29</name></div><div class='del'>- <label>The information below is required in order to add an addressbook. </label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>True</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table1</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <rows>3</rows></div><div class='del'>- <columns>2</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>3</row_spacing></div><div class='del'>- <column_spacing>3</column_spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label15</name></div><div class='del'>- <label>_Account name:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <default_focus_target>account-name-entry</default_focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>account-name-entry</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label16</name></div><div class='del'>- <label>_Server name:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <default_focus_target>server-name-entry</default_focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>server-name-entry</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCheckButton</class></div><div class='del'>- <name>auth-checkbutton</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_My server requires authentication</label></div><div class='del'>- <active>False</active></div><div class='del'>- <draw_indicator>True</draw_indicator></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHBox</class></div><div class='del'>- <name>hbox4</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>0</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>email-address-label</name></div><div class='del'>- <label>Email Address:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>email-address-entry</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkNotebook</class></div><div class='del'>- <name>basic-notebook</name></div><div class='del'>- <show_tabs>False</show_tabs></div><div class='del'>- <show_border>False</show_border></div><div class='del'>- <tab_pos>GTK_POS_TOP</tab_pos></div><div class='del'>- <scrollable>False</scrollable></div><div class='del'>- <tab_hborder>2</tab_hborder></div><div class='del'>- <tab_vborder>2</tab_vborder></div><div class='del'>- <popup_enable>False</popup_enable></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label28</name></div><div class='del'>- <label>This name will be used to identify your account. It is for display purposes only.</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>True</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label18</name></div><div class='del'>- <label>label18</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label31</name></div><div class='del'>- <label>This is the name of the server where your addressbook is located.</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>True</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label19</name></div><div class='del'>- <label>label19</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label48</name></div><div class='del'>- <label>Evolution will use this email address to authenticate you with the server</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>True</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label47</name></div><div class='del'>- <label>label47</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label12</name></div><div class='del'>- <label>Basic</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox2</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>3</spacing></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label30</name></div><div class='del'>- <label>This information is not required for most ldap servers. </label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>True</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table2</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <rows>3</rows></div><div class='del'>- <columns>2</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>3</row_spacing></div><div class='del'>- <column_spacing>3</column_spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label22</name></div><div class='del'>- <label>_Port:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <default_focus_target>port-entry</default_focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>port-entry</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text>389</text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label23</name></div><div class='del'>- <label>Search _base:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <default_focus_target>rootdn-entry</default_focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>rootdn-entry</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label24</name></div><div class='del'>- <label>Search s_cope: </label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment1</name></div><div class='del'>- <xalign>7.45058e-09</xalign></div><div class='del'>- <yalign>7.45058e-09</yalign></div><div class='del'>- <xscale>0</xscale></div><div class='del'>- <yscale>1</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkOptionMenu</class></div><div class='del'>- <name>scope-optionmenu</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <items>One</div><div class='del'>-Base</div><div class='del'>-Sub</div><div class='del'>-</items></div><div class='del'>- <initial_choice>0</initial_choice></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkNotebook</class></div><div class='del'>- <name>advanced-notebook</name></div><div class='del'>- <show_tabs>False</show_tabs></div><div class='del'>- <show_border>False</show_border></div><div class='del'>- <tab_pos>GTK_POS_TOP</tab_pos></div><div class='del'>- <scrollable>False</scrollable></div><div class='del'>- <tab_hborder>2</tab_hborder></div><div class='del'>- <tab_vborder>2</tab_vborder></div><div class='del'>- <popup_enable>False</popup_enable></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label35</name></div><div class='del'>- <label>This is the port that your ldap server uses.</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>True</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label25</name></div><div class='del'>- <label>label18</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label36</name></div><div class='del'>- <label>This is the base node for all your searches on the ldap server. Contact your server administrator for more information.</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>True</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label26</name></div><div class='del'>- <label>label19</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label37</name></div><div class='del'>- <label>This information is used by your ldap server to specify which nodes are used in a search. Contact your server administrator for more information.</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>True</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label27</name></div><div class='del'>- <label>label20</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label13</name></div><div class='del'>- <label>Advanced</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeDialog</class></div><div class='del'>- <name>addressbook_sources</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <title>Addressbook Sources</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <default_width>355</default_width></div><div class='del'>- <default_height>285</default_height></div><div class='del'>- <allow_shrink>True</allow_shrink></div><div class='del'>- <allow_grow>True</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>False</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>dialog-vbox2</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>dialog-action_area2</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button7</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_OK</stock_button></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button8</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_APPLY</stock_button></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button9</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CLOSE</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHBox</class></div><div class='del'>- <name>hbox3</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>0</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkScrolledWindow</class></div><div class='del'>- <name>scrolledwindow2</name></div><div class='del'>- <hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy></div><div class='del'>- <vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy></div><div class='del'>- <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy></div><div class='del'>- <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCList</class></div><div class='del'>- <name>clistSources</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <columns>2</columns></div><div class='del'>- <column_widths>100,80</column_widths></div><div class='del'>- <selection_mode>GTK_SELECTION_SINGLE</selection_mode></div><div class='del'>- <show_titles>True</show_titles></div><div class='del'>- <shadow_type>GTK_SHADOW_IN</shadow_type></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>CList:title</child_name></div><div class='del'>- <name>label43</name></div><div class='del'>- <label>Account Name</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>CList:title</child_name></div><div class='del'>- <name>label44</name></div><div class='del'>- <label>Server Name</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox4</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>0</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label45</name></div><div class='del'>- <label></div><div class='del'>-</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVButtonBox</class></div><div class='del'>- <name>vbuttonbox3</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_START</layout_style></div><div class='del'>- <spacing>0</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>addSource</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Add</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>editSource</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Edit</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>deleteSource</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>De_lete</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-</GTK-Interface></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&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&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 <config.h></div><div class='del'>-#include <glib.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnomeui/gnome-init.h></div><div class='del'>-#include <liboaf/liboaf.h></div><div class='del'>-#include <bonobo/bonobo-main.h></div><div class='del'>-#include <glade/glade.h></div><div class='del'>-#include <gal/widgets/e-cursors.h></div><div class='del'>-#include <e-util/e-passwords.h></div><div class='del'>-</div><div class='del'>-#include <camel/camel.h></div><div class='del'>-</div><div class='del'>-#ifdef GTKHTML_HAVE_GCONF</div><div class='del'>-#include <gconf/gconf.h></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 (&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&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'>- <?xml version="1.0"?></div><div class='del'>- <addressbooks></div><div class='del'>- <contactserver></div><div class='del'>- <name>LDAP Server</name></div><div class='del'>- <host>ldap.server.com</host></div><div class='del'>- <port>389</port></div><div class='del'>- <rootdn></rootdn></div><div class='del'>- <authmethod>simple</authmethod></div><div class='del'>- <emailaddr>toshok@blubag.com</emailaddr></div><div class='del'>- <rememberpass/></div><div class='del'>- </contactserver></div><div class='del'>- </addressbooks></div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_CONFIG_H</div><div class='del'>-#include <config.h></div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include <sys/types.h></div><div class='del'>-#include <sys/fcntl.h></div><div class='del'>-#include <sys/stat.h></div><div class='del'>-#include <errno.h></div><div class='del'>-</div><div class='del'>-#include <glib.h></div><div class='del'>-#include <gtk/gtk.h></div><div class='del'>-#include <gnome-xml/parser.h></div><div class='del'>-#include <gnome-xml/xmlmemory.h></div><div class='del'>-</div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnome/gnome-util.h></div><div class='del'>-#include <bonobo/bonobo-object.h></div><div class='del'>-</div><div class='del'>-#include <gal/util/e-util.h></div><div class='del'>-#include <gal/util/e-xml-utils.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></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 (&ev);</div><div class='del'>-</div><div class='del'>- any._type = TC_GNOME_Evolution_Storage_Result;</div><div class='del'>- any._value = &corba_result;</div><div class='del'>-</div><div class='del'>- Bonobo_Listener_event (listener, "result", &any, &ev);</div><div class='del'>-</div><div class='del'>- CORBA_exception_free (&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->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->uri)</div><div class='del'>- g_free (source->uri);</div><div class='del'>-</div><div class='del'>- source->uri = g_strdup_printf ("ldap://%s:%s/%s??%s",</div><div class='del'>- source->host, source->port,</div><div class='del'>- source->rootdn, ldap_unparse_scope(source->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, &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 < 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->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->childs; child; child = child->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->name, "contactserver")) {</div><div class='del'>- source->type = ADDRESSBOOK_SOURCE_LDAP;</div><div class='del'>- source->port = get_string_value (child, "port");</div><div class='del'>- source->host = get_string_value (child, "host");</div><div class='del'>- source->rootdn = get_string_value (child, "rootdn");</div><div class='del'>- source->scope = ldap_parse_scope (get_string_value (child, "scope"));</div><div class='del'>- source->auth = ldap_parse_auth (get_string_value (child, "authmethod"));</div><div class='del'>- source->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->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->name = get_string_value (child, "name");</div><div class='del'>- source->description = get_string_value (child, "description");</div><div class='del'>-</div><div class='del'>- path = g_strdup_printf ("/%s", source->name);</div><div class='del'>- evolution_storage_new_folder (storage, path, source->name,</div><div class='del'>- "ldap-contacts", source->uri,</div><div class='del'>- source->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->name);</div><div class='del'>- xmlNewChild (source_root, NULL, (xmlChar *) "description",</div><div class='del'>- (xmlChar *) source->description);</div><div class='del'>-</div><div class='del'>- xmlNewChild (source_root, NULL, (xmlChar *) "port",</div><div class='del'>- (xmlChar *) source->port);</div><div class='del'>- xmlNewChild (source_root, NULL, (xmlChar *) "host",</div><div class='del'>- (xmlChar *) source->host);</div><div class='del'>- xmlNewChild (source_root, NULL, (xmlChar *) "rootdn",</div><div class='del'>- (xmlChar *) source->rootdn);</div><div class='del'>- xmlNewChild (source_root, NULL, (xmlChar *) "scope",</div><div class='del'>- (xmlChar *) ldap_unparse_scope(source->scope));</div><div class='del'>- xmlNewChild (source_root, NULL, (xmlChar *) "authmethod",</div><div class='del'>- (xmlChar *) ldap_unparse_auth(source->auth));</div><div class='del'>- if (source->auth == ADDRESSBOOK_LDAP_AUTH_SIMPLE) {</div><div class='del'>- xmlNewChild (source_root, NULL, (xmlChar *) "emailaddr",</div><div class='del'>- (xmlChar *) source->email_addr);</div><div class='del'>- if (source->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, &buf, &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 > 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 > 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->name);</div><div class='del'>- evolution_storage_new_folder (storage, path, source->name, "ldap-contacts",</div><div class='del'>- source->uri, source->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->next) {</div><div class='del'>- AddressbookSource *s = l->data;</div><div class='del'>- if (!strcmp (s->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->next) {</div><div class='del'>- AddressbookSource *source = l->data;</div><div class='del'>- if (!strcmp (uri, source->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->name);</div><div class='del'>- g_free (source->description);</div><div class='del'>- g_free (source->uri);</div><div class='del'>- g_free (source->host);</div><div class='del'>- g_free (source->port);</div><div class='del'>- g_free (source->rootdn);</div><div class='del'>- g_free (source->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->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->name = g_strdup (source->name);</div><div class='del'>- copy->description = g_strdup (source->description);</div><div class='del'>- copy->type = source->type;</div><div class='del'>- copy->uri = g_strdup (source->uri);</div><div class='del'>-</div><div class='del'>- copy->host = g_strdup (source->host);</div><div class='del'>- copy->port = g_strdup (source->port);</div><div class='del'>- copy->rootdn = g_strdup (source->rootdn);</div><div class='del'>- copy->scope = source->scope;</div><div class='del'>- copy->auth = source->auth;</div><div class='del'>- copy->email_addr = g_strdup (source->email_addr);</div><div class='del'>- copy->remember_passwd = source->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&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&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 <config.h></div><div class='del'>-</div><div class='del'>-#include <glib.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnomeui/gnome-app.h></div><div class='del'>-#include <libgnomeui/gnome-stock.h></div><div class='del'>-#include <libgnomeui/gnome-uidefs.h></div><div class='del'>-#include <bonobo/bonobo-generic-factory.h></div><div class='del'>-#include <bonobo/bonobo-ui-util.h></div><div class='del'>-#include <bonobo/bonobo-exception.h></div><div class='del'>-#include <gal/util/e-util.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></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 <ebook/e-book.h></div><div class='del'>-#include <widgets/misc/e-search-bar.h></div><div class='del'>-#include <widgets/misc/e-filter-bar.h></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->view) {</div><div class='del'>- gtk_object_get(GTK_OBJECT(view->view),</div><div class='del'>- "book", &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->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->view) {</div><div class='del'>- gtk_object_get(GTK_OBJECT(view->view),</div><div class='del'>- "book", &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->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->view)</div><div class='del'>- e_addressbook_view_save_as(view->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->view)</div><div class='del'>- gtk_widget_show(e_addressbook_search_dialog_new(view->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->view)</div><div class='del'>- e_addressbook_view_delete_selection(view->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->view)</div><div class='del'>- e_addressbook_view_print(view->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->view)</div><div class='del'>- e_addressbook_view_print_preview(view->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->view)</div><div class='del'>- e_addressbook_view_stop(view->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->view)</div><div class='del'>- e_addressbook_view_cut(view->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->view)</div><div class='del'>- e_addressbook_view_copy(view->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->view)</div><div class='del'>- e_addressbook_view_paste(view->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->view)</div><div class='del'>- e_addressbook_view_select_all (view->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->view)</div><div class='del'>- e_addressbook_view_send (view->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->view)</div><div class='del'>- e_addressbook_view_send_to (view->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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 && view->view && view->view->model)</div><div class='del'>- e_addressbook_model_force_folder_bar_message (view->view->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->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->refs > 0);</div><div class='del'>- ++view->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->refs > 0);</div><div class='del'>- --view->refs;</div><div class='del'>- if (view->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->uri && view->view) {</div><div class='del'>- gtk_object_get(GTK_OBJECT(view->view),</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'>- }</div><div class='del'>- </div><div class='del'>- if (view->properties) {</div><div class='del'>- bonobo_object_unref (BONOBO_OBJECT(view->properties));</div><div class='del'>- view->properties = NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (view->view) {</div><div class='del'>- gtk_widget_destroy (GTK_WIDGET (view->view));</div><div class='del'>- view->view = NULL;</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- g_free(view->passwd);</div><div class='del'>- view->passwd = NULL;</div><div class='del'>-</div><div class='del'>- g_free(view->uri);</div><div class='del'>- view->uri = NULL;</div><div class='del'>-</div><div class='del'>- if (view->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->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->uri);</div><div class='del'>-</div><div class='del'>- if (source && source->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)->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 && source->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)->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->view && view->view->model && view->view->model->book_view)</div><div class='del'>- e_book_view_stop (view->view->model->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 && view->uri)</div><div class='del'>- BONOBO_ARG_SET_STRING (arg, view->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) > 3</div><div class='del'>- && !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->cb (book, status, data->closure);</div><div class='del'>-</div><div class='del'>- g_free (data->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->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 &&</div><div class='del'>- source->type == ADDRESSBOOK_SOURCE_LDAP &&</div><div class='del'>- source->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->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->name, source->email_addr);</div><div class='del'>- remember = source->remember_passwd;</div><div class='del'>- pass_dup = e_passwords_ask_password (</div><div class='del'>- prompt, load_uri_data->uri, prompt, TRUE,</div><div class='del'>- E_PASSWORDS_REMEMBER_FOREVER, &remember,</div><div class='del'>- NULL);</div><div class='del'>- if (remember != source->remember_passwd) {</div><div class='del'>- source->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->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->cb (book, status, load_uri_data->closure);</div><div class='del'>- g_free (load_uri_data->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->uri = g_strdup (uri);</div><div class='del'>- load_uri_data->cb = cb;</div><div class='del'>- load_uri_data->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->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->view),</div><div class='del'>- "book", &book,</div><div class='del'>- NULL);</div><div class='del'>- if (view->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->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->uri = g_strdup(BONOBO_ARG_GET_STRING (arg));</div><div class='del'>- </div><div class='del'>- uri_data = addressbook_expand_uri (view->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->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", &search_word,</div><div class='del'>- "item_id", &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->view));</div><div class='del'>- }</div><div class='del'>- else {</div><div class='del'>- if ((search_word && 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->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->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->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 < 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->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 (&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'>- &ev);</div><div class='del'>- CORBA_exception_free (&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->activity) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (view->activity));</div><div class='del'>- view->activity = NULL;</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- else if (!view->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->activity = evolution_activity_client_new (addressbook_component_get_shell_client(), clientid,</div><div class='del'>- progress_icon, message, TRUE, &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->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 (&ev);</div><div class='del'>-</div><div class='del'>- shell_view_interface = retrieve_shell_view_interface_from_control (view->control);</div><div class='del'>- if (!shell_view_interface) {</div><div class='del'>- CORBA_exception_free (&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'>- &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'>- &ev);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (BONOBO_EX (&ev))</div><div class='del'>- g_warning ("Exception in label update: %s",</div><div class='del'>- bonobo_exception_get_text (&ev));</div><div class='del'>-</div><div class='del'>- CORBA_exception_free (&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->refs = 1;</div><div class='del'>-</div><div class='del'>- view->vbox = gtk_vbox_new (FALSE, 0);</div><div class='del'>-</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (view->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->control = bonobo_control_new (view->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<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->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->vbox), GTK_WIDGET (view->search),</div><div class='del'>- FALSE, FALSE, 0);</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (view->search), "query_changed",</div><div class='del'>- GTK_SIGNAL_FUNC (addressbook_query_changed), view);</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (view->search), "menu_activated",</div><div class='del'>- GTK_SIGNAL_FUNC (addressbook_menu_activated), view);</div><div class='del'>-</div><div class='del'>- view->view = E_ADDRESSBOOK_VIEW(e_addressbook_view_new());</div><div class='del'>- gtk_container_add (GTK_CONTAINER (frame), GTK_WIDGET (view->view));</div><div class='del'>- gtk_box_pack_start (GTK_BOX (view->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->vbox);</div><div class='del'>- gtk_widget_show (GTK_WIDGET(view->view));</div><div class='del'>- gtk_widget_show (GTK_WIDGET(view->search));</div><div class='del'>-</div><div class='del'>- view->properties = bonobo_property_bag_new (get_prop, set_prop, view);</div><div class='del'>-</div><div class='del'>- bonobo_property_bag_add (view->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->control,</div><div class='del'>- view->properties);</div><div class='del'>-</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (view->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->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->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->uri = NULL;</div><div class='del'>-</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (view->control), "activate",</div><div class='del'>- control_activate_cb, view);</div><div class='del'>-</div><div class='del'>- return view->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&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 <bonobo/bonobo-control.h></div><div class='del'>-#include <ebook/e-book.h></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&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 <trow@ximian.com></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 <config.h></div><div class='del'>-#include "e-address-popup.h"</div><div class='del'>-#include <bonobo/bonobo-control.h></div><div class='del'>-#include <bonobo/bonobo-property-bag.h></div><div class='del'>-#include <bonobo/bonobo-generic-factory.h></div><div class='del'>-#include <gal/widgets/e-popup-menu.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book-util.h></div><div class='del'>-#include <addressbook/gui/contact-editor/e-contact-editor.h></div><div class='del'>-#include <addressbook/gui/contact-editor/e-contact-quick-add.h></div><div class='del'>-#include <addressbook/gui/widgets/e-minicard-widget.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'>- * 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->vbox));</div><div class='del'>- while (iter != NULL) {</div><div class='del'>- GtkWidget *oldw = (GtkWidget *) iter->data;</div><div class='del'>- iter = g_list_next (iter);</div><div class='del'>- gtk_container_remove (GTK_CONTAINER (wiz->vbox), oldw);</div><div class='del'>- gtk_widget_destroy (oldw);</div><div class='del'>- }</div><div class='del'>- gtk_container_add (GTK_CONTAINER (wiz->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->cleanup_cb)</div><div class='del'>- wiz->cleanup_cb (wiz->closure);</div><div class='del'>- wiz->cleanup_cb = NULL;</div><div class='del'>-</div><div class='del'>- if (wiz->destroy_cb)</div><div class='del'>- wiz->destroy_cb (wiz, wiz->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->closure;</div><div class='del'>- void (*old_cleanup) (gpointer) = wiz->cleanup_cb;</div><div class='del'>-</div><div class='del'>- wiz->cleanup_cb = NULL;</div><div class='del'>-</div><div class='del'>- if (wiz->ok_cb)</div><div class='del'>- wiz->ok_cb (wiz, wiz->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->cleanup_cb)</div><div class='del'>- wiz->cleanup_cb (wiz->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->body = gtk_vbox_new (FALSE, 2);</div><div class='del'>- wiz->vbox = gtk_vbox_new (FALSE, 2);</div><div class='del'>- wiz->ok_button = gnome_stock_button (GNOME_STOCK_BUTTON_OK);</div><div class='del'>- wiz->cancel_button = gnome_stock_button (GNOME_STOCK_BUTTON_CANCEL);</div><div class='del'>-</div><div class='del'>- wiz->ok_cb = NULL;</div><div class='del'>- wiz->cleanup_cb = NULL;</div><div class='del'>- wiz->closure = NULL;</div><div class='del'>-</div><div class='del'>- wiz->destroy_cb = NULL;</div><div class='del'>- wiz->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->ok_button, TRUE, FALSE, 2);</div><div class='del'>- gtk_box_pack_start (GTK_BOX (hbox), wiz->cancel_button, TRUE, FALSE, 2);</div><div class='del'>-</div><div class='del'>- gtk_box_pack_start (GTK_BOX (wiz->body), wiz->vbox, TRUE, TRUE, 2);</div><div class='del'>- gtk_box_pack_start (GTK_BOX (wiz->body), gtk_hseparator_new (), FALSE, TRUE, 2);</div><div class='del'>- gtk_box_pack_start (GTK_BOX (wiz->body), hbox, FALSE, TRUE, 2);</div><div class='del'>-</div><div class='del'>- gtk_widget_show_all (wiz->body);</div><div class='del'>-</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (wiz->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->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->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->options, (GFunc) g_free, NULL);</div><div class='del'>- g_list_free (menu->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->option_menu = gtk_option_menu_new ();</div><div class='del'>- menu->options = NULL;</div><div class='del'>- menu->current_selection = NULL;</div><div class='del'>-</div><div class='del'>- gtk_option_menu_set_menu (GTK_OPTION_MENU (menu->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->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->options = g_list_append (menu->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->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 && 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->options;</div><div class='del'>- while (iter && strcmp (addr, (gchar *) iter->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->option_menu), count);</div><div class='del'>- menu->current_selection = (gchar *) iter->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->current_selection == NULL || strcmp (addr, menu->current_selection))</div><div class='del'>- return;</div><div class='del'>-</div><div class='del'>- iter = menu->options;</div><div class='del'>- while (iter && strcmp (addr, (gchar *) iter->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->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->card));</div><div class='del'>- email_menu_free (et->primary);</div><div class='del'>- email_menu_free (et->email2);</div><div class='del'>- email_menu_free (et->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->card);</div><div class='del'>- email_menu_set_option (et->primary, e_card_simple_get_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL));</div><div class='del'>- email_menu_set_option (et->email2, e_card_simple_get_email (simple, E_CARD_SIMPLE_EMAIL_ID_EMAIL_2));</div><div class='del'>- email_menu_set_option (et->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->card);</div><div class='del'>-</div><div class='del'>- curr = et->primary->current_selection;</div><div class='del'>- if (curr && !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->email2->current_selection;</div><div class='del'>- if (curr && !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->email3->current_selection;</div><div class='del'>- if (curr && !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->card));</div><div class='del'>- gtk_idle_add (add_card_idle_cb, et->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 && 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->card = card;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (et->card));</div><div class='del'>-</div><div class='del'>- et->table = gtk_table_new (4, 2, FALSE);</div><div class='del'>-</div><div class='del'>- et->primary = email_menu_new ();</div><div class='del'>- et->email2 = email_menu_new ();</div><div class='del'>- et->email3 = email_menu_new ();</div><div class='del'>-</div><div class='del'>- email_menu_add_options_from_card (et->primary, et->card, extra_address);</div><div class='del'>- email_menu_add_options_from_card (et->email2, et->card, extra_address);</div><div class='del'>- email_menu_add_options_from_card (et->email3, et->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->card->name);</div><div class='del'>- gtk_table_attach (GTK_TABLE (et->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->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->table),</div><div class='del'>- et->primary->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->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->table),</div><div class='del'>- et->email2->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->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->table),</div><div class='del'>- et->email3->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->primary->option_menu);</div><div class='del'>- gtk_widget_show_all (et->email2->option_menu);</div><div class='del'>- gtk_widget_show_all (et->email3->option_menu);</div><div class='del'>-</div><div class='del'>- gtk_widget_show_all (et->table);</div><div class='del'>- mini_wizard_container_add (wiz, et->table);</div><div class='del'>- wiz->ok_cb = email_table_ok_cb;</div><div class='del'>- wiz->cleanup_cb = email_table_cleanup_cb;</div><div class='del'>- wiz->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->closure;</div><div class='del'>- pick->current_row = row;</div><div class='del'>- gtk_widget_set_sensitive (wiz->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->closure;</div><div class='del'>- pick->current_row = -1;</div><div class='del'>- gtk_widget_set_sensitive (wiz->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->current_row >= 0);</div><div class='del'>-</div><div class='del'>- if (pick->current_row == 0) {</div><div class='del'>- e_contact_quick_add (pick->new_name, pick->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->cards, pick->current_row-1);</div><div class='del'>- email_table_init (wiz, card, pick->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->cards, (GFunc) gtk_object_unref, NULL);</div><div class='del'>- g_list_free (pick->cards);</div><div class='del'>-</div><div class='del'>- g_free (pick->new_name);</div><div class='del'>- g_free (pick->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->body = gtk_vbox_new (FALSE, 2);</div><div class='del'>-</div><div class='del'>- pick->clist = gtk_clist_new (1);</div><div class='del'>- gtk_clist_set_column_title (GTK_CLIST (pick->clist), 0, _("Select an Action"));</div><div class='del'>- gtk_clist_column_titles_show (GTK_CLIST (pick->clist));</div><div class='del'>- gtk_clist_set_selection_mode (GTK_CLIST (pick->clist), GTK_SELECTION_SINGLE);</div><div class='del'>-</div><div class='del'>- gtk_clist_freeze (GTK_CLIST (pick->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->clist), &str);</div><div class='del'>- g_free (str);</div><div class='del'>-</div><div class='del'>- pick->cards = NULL;</div><div class='del'>- while (cards) {</div><div class='del'>- ECard *card = (ECard *) cards->data;</div><div class='del'>- gchar *name_str = e_card_name_to_string (card->name);</div><div class='del'>-</div><div class='del'>- pick->cards = g_list_append (pick->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->clist), &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->clist));</div><div class='del'>-</div><div class='del'>- pick->new_name = g_strdup (new_name);</div><div class='del'>- pick->new_email = g_strdup (new_email);</div><div class='del'>-</div><div class='del'>- pick->current_row = -1;</div><div class='del'>- gtk_widget_set_sensitive (wiz->ok_button, FALSE);</div><div class='del'>-</div><div class='del'>- /* Connect some signals & callbacks */</div><div class='del'>-</div><div class='del'>- wiz->ok_cb = card_picker_ok_cb;</div><div class='del'>- wiz->cleanup_cb = card_picker_cleanup_cb;</div><div class='del'>-</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (pick->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->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->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->clist);</div><div class='del'>- </div><div class='del'>- gtk_box_pack_start (GTK_BOX (pick->body), swin, TRUE, TRUE, 2);</div><div class='del'>- gtk_widget_show_all (pick->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->closure = pick;</div><div class='del'>- mini_wizard_container_add (wiz, pick->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->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->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->card)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (pop->card));</div><div class='del'>-</div><div class='del'>- if (pop->scheduled_refresh)</div><div class='del'>- gtk_idle_remove (pop->scheduled_refresh);</div><div class='del'>-</div><div class='del'>- g_free (pop->name);</div><div class='del'>- g_free (pop->email);</div><div class='del'>-</div><div class='del'>- if (GTK_OBJECT_CLASS (parent_class)->destroy)</div><div class='del'>- GTK_OBJECT_CLASS (parent_class)->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 (), &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->name_widget) {</div><div class='del'>- if (pop->name && *pop->name) {</div><div class='del'>- gchar *s = e_utf8_to_gtk_string (pop->name_widget, pop->name);</div><div class='del'>- gtk_label_set_text (GTK_LABEL (pop->name_widget), s);</div><div class='del'>- g_free (s);</div><div class='del'>- gtk_widget_show (pop->name_widget);</div><div class='del'>- } else {</div><div class='del'>- gtk_widget_hide (pop->name_widget);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (pop->email_widget) {</div><div class='del'>- if (pop->email && *pop->email) {</div><div class='del'>- gchar *s = e_utf8_to_gtk_string (pop->email_widget, pop->email);</div><div class='del'>- gtk_label_set_text (GTK_LABEL (pop->email_widget), s);</div><div class='del'>- g_free (s);</div><div class='del'>- gtk_widget_show (pop->email_widget);</div><div class='del'>- } else {</div><div class='del'>- gtk_widget_hide (pop->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->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->scheduled_refresh == 0)</div><div class='del'>- pop->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 <bar@bar.com>",</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 && 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, '<');</div><div class='del'>- if (lt)</div><div class='del'>- gt = strchr (txt, '>');</div><div class='del'>-</div><div class='del'>- if (lt && gt && lt+1 < 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 && 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->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->name = g_strdup (name);</div><div class='del'>- if (pop->name)</div><div class='del'>- g_strstrip (pop->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 && 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->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->email = g_strdup (email);</div><div class='del'>- if (pop->email)</div><div class='del'>- g_strstrip (pop->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 && E_IS_ADDRESS_POPUP (pop));</div><div class='del'>-</div><div class='del'>- pop->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->name_widget = gtk_label_new ("");</div><div class='del'>- pop->email_widget = gtk_label_new ("");</div><div class='del'>-</div><div class='del'>- gtk_box_pack_start (GTK_BOX (vbox), pop->name_widget, TRUE, TRUE, 2);</div><div class='del'>- gtk_box_pack_start (GTK_BOX (vbox), pop->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)), &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->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->generic_view = gtk_frame_new (NULL);</div><div class='del'>- gtk_container_add (GTK_CONTAINER (pop->generic_view), name_holder);</div><div class='del'>- gtk_box_pack_start (GTK_BOX (pop->main_vbox), pop->generic_view, TRUE, TRUE, 0);</div><div class='del'>- gtk_widget_show_all (pop->generic_view);</div><div class='del'>-</div><div class='del'>- pop->query_msg = gtk_label_new (_("Querying Addressbook..."));</div><div class='del'>- gtk_box_pack_start (GTK_BOX (pop->main_vbox), pop->query_msg, TRUE, TRUE, 0);</div><div class='del'>- gtk_widget_show (pop->query_msg);</div><div class='del'>-</div><div class='del'>- /* Build Minicard View */</div><div class='del'>- pop->minicard_view = e_minicard_widget_new ();</div><div class='del'>- gtk_box_pack_start (GTK_BOX (pop->main_vbox), pop->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->main_vbox);</div><div class='del'>- gtk_widget_show (pop->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->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->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->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 && E_IS_ADDRESS_POPUP (pop));</div><div class='del'>- g_return_if_fail (card && E_IS_CARD (card));</div><div class='del'>- g_return_if_fail (pop->card == NULL);</div><div class='del'>-</div><div class='del'>- pop->card = card;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (pop->card));</div><div class='del'>-</div><div class='del'>- e_minicard_widget_set_card (E_MINICARD_WIDGET (pop->minicard_view), card);</div><div class='del'>- gtk_widget_show (pop->minicard_view);</div><div class='del'>- gtk_widget_hide (pop->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->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->email && *pop->email) {</div><div class='del'>- if (pop->name && *pop->name)</div><div class='del'>- e_contact_quick_add (pop->name, pop->email, NULL, NULL);</div><div class='del'>- else</div><div class='del'>- e_contact_quick_add_free_form (pop->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 && 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->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, &x, &y, NULL);</div><div class='del'>- w = alloc->width;</div><div class='del'>- h = alloc->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->destroy_cb = wizard_destroy_cb;</div><div class='del'>- wiz->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->name, pop->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->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->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->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->query_tag = 0;</div><div class='del'>- gtk_widget_hide (pop->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->name && *pop->name && pop->email && *pop->email) {</div><div class='del'>- pop->query_tag = e_book_name_and_email_query (book, pop->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->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->query_tag)</div><div class='del'>- e_book_simple_query_cancel (book, pop->query_tag);</div><div class='del'>-</div><div class='del'>- pop->query_tag = e_book_name_and_email_query (book, pop->name, pop->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 && 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->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->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->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->es = bonobo_event_source_new ();</div><div class='del'>- bonobo_object_add_interface (BONOBO_OBJECT (control),</div><div class='del'>- BONOBO_OBJECT (addy->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&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 <trow@ximian.com></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 <gtk/gtk.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card.h></div><div class='del'>-#include <bonobo/bonobo-event-source.h></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&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 <trow@ximian.com></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 <config.h></div><div class='del'>-#include <ctype.h></div><div class='del'>-#include <bonobo/bonobo-control.h></div><div class='del'>-#include <bonobo/bonobo-property-bag.h></div><div class='del'>-#include <bonobo/bonobo-generic-factory.h></div><div class='del'>-#include <addressbook/gui/contact-editor/e-contact-quick-add.h></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->destroy = e_address_widget_destroy;</div><div class='del'>-</div><div class='del'>- widget_class->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->name);</div><div class='del'>- g_free (addr->email);</div><div class='del'>-</div><div class='del'>- if (addr->query_tag)</div><div class='del'>- e_book_simple_query_cancel (common_book, addr->query_tag);</div><div class='del'>-</div><div class='del'>- if (addr->query_idle_tag)</div><div class='del'>- gtk_idle_remove (addr->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->button == 3 && ev->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 (), &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 && E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-</div><div class='del'>- have_name = addr->name && *addr->name;</div><div class='del'>- have_email = addr->email && *addr->email && (addr->card == NULL || !addr->known_email);</div><div class='del'>-</div><div class='del'>- gtk_label_set_text (GTK_LABEL (addr->name_widget), have_name ? addr->name : "");</div><div class='del'>- gtk_widget_visible (addr->name_widget, have_name);</div><div class='del'>- if (addr->card) {</div><div class='del'>- gint i, N = strlen (addr->name);</div><div class='del'>- gchar *pattern = g_malloc (N+1);</div><div class='del'>- for (i=0; i<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->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->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 ? "<%s>" : "%s", addr->email);</div><div class='del'>- gtk_label_set_text (GTK_LABEL (addr->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->email_widget), "");</div><div class='del'>- }</div><div class='del'>- gtk_widget_visible (addr->email_widget, have_email);</div><div class='del'>-</div><div class='del'>- gtk_widget_visible (addr->spacer, have_name && 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->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 && E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-</div><div class='del'>- g_free (addr->name);</div><div class='del'>- addr->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 && E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-</div><div class='del'>- g_free (addr->email);</div><div class='del'>- addr->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 && 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 && 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->name_widget = gtk_label_new ("");</div><div class='del'>- addr->spacer = gtk_label_new (" ");</div><div class='del'>- addr->email_widget = gtk_label_new ("");</div><div class='del'>- </div><div class='del'>- gtk_box_pack_start (GTK_BOX (box), addr->name_widget, FALSE, FALSE, 0);</div><div class='del'>- gtk_box_pack_start (GTK_BOX (box), addr->spacer, FALSE, FALSE, 0);</div><div class='del'>- gtk_box_pack_start (GTK_BOX (box), addr->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->name_widget);</div><div class='del'>- gtk_widget_show (addr->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->card != card || addr->known_email != known_email) {</div><div class='del'>-</div><div class='del'>- if (addr->card != card) {</div><div class='del'>- if (addr->card)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (addr->card));</div><div class='del'>- addr->card = card;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (addr->card));</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- addr->known_email = known_email;</div><div class='del'>-</div><div class='del'>- if (!(addr->name && *addr->name)) {</div><div class='del'>- gchar *s = e_card_name_to_string (card->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->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->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->name, addr->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->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->query_idle_tag || !doing_queries)</div><div class='del'>- return;</div><div class='del'>- addr->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->name && *addr->name) {</div><div class='del'>- uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>- uiinfo[i].label = addr->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->email && *addr->email) {</div><div class='del'>- uiinfo[i].type = GNOME_APP_UI_ITEM;</div><div class='del'>- uiinfo[i].label = addr->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->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->name, addr->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 && E_IS_ADDRESS_WIDGET (addr));</div><div class='del'>-</div><div class='del'>- pop = addr->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->name ? addr->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->email ? addr->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 & 0xff0000) >> 8;</div><div class='del'>- color.green = (bg & 0x00ff00);</div><div class='del'>- color.blue = (bg & 0x0000ff) << 8;</div><div class='del'>-</div><div class='del'>- if (gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET (addr)), &color, FALSE, TRUE)) {</div><div class='del'>- GtkStyle *style = gtk_style_copy (gtk_widget_get_style (GTK_WIDGET (addr)));</div><div class='del'>- style->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&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 <trow@ximian.com></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 <gtk/gtkeventbox.h></div><div class='del'>-#include <gtk/gtkhbox.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <gtk/gtkwidget.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book-util.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card.h></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&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 <clahey@ximian.com></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 <config.h></div><div class='del'>-#include <gnome-xml/tree.h></div><div class='del'>-#include <gnome-xml/parser.h></div><div class='del'>-#include <gnome-xml/xmlmemory.h></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 < model->data_count; i++ ) {</div><div class='del'>- gtk_object_unref(GTK_OBJECT(model->data[i]));</div><div class='del'>- }</div><div class='del'>- g_free(model->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->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 >= E_CARD_SIMPLE_FIELD_LAST - 1|| row >= e_cardlist_model->data_count )</div><div class='del'>- return NULL;</div><div class='del'>- value = e_card_simple_get_const(e_cardlist_model->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 >= E_CARD_SIMPLE_FIELD_LAST - 1|| row >= e_cardlist_model->data_count )</div><div class='del'>- return;</div><div class='del'>- e_card_simple_set(e_cardlist_model->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->data[row]),</div><div class='del'>- "card", &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 && *(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->data = g_realloc(model->data, model->data_count + count * sizeof(ECard *));</div><div class='del'>- for (i = 0; i < 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 < model->data_count; i++) {</div><div class='del'>- if ( !strcmp(e_card_simple_get_id(model->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->data[model->data_count++] = e_card_simple_new (cards[i]);</div><div class='del'>- e_table_model_row_inserted(E_TABLE_MODEL(model), model->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 < model->data_count; i++) {</div><div class='del'>- if ( !strcmp(e_card_simple_get_id(model->data[i]), id) ) {</div><div class='del'>- gtk_object_unref(GTK_OBJECT(model->data[i]));</div><div class='del'>- memmove(model->data + i, model->data + i + 1, (model->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->destroy = e_cardlist_model_destroy;</div><div class='del'>-</div><div class='del'>- model_class->column_count = e_cardlist_model_col_count;</div><div class='del'>- model_class->row_count = e_cardlist_model_row_count;</div><div class='del'>- model_class->value_at = e_cardlist_model_value_at;</div><div class='del'>- model_class->set_value_at = e_cardlist_model_set_value_at;</div><div class='del'>- model_class->is_cell_editable = e_cardlist_model_is_cell_editable;</div><div class='del'>- model_class->duplicate_value = e_cardlist_model_duplicate_value;</div><div class='del'>- model_class->free_value = e_cardlist_model_free_value;</div><div class='del'>- model_class->initialize_value = e_cardlist_model_initialize_value;</div><div class='del'>- model_class->value_is_empty = e_cardlist_model_value_is_empty;</div><div class='del'>- model_class->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->data = NULL;</div><div class='del'>- model->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->data && row < model->data_count) {</div><div class='del'>- ECard *card;</div><div class='del'>- gtk_object_get(GTK_OBJECT(model->data[row]),</div><div class='del'>- "card", &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, &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&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 <gal/e-table/e-table-model.h></div><div class='del'>-#include <ebook/e-book.h></div><div class='del'>-#include <ebook/e-book-view.h></div><div class='del'>-#include <ebook/e-card-simple.h></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&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&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 <ettore@ximian.com></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 <Bonobo.idl></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<Section> 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&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'>-<oaf_info></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_SelectNamesFactory"</div><div class='del'>- type="exe"</div><div class='del'>- location="evolution-addressbook"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/ObjectFactory:1.0"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Factory for the Addressbook's name selection interface"/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-<oaf_server iid="OAFIID:GNOME_Evolution_Addressbook_SelectNames"</div><div class='del'>- type="factory"</div><div class='del'>- location="OAFIID:GNOME_Evolution_Addressbook_SelectNamesFactory"></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="repo_ids" type="stringv"></div><div class='del'>- <item value="IDL:GNOME/Evolution/Addressbook/SelectNames"/></div><div class='del'>- </oaf_attribute></div><div class='del'>-</div><div class='del'>- <oaf_attribute name="description" type="string"</div><div class='del'>- _value="Evolution's addressbook name selection interface."/></div><div class='del'>-</div><div class='del'>-</oaf_server></div><div class='del'>-</div><div class='del'>-</oaf_info> \ 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&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&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 <config.h></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 <bonobo/bonobo-property-bag.h></div><div class='del'>-#include <bonobo/bonobo-control.h></div><div class='del'>-#include <bonobo/bonobo-event-source.h></div><div class='del'>-</div><div class='del'>-#include <gal/util/e-util.h></div><div class='del'>-#include <gal/e-text/e-entry.h></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->vepv = &SelectNames_vepv;</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>-</div><div class='del'>- POA_GNOME_Evolution_Addressbook_SelectNames__init ((PortableServer_Servant) servant, &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 (&ev);</div><div class='del'>- return NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- CORBA_exception_free (&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->priv;</div><div class='del'>-</div><div class='del'>- e_select_names_manager_add_section (priv->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->priv;</div><div class='del'>-</div><div class='del'>- e_select_names_manager_add_section_with_limit (priv->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->priv;</div><div class='del'>-</div><div class='del'>- entry_widget = e_select_names_manager_create_entry (priv->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->priv;</div><div class='del'>-</div><div class='del'>- e_select_names_manager_activate_dialog (priv->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->priv;</div><div class='del'>-</div><div class='del'>- gtk_object_unref (GTK_OBJECT (priv->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->_private = NULL;</div><div class='del'>- base_epv->finalize = NULL;</div><div class='del'>- base_epv->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->addSection = impl_SelectNames_add_section;</div><div class='del'>- epv->addSectionWithLimit = impl_SelectNames_add_section_with_limit;</div><div class='del'>- epv->getEntryBySection = impl_SelectNames_get_entry_for_section;</div><div class='del'>- epv->activateDialog = impl_SelectNames_activate_dialog;</div><div class='del'>-</div><div class='del'>- vepv = &SelectNames_vepv;</div><div class='del'>- vepv->Bonobo_Unknown_epv = bonobo_object_get_epv ();</div><div class='del'>- vepv->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->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->priv->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->manager = e_select_names_manager_new ();</div><div class='del'>- priv->event_source = NULL;</div><div class='del'>-</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (priv->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->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->priv->event_source == NULL);</div><div class='del'>- select_names->priv->event_source = bonobo_event_source_new ();</div><div class='del'>- bonobo_object_add_interface (BONOBO_OBJECT (select_names), BONOBO_OBJECT (select_names->priv->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&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 <bonobo/bonobo-object.h></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&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 <trow@ximian.com></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 <config.h></div><div class='del'>-#include "e-select-names-completion.h"</div><div class='del'>-</div><div class='del'>-#include <ctype.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <string.h></div><div class='del'>-#include <math.h></div><div class='del'>-</div><div class='del'>-#include <gtk/gtksignal.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-util.h></div><div class='del'>-</div><div class='del'>-#include <gal/unicode/gunicode.h></div><div class='del'>-</div><div class='del'>-#include <addressbook/backend/ebook/e-book-util.h></div><div class='del'>-#include <addressbook/backend/ebook/e-destination.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card-simple.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card-compare.h></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->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->sort_major = card ? floor (e_card_get_use_score (card)) : 0;</div><div class='del'>- match->sort_minor = e_destination_get_email_num (dest);</div><div class='del'>-</div><div class='del'>- match->user_data = dest;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (dest));</div><div class='del'>-</div><div class='del'>- match->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->priv->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->nickname == NULL)</div><div class='del'>- return NULL;</div><div class='del'>-</div><div class='del'>- len = g_utf8_strlen (comp->priv->query_text, -1);</div><div class='del'>- if (card->nickname && !g_utf8_strncasecmp (comp->priv->query_text, card->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->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 && *name)</div><div class='del'>- str = g_strdup_printf ("'%s' %s <%s>", card->nickname, name, e_destination_get_email (dest));</div><div class='del'>- else</div><div class='del'>- str = g_strdup_printf ("'%s' <%s>", card->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->priv->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->priv->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'>- && !g_utf8_strncasecmp (comp->priv->query_text, email, len)</div><div class='del'>- && !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 && *name)</div><div class='del'>- str = g_strdup_printf ("<%s> %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 && comp->priv->query_text && *comp->priv->query_text) {</div><div class='del'>- gchar *cpy = g_strdup (comp->priv->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->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->priv->query_text, TRUE /* yes, allow partial matches */,</div><div class='del'>- NULL, &first_match, &match_len);</div><div class='del'>-</div><div class='del'>- if (match <= 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->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->nickname);</div><div class='del'>- if ((card->name->given && !g_utf8_strncasecmp (card->name->given, card->nickname, MIN (strlen (card->name->given), len)))</div><div class='del'>- || (card->name->family && !g_utf8_strncasecmp (card->name->family, card->nickname, MIN (strlen (card->name->family), len)))</div><div class='del'>- || (card->name->additional && !g_utf8_strncasecmp (card->name->additional, card->nickname, MIN (strlen (card->name->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->name->given && *card->name->given;</div><div class='del'>- have_additional = card->name->additional && *card->name->additional;</div><div class='del'>- have_family = card->name->family && *card->name->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->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 <%s>", card->name->given, card->name->family, email);</div><div class='del'>- else</div><div class='del'>- menu_text = g_strdup_printf ("%s <%s>", card->name->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 <%s>",</div><div class='del'>- card->name->additional,</div><div class='del'>- have_family ? " " : "",</div><div class='del'>- have_family ? card->name->family : "",</div><div class='del'>- card->name->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 <%s>",</div><div class='del'>- card->name->additional,</div><div class='del'>- have_family ? " " : "",</div><div class='del'>- have_family ? card->name->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 <%s>",</div><div class='del'>- card->name->family,</div><div class='del'>- card->name->given,</div><div class='del'>- have_additional ? " " : "",</div><div class='del'>- have_additional ? card->name->additional : "",</div><div class='del'>- email);</div><div class='del'>- else</div><div class='del'>- menu_text = g_strdup_printf ("%s <%s>", card->name->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 ("<%s> ???", 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 && *name))</div><div class='del'>- return NULL;</div><div class='del'>-</div><div class='del'>- cpy = g_strdup (comp->priv->query_text);</div><div class='del'>- strv = g_strsplit (cpy, " ", 0);</div><div class='del'>-</div><div class='del'>- for (i=0; strv[i] && score > 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 <= 0)</div><div class='del'>- return NULL;</div><div class='del'>- </div><div class='del'>- menu_text = g_strdup_printf ("%s <%s>", 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 && E_IS_SELECT_NAMES_COMPLETION (comp), NULL);</div><div class='del'>-</div><div class='del'>- if (! (comp->priv->query_text && *comp->priv->query_text))</div><div class='del'>- return NULL;</div><div class='del'>-</div><div class='del'>- if (comp->priv->primary_only) {</div><div class='del'>- for (i=0; i<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<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<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->priv->query_text && *comp->priv->query_text))</div><div class='del'>- return NULL;</div><div class='del'>- </div><div class='del'>- for (i=0; i<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->priv->primary_only) {</div><div class='del'>- if (book_queries[i].tester && 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->score > best_match->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->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->priv->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 && match->score > 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->email) {</div><div class='del'>- gint i;</div><div class='del'>- for (i=0; i<e_list_length (card->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 && *email) {</div><div class='del'>- </div><div class='del'>- match = book_query_score (comp, dest);</div><div class='del'>- if (match && match->score > 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->comp->priv->query_text);</div><div class='del'>- </div><div class='del'>- if (len == 2) {</div><div class='del'>- </div><div class='del'>- f = qi->comp->priv->query_text[0];</div><div class='del'>- m = '\0';</div><div class='del'>- l = qi->comp->priv->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->comp->priv->query_text[0];</div><div class='del'>- m = qi->comp->priv->query_text[1];</div><div class='del'>- l = qi->comp->priv->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->name->given ? *card->name->given : '\0';</div><div class='del'>- cm = card->name->additional ? *card->name->additional : '\0';</div><div class='del'>- cl = card->name->family ? *card->name->family : '\0';</div><div class='del'>-</div><div class='del'>- if (f && isupper ((gint) f))</div><div class='del'>- f = tolower ((gint) f);</div><div class='del'>- if (m && isupper ((gint) m))</div><div class='del'>- m = tolower ((gint) m);</div><div class='del'>- if (l && isupper ((gint) l))</div><div class='del'>- l = tolower ((gint) l);</div><div class='del'>-</div><div class='del'>- if (cf && isupper ((gint) cf))</div><div class='del'>- cf = tolower ((gint) cf);</div><div class='del'>- if (cm && isupper ((gint) cm))</div><div class='del'>- cm = tolower ((gint) cm);</div><div class='del'>- if (cl && isupper ((gint) cl))</div><div class='del'>- cl = tolower ((gint) cl);</div><div class='del'>-</div><div class='del'>- if ((f == '\0' || (f == cf)) && (m == '\0' || (m == cm)) && (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->name->given, card->name->additional, card->name->family);</div><div class='del'>- else</div><div class='del'>- return g_strdup_printf ("%s %s", card->name->given, card->name->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 && comp->priv->query_text && *(comp->priv->query_text)) {</div><div class='del'>- </div><div class='del'>- len = strlen (comp->priv->query_text);</div><div class='del'>- if (len < 2 || len > 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->priv->query_text));</div><div class='del'>- query_info_start (comp, comp->priv->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 (), &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->destroy = e_select_names_completion_destroy;</div><div class='del'>-</div><div class='del'>- completion_class->request_completion = e_select_names_completion_handle_request;</div><div class='del'>- completion_class->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->priv = g_new0 (struct _ESelectNamesCompletionPrivate, 1);</div><div class='del'>- comp->priv->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->priv->model)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (comp->priv->model));</div><div class='del'>-</div><div class='del'>- if (comp->priv->book)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (comp->priv->book));</div><div class='del'>-</div><div class='del'>- if (comp->priv->card_added_tag) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (comp->priv->book_view), comp->priv->card_added_tag);</div><div class='del'>- comp->priv->card_added_tag = 0;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (comp->priv->seq_complete_tag) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (comp->priv->book_view), comp->priv->seq_complete_tag);</div><div class='del'>- comp->priv->seq_complete_tag = 0;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (comp->priv->book_view)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (comp->priv->book_view));</div><div class='del'>- </div><div class='del'>- g_free (comp->priv->waiting_query);</div><div class='del'>- g_free (comp->priv->query_text);</div><div class='del'>-</div><div class='del'>- g_free (comp->priv->cached_query_text);</div><div class='del'>- g_list_foreach (comp->priv->cached_cards, (GFunc)gtk_object_unref, NULL);</div><div class='del'>- g_list_free (comp->priv->cached_cards);</div><div class='del'>-</div><div class='del'>- g_free (comp->priv);</div><div class='del'>-</div><div class='del'>- if (parent_class->destroy)</div><div class='del'>- parent_class->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 & 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 != ',' && *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->priv->cached_query_text);</div><div class='del'>- comp->priv->cached_query_text = NULL;</div><div class='del'>-</div><div class='del'>- g_list_foreach (comp->priv->cached_cards, (GFunc)gtk_object_unref, NULL);</div><div class='del'>- g_list_free (comp->priv->cached_cards);</div><div class='del'>- comp->priv->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->priv->book_view_tag = 0;</div><div class='del'>-</div><div class='del'>- if (comp->priv->card_added_tag) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (comp->priv->book_view), comp->priv->card_added_tag);</div><div class='del'>- comp->priv->card_added_tag = 0;</div><div class='del'>- }</div><div class='del'>- if (comp->priv->seq_complete_tag) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (comp->priv->book_view), comp->priv->seq_complete_tag);</div><div class='del'>- comp->priv->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->priv->book_view)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (comp->priv->book_view));</div><div class='del'>- comp->priv->book_view = view;</div><div class='del'>-</div><div class='del'>- comp->priv->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->priv->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->priv->cached_cards = g_list_prepend (comp->priv->cached_cards, cards->data);</div><div class='del'>- gtk_object_ref (GTK_OBJECT (cards->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->priv->query_text);</div><div class='del'>- comp->priv->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->priv->waiting_query) {</div><div class='del'>- gchar *s = comp->priv->waiting_query;</div><div class='del'>- comp->priv->waiting_query = NULL;</div><div class='del'>- e_completion_begin_search (E_COMPLETION (comp), s, comp->priv->waiting_pos, comp->priv->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 && 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->priv->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->priv->waiting_query);</div><div class='del'>- comp->priv->waiting_query = NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_free (comp->priv->query_text);</div><div class='del'>- comp->priv->query_text = NULL;</div><div class='del'>-</div><div class='del'>- if (comp->priv->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->priv->book, comp->priv->book_view_tag);</div><div class='del'>- comp->priv->book_view_tag = 0;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (comp->priv->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->priv->card_added_tag) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (comp->priv->book_view), comp->priv->card_added_tag);</div><div class='del'>- comp->priv->card_added_tag = 0;</div><div class='del'>- }</div><div class='del'>- if (comp->priv->seq_complete_tag) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (comp->priv->book_view), comp->priv->seq_complete_tag);</div><div class='del'>- comp->priv->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->priv->book_view));</div><div class='del'>- comp->priv->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 && 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->priv->book_ready) {</div><div class='del'>- gchar *sexp;</div><div class='del'>- </div><div class='del'>- g_free (comp->priv->query_text);</div><div class='del'>- comp->priv->query_text = g_strdup (query_text);</div><div class='del'>-</div><div class='del'>- g_free (comp->priv->cached_query_text);</div><div class='del'>- comp->priv->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 && *sexp) {</div><div class='del'>-</div><div class='del'>- if (out)</div><div class='del'>- fprintf (out, "\n\n**** starting query: \"%s\"\n", comp->priv->query_text);</div><div class='del'>-</div><div class='del'>- comp->priv->book_view_tag = e_book_get_book_view (comp->priv->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->priv->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->priv->query_text);</div><div class='del'>- comp->priv->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->priv->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 && *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->priv->book_view_tag;</div><div class='del'>-</div><div class='del'>- if (out) {</div><div class='del'>- fprintf (out, "do_query: %s => %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->priv->cached_query_text && out)</div><div class='del'>- fprintf (out, "cached: %s\n", comp->priv->cached_query_text);</div><div class='del'>-</div><div class='del'>- can_reuse_cached_cards = (comp->priv->cached_query_text</div><div class='del'>- && (!comp->priv->can_fail_due_to_too_many_hits || comp->priv->cached_cards != NULL)</div><div class='del'>- && (strlen (comp->priv->cached_query_text) <= strlen (clean))</div><div class='del'>- && !g_utf8_strncasecmp (comp->priv->cached_query_text, clean, strlen (comp->priv->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->priv->waiting_query);</div><div class='del'>- comp->priv->waiting_query = clean;</div><div class='del'>- comp->priv->waiting_pos = pos;</div><div class='del'>- comp->priv->waiting_limit = limit;</div><div class='del'>- if (out)</div><div class='del'>- fprintf (out, "waiting for running query to complete: %s\n", comp->priv->waiting_query);</div><div class='del'>- return;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- g_free (comp->priv->query_text);</div><div class='del'>- comp->priv->query_text = clean;</div><div class='del'>- if (out)</div><div class='del'>- fprintf (out, "using existing query info: %s (vs %s)\n", comp->priv->query_text, comp->priv->cached_query_text);</div><div class='del'>- book_query_process_card_list (comp, comp->priv->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->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->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->priv->model, pos, &index, NULL, NULL);</div><div class='del'>- str = index >= 0 ? e_select_names_model_get_string (selcomp->priv->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 (&(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->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->priv->can_fail_due_to_too_many_hits = !strcmp (cap, "net");</div><div class='del'>- if (comp->priv->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->priv->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->priv->waiting_query) {</div><div class='del'>- e_select_names_completion_start_query (comp, comp->priv->waiting_query);</div><div class='del'>- g_free (comp->priv->waiting_query);</div><div class='del'>- comp->priv->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->priv->book = e_book_new ();</div><div class='del'>- gtk_object_ref (GTK_OBJECT (comp->priv->book));</div><div class='del'>- gtk_object_sink (GTK_OBJECT (comp->priv->book));</div><div class='del'>-</div><div class='del'>- comp->priv->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->priv->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->priv->book = book;</div><div class='del'>- gtk_object_ref (GTK_OBJECT (comp->priv->book));</div><div class='del'>- comp->priv->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->priv->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->priv->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->priv->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&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 <trow@ximian.com></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 <gal/e-text/e-completion.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book.h></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&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 <config.h></div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include <bonobo/bonobo-generic-factory.h></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&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 <glib.h></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&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 <clahey@ximian.com></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 <config.h></div><div class='del'>-</div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <stdlib.h></div><div class='del'>-#include <string.h></div><div class='del'>-</div><div class='del'>-#include <gal/e-text/e-entry.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.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 <addressbook/backend/ebook/e-destination.h></div><div class='del'>-#include <addressbook/gui/component/addressbook.h></div><div class='del'>-#include <bonobo-conf/bonobo-config-database.h></div><div class='del'>-#include <bonobo/bonobo-object.h></div><div class='del'>-#include <bonobo/bonobo-moniker-util.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'>-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 &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 &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 (), &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->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 (&ev);</div><div class='del'>-</div><div class='del'>- db = bonobo_get_object ("wombat:", "Bonobo/ConfigDatabase", &ev);</div><div class='del'>-</div><div class='del'>- val = bonobo_config_get_string (db, "/Addressbook/Completion/uri", &ev);</div><div class='del'>-</div><div class='del'>- CORBA_exception_free (&ev);</div><div class='del'>-</div><div class='del'>- if (val) {</div><div class='del'>- manager->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->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->completion_book = NULL;</div><div class='del'>-</div><div class='del'>- CORBA_exception_init (&ev);</div><div class='del'>- bonobo_object_release_unref (db, &ev);</div><div class='del'>- CORBA_exception_free (&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->destroy = e_select_names_manager_destroy;</div><div class='del'>- object_class->get_arg = e_select_names_manager_get_arg;</div><div class='del'>- object_class->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->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->sections));</div><div class='del'>- gtk_object_unref(GTK_OBJECT(manager->entries));</div><div class='del'>-</div><div class='del'>- if (manager->names) {</div><div class='del'>- gtk_widget_destroy (GTK_WIDGET (manager->names));</div><div class='del'>- manager->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->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->id = g_strdup(section->id);</div><div class='del'>- newsec->title = g_strdup(section->title);</div><div class='del'>- newsec->model = section->model;</div><div class='del'>- newsec->original_model = section->original_model;</div><div class='del'>- newsec->manager = section->manager;</div><div class='del'>- newsec->changed_handler = gtk_signal_connect (GTK_OBJECT (newsec->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->model)</div><div class='del'>- gtk_object_ref(GTK_OBJECT(newsec->model));</div><div class='del'>- if (newsec->original_model)</div><div class='del'>- gtk_object_ref(GTK_OBJECT(newsec->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->manager && section->changed_handler) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (section->model), section->changed_handler);</div><div class='del'>- }</div><div class='del'>- g_free(section->id);</div><div class='del'>- g_free(section->title);</div><div class='del'>- if (section->model)</div><div class='del'>- gtk_object_unref (GTK_OBJECT(section->model));</div><div class='del'>- if (section->original_model)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (section->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->id = g_strdup(entry->id);</div><div class='del'>- newent->entry = entry->entry;</div><div class='del'>- if (newent->entry)</div><div class='del'>- gtk_object_ref(GTK_OBJECT(newent->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->id);</div><div class='del'>- if (entry->entry)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(entry->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->sections = e_list_new(section_copy, section_free, manager);</div><div class='del'>- manager->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->manager),</div><div class='del'>- e_select_names_manager_signals[CHANGED],</div><div class='del'>- section->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->manager),</div><div class='del'>- e_select_names_manager_signals[CHANGED],</div><div class='del'>- section->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->id = g_strdup(id);</div><div class='del'>- section->title = g_strdup(title);</div><div class='del'>-</div><div class='del'>- section->model = e_select_names_model_new();</div><div class='del'>- e_select_names_model_set_limit (section->model, limit);</div><div class='del'>-</div><div class='del'>- section->original_model = NULL;</div><div class='del'>-</div><div class='del'>- section->manager = manager;</div><div class='del'>-</div><div class='del'>- section->changed_handler = gtk_signal_connect (GTK_OBJECT (section->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->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 && 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->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->id, id)) {</div><div class='del'>- return section->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->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->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->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->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, &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, &start_pos, &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->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 && !GTK_WIDGET_HAS_FOCUS (GTK_WIDGET (entry->canvas)))</div><div class='del'>- e_select_names_model_cardify_all (model, manager->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->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->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->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->model);</div><div class='del'>- </div><div class='del'>- gtk_signal_connect (GTK_OBJECT (eentry->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->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->entry = eentry;</div><div class='del'>- entry->id = (char *)id;</div><div class='del'>-</div><div class='del'>- model = e_select_names_text_model_new (section->model);</div><div class='del'>- e_list_append (manager->entries, entry);</div><div class='del'>- g_free(entry);</div><div class='del'>-</div><div class='del'>- comp = e_select_names_completion_new (manager->completion_book, section->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->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->model, section->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->names) {</div><div class='del'>- g_assert (GTK_WIDGET_REALIZED (GTK_WIDGET (manager->names)));</div><div class='del'>- e_select_names_set_default(manager->names, id);</div><div class='del'>- gdk_window_show (GTK_WIDGET (manager->names)->window);</div><div class='del'>- gdk_window_raise (GTK_WIDGET (manager->names)->window);</div><div class='del'>- } else {</div><div class='del'>- manager->names = E_SELECT_NAMES (e_select_names_new ());</div><div class='del'>-</div><div class='del'>- iterator = e_list_get_iterator(manager->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->original_model != NULL)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (section->original_model));</div><div class='del'>- section->original_model = e_select_names_model_duplicate (section->model);</div><div class='del'>- e_select_names_add_section (manager->names, section->id, section->title, section->model);</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (section->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->names, id);</div><div class='del'>- gtk_signal_connect(GTK_OBJECT(manager->names), "clicked",</div><div class='del'>- GTK_SIGNAL_FUNC(e_select_names_clicked), manager);</div><div class='del'>- gtk_signal_connect(GTK_OBJECT(manager->names), "destroy",</div><div class='del'>- GTK_SIGNAL_FUNC(gtk_widget_destroyed), </div><div class='del'>- &manager->names);</div><div class='del'>- gtk_widget_show(GTK_WIDGET(manager->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&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 <clahey@ximian.com></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 <stdio.h></div><div class='del'>-#include <time.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <e-util/e-list.h></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&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 <clahey@ximian.com></div><div class='del'>- * Jon Trowbidge <trow@ximian.com></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 <config.h></div><div class='del'>-</div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <stdlib.h></div><div class='del'>-#include <string.h></div><div class='del'>-#include <gtk/gtkmarshal.h></div><div class='del'>-#include <gtk/gtksignal.h></div><div class='del'>-</div><div class='del'>-#include <gal/util/e-util.h></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 (), &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->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->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->changed = NULL;</div><div class='del'>-</div><div class='del'>- object_class->destroy = e_select_names_model_destroy;</div><div class='del'>- object_class->get_arg = e_select_names_model_get_arg;</div><div class='del'>- object_class->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->priv = g_new0 (struct _ESelectNamesModelPrivate, 1);</div><div class='del'>-</div><div class='del'>- model->priv->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->priv->title);</div><div class='del'>- g_free (model->priv->id);</div><div class='del'>-</div><div class='del'>- g_list_foreach (model->priv->data, (GFunc) gtk_object_unref, NULL);</div><div class='del'>- g_list_free (model->priv->data);</div><div class='del'>-</div><div class='del'>- g_free (model->priv->text);</div><div class='del'>- g_free (model->priv->addr_text);</div><div class='del'>-</div><div class='del'>- g_free (model->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->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->priv->text);</div><div class='del'>- model->priv->text = NULL;</div><div class='del'>- </div><div class='del'>- g_free (model->priv->addr_text);</div><div class='del'>- model->priv->addr_text = NULL;</div><div class='del'>-</div><div class='del'>- if (model->priv->freeze_count > 0) {</div><div class='del'>- model->priv->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->priv->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->priv->id = g_strdup (old->priv->id);</div><div class='del'>- model->priv->title = g_strdup (old->priv->title);</div><div class='del'>- </div><div class='del'>- for (iter = old->priv->data; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>- EDestination *dup = e_destination_copy (E_DESTINATION (iter->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->priv->limit = old->priv->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->priv->text == NULL) {</div><div class='del'>-</div><div class='del'>- if (model->priv->data == NULL) {</div><div class='del'>- </div><div class='del'>- model->priv->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->priv->data)+1);</div><div class='del'>- gint i = 0;</div><div class='del'>- GList *iter = model->priv->data;</div><div class='del'>- </div><div class='del'>- while (iter) {</div><div class='del'>- EDestination *dest = E_DESTINATION (iter->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->priv->text = g_strjoinv (SEPARATOR, strv);</div><div class='del'>-</div><div class='del'>- if (strlen(model->priv->text) > MAX_LENGTH) {</div><div class='del'>- model->priv->text[MAX_LENGTH] = 0;</div><div class='del'>- g_realloc (model->priv->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->priv->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->priv->addr_text == NULL) {</div><div class='del'>-</div><div class='del'>- if (model->priv->data == NULL) {</div><div class='del'>-</div><div class='del'>- model->priv->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->priv->data)+1);</div><div class='del'>- gint i = 0;</div><div class='del'>- GList *iter = model->priv->data;</div><div class='del'>-</div><div class='del'>- while (iter) {</div><div class='del'>- EDestination *dest = E_DESTINATION (iter->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->priv->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->priv->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->priv->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->priv->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->priv->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->priv->limit >= 0 && g_list_length (model->priv->data) >= model->priv->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 && E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>- g_return_val_if_fail (0 <= index, NULL);</div><div class='del'>- g_return_val_if_fail (index < g_list_length (model->priv->data), NULL);</div><div class='del'>-</div><div class='del'>- return E_DESTINATION (g_list_nth_data (model->priv->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 && E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>-</div><div class='del'>- len = g_list_length (model->priv->data);</div><div class='del'>- destv = g_new0 (EDestination *, len+1);</div><div class='del'>- </div><div class='del'>- for (i=0, j = model->priv->data; j != NULL; j = g_list_next (j)) {</div><div class='del'>- EDestination *dest = E_DESTINATION (j->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 && 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 && E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>- g_return_val_if_fail (0 <= index, NULL);</div><div class='del'>- g_return_val_if_fail (index < g_list_length (model->priv->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 && E_IS_SELECT_NAMES_MODEL (model), NULL);</div><div class='del'>- g_return_val_if_fail (0 <= index, NULL);</div><div class='del'>- g_return_val_if_fail (index < g_list_length (model->priv->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->priv->data; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>- if (iter->data != NULL && e_destination_equal (dest, E_DESTINATION (iter->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 <= index && index <= g_list_length (model->priv->data));</div><div class='del'>- g_return_if_fail (dest && 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->priv->data = g_list_insert (model->priv->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 && E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>- g_return_if_fail (dest && 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->priv->data = g_list_append (model->priv->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->priv->data == NULL || (0 <= index && index < g_list_length (model->priv->data)));</div><div class='del'>- g_return_if_fail (dest && 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->priv->data == NULL) {</div><div class='del'>-</div><div class='del'>- connect_destination (model, dest);</div><div class='del'>-</div><div class='del'>- model->priv->data = g_list_append (model->priv->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->priv->data, index);</div><div class='del'>-</div><div class='del'>- if (node->data != dest) {</div><div class='del'>-</div><div class='del'>- disconnect_destination (model, E_DESTINATION (node->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->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->data));</div><div class='del'>-</div><div class='del'>- node->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 <= index && index < g_list_length (model->priv->data));</div><div class='del'>- </div><div class='del'>- node = g_list_nth (model->priv->data, index);</div><div class='del'>- dest = E_DESTINATION (node->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->priv->data = g_list_remove_link (model->priv->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 && E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-</div><div class='del'>- iter = model->priv->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->data ? E_DESTINATION (iter->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->priv->data = g_list_remove_link (model->priv->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 && E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>-</div><div class='del'>- g_list_foreach (model->priv->data, delete_all_iter, model);</div><div class='del'>- g_list_free (model->priv->data);</div><div class='del'>- model->priv->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 && E_IS_SELECT_NAMES_MODEL (dest));</div><div class='del'>- g_return_if_fail (src && 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 < 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 < len; ++i) {</div><div class='del'>- const EDestination *d = e_select_names_model_get_destination (src, i);</div><div class='del'>- if (d && !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->priv->data;</div><div class='del'>- while (iter && i <= index) {</div><div class='del'>- rp += len + (i > 0 ? SEPLEN : 0);</div><div class='del'>- str = e_destination_get_textrep (E_DESTINATION (iter->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 <= 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->priv->data;</div><div class='del'>-</div><div class='del'>- while (iter != NULL) {</div><div class='del'>- str = e_destination_get_textrep (E_DESTINATION (iter->data));</div><div class='del'>- len = str ? strlen (str) : 0;</div><div class='del'>-</div><div class='del'>- if (sp <= pos && pos <= 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 <= index && index < g_list_length (model->priv->data));</div><div class='del'>-</div><div class='del'>- dest = E_DESTINATION (g_list_nth_data (model->priv->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 > 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 <= index && index < g_list_length (model->priv->data), FALSE);</div><div class='del'>-</div><div class='del'>- dest = E_DESTINATION (g_list_nth_data (model->priv->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 <= index && index < g_list_length (model->priv->data));</div><div class='del'>-</div><div class='del'>- dest = E_DESTINATION (g_list_nth_data (model->priv->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->priv->data; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>- EDestination *dest = E_DESTINATION (iter->data);</div><div class='del'>- if (!e_destination_is_empty (dest)) {</div><div class='del'>-</div><div class='del'>- if (delay > 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->priv->data; iter != NULL; iter = g_list_next (iter)) {</div><div class='del'>- EDestination *dest = E_DESTINATION (iter->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->priv->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->priv->freeze_count > 0);</div><div class='del'>-</div><div class='del'>- --model->priv->freeze_count;</div><div class='del'>- if (model->priv->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&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 <clahey@ximian.com></div><div class='del'>- * Jon Trowbridge <trow@ximian.com></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 <time.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <e-util/e-list.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card.h></div><div class='del'>-#include <addressbook/backend/ebook/e-destination.h></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&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 <trow@ximian.com></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 <config.h></div><div class='del'>-</div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <string.h></div><div class='del'>-</div><div class='del'>-#include <glib.h></div><div class='del'>-#include <gtk/gtkcheckmenuitem.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnomeui/gnome-app.h></div><div class='del'>-#include <libgnomeui/gnome-app-helper.h></div><div class='del'>-#include <libgnomeui/gnome-popup-menu.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-</div><div class='del'>-#include <addressbook/backend/ebook/e-book-util.h></div><div class='del'>-#include <addressbook/gui/contact-editor/e-contact-editor.h></div><div class='del'>-#include <addressbook/gui/contact-editor/e-contact-quick-add.h></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->model = model;</div><div class='del'>- info->dest = dest;</div><div class='del'>- info->pos = pos;</div><div class='del'>- info->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->model)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (info->model));</div><div class='del'>-</div><div class='del'>- if (info->dest)</div><div class='del'>- gtk_object_unref (GTK_OBJECT (info->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->dest));</div><div class='del'>- e_book_use_local_address_book (make_contact_editor_cb, (gpointer) info->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)->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->dest)) {</div><div class='del'>- dest = e_destination_new ();</div><div class='del'>- e_destination_set_card (dest, e_destination_get_card (info->dest), n);</div><div class='del'>- e_select_names_model_replace (info->model, info->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->model, info->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->type = GNOME_APP_UI_ITEM;</div><div class='del'>- uiinfo->label = _("Remove");</div><div class='del'>- uiinfo->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->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->type = GNOME_APP_UI_ITEM;</div><div class='del'>- uiinfo->label = _("Remove All");</div><div class='del'>- uiinfo->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->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->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->type = GNOME_APP_UI_TOGGLEITEM;</div><div class='del'>- uiinfo->label = _("Send HTML Mail?");</div><div class='del'>- uiinfo->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->widget),</div><div class='del'>- e_destination_get_html_mail_pref (info->dest));</div><div class='del'>- gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (uiinfo->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->widget));</div><div class='del'>- label = item_children->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->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->email) {</div><div class='del'>- </div><div class='del'>- if (e_list_length (card->email) > 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->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 && *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->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 (&(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 (&(uiinfo[i]), info);</div><div class='del'>- ++i;</div><div class='del'>- </div><div class='del'>- add_remove_all_recipients (&(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 (&(uiinfo[html_toggle]), info);</div><div class='del'>-</div><div class='del'>- /* Properly handle the names & 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 (&(uiinfo[0]), e_destination_get_name (info->dest));</div><div class='del'>- </div><div class='del'>- if (mail_label >= 0) {</div><div class='del'>- set_uiinfo_label (&(uiinfo[mail_label]), e_destination_get_email (info->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->dest);</div><div class='del'>- gint j = 0;</div><div class='del'>- iterator = e_list_get_iterator (card->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 && *label) {</div><div class='del'>- set_uiinfo_label (&(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->dest);</div><div class='del'>-</div><div class='del'>- if (card->email) {</div><div class='del'>- </div><div class='del'>- iterator = e_list_get_iterator (card->email);</div><div class='del'>- for (e_iterator_reset (iterator); e_iterator_is_valid (iterator) && subcount < max_subcount; e_iterator_next (iterator)) {</div><div class='del'>- gchar *label = (gchar *) e_iterator_get (iterator);</div><div class='del'>- if (label && *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 (&(uiinfo[i]), info);</div><div class='del'>- ++i;</div><div class='del'>- </div><div class='del'>- add_remove_all_recipients (&(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->dest);</div><div class='del'>- if (!(str && *str))</div><div class='del'>- str = _("Unnamed Contact List");</div><div class='del'>- set_uiinfo_label (&(uiinfo[0]), str);</div><div class='del'>-</div><div class='del'>- if (card->email) {</div><div class='del'>- </div><div class='del'>- iterator = e_list_get_iterator (card->email);</div><div class='del'>- i = 2;</div><div class='del'>- for (e_iterator_reset (iterator); e_iterator_is_valid (iterator) && subcount < max_subcount; e_iterator_next (iterator)) {</div><div class='del'>- gchar *label = (gchar *) e_iterator_get (iterator);</div><div class='del'>- if (label && *label) {</div><div class='del'>- EDestination *subdest = e_destination_import (label);</div><div class='del'>- set_uiinfo_label (&(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->email) - max_subcount);</div><div class='del'>- set_uiinfo_label (&(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->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 (&(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 (&(uiinfo[i]), info);</div><div class='del'>- ++i;</div><div class='del'>-</div><div class='del'>- add_remove_all_recipients (&(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 (&(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->dest);</div><div class='del'>- if (! (str && *str))</div><div class='del'>- str = e_destination_get_email (info->dest);</div><div class='del'>- if (! (str && *str))</div><div class='del'>- str = _("Unnamed Contact");</div><div class='del'>- </div><div class='del'>- set_uiinfo_label (&(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 && E_IS_SELECT_NAMES_MODEL (model));</div><div class='del'>- g_return_if_fail (ev);</div><div class='del'>- g_return_if_fail (0 <= pos);</div><div class='del'>-</div><div class='del'>- e_select_names_model_text_pos (model, pos, &index, NULL, NULL);</div><div class='del'>- if (index < 0 || index >= 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&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 <trow@ximian.com></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&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 <clahey@ximian.com></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 <config.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <stdlib.h></div><div class='del'>-#include <string.h></div><div class='del'>-</div><div class='del'>-#include <gtk/gtksignal.h></div><div class='del'>-#include <gal/util/e-util.h></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->source = source;</div><div class='del'>- if (model->source)</div><div class='del'>- gtk_object_ref(GTK_OBJECT(model->source));</div><div class='del'>- model->source_changed_id = gtk_signal_connect(GTK_OBJECT(model->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->source_changed_id)</div><div class='del'>- gtk_signal_disconnect(GTK_OBJECT(model->source), model->source_changed_id);</div><div class='del'>- if (model->source)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(model->source));</div><div class='del'>- model->source = NULL;</div><div class='del'>- model->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 &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 &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 (), &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->source) {</div><div class='del'>- int count = e_select_names_model_count (model->source);</div><div class='del'>- gint i;</div><div class='del'>-</div><div class='del'>- model->count = count;</div><div class='del'>- model->data = g_new(ESelectNamesTableModelData, count);</div><div class='del'>-</div><div class='del'>- for (i = 0; i < count; ++i) {</div><div class='del'>- const EDestination *dest = e_select_names_model_get_destination (model->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->data[i].name = e_card_simple_get(simple, E_CARD_SIMPLE_FIELD_NAME_OR_ORG);</div><div class='del'>- if (model->data[i].name == 0)</div><div class='del'>- model->data[i].name = g_strdup("");</div><div class='del'>- model->data[i].email = e_card_simple_get(simple, E_CARD_SIMPLE_FIELD_EMAIL);</div><div class='del'>- if (model->data[i].email == 0)</div><div class='del'>- model->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->data[i].name = g_strdup (name && *name ? name : email);</div><div class='del'>- model->data[i].email = g_strdup (email);</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- } else {</div><div class='del'>- model->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 < model->count; i++) {</div><div class='del'>- g_free(model->data[i].name);</div><div class='del'>- g_free(model->data[i].email);</div><div class='del'>- }</div><div class='del'>- g_free(model->data);</div><div class='del'>- model->data = NULL;</div><div class='del'>- model->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->count == -1) {</div><div class='del'>- if (e_select_names_table_model->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->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->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->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->data[row].name;</div><div class='del'>- break;</div><div class='del'>- case 1:</div><div class='del'>- if (e_select_names_table_model->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->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 && *(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->source);</div><div class='del'>- break;</div><div class='del'>- default:</div><div class='del'>- arg->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->source = NULL;</div><div class='del'>- model->source_changed_id = 0;</div><div class='del'>-</div><div class='del'>- model->count = -1;</div><div class='del'>- model->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->destroy = e_select_names_table_model_destroy;</div><div class='del'>- object_class->get_arg = e_select_names_table_model_get_arg;</div><div class='del'>- object_class->set_arg = e_select_names_table_model_set_arg;</div><div class='del'>-</div><div class='del'>- table_model_class->column_count = e_select_names_table_model_col_count;</div><div class='del'>- table_model_class->row_count = e_select_names_table_model_row_count;</div><div class='del'>- table_model_class->value_at = e_select_names_table_model_value_at;</div><div class='del'>- table_model_class->set_value_at = e_select_names_table_model_set_value_at;</div><div class='del'>- table_model_class->is_cell_editable = e_select_names_table_model_is_cell_editable;</div><div class='del'>- table_model_class->duplicate_value = e_select_names_table_model_duplicate_value;</div><div class='del'>- table_model_class->free_value = e_select_names_table_model_free_value;</div><div class='del'>- table_model_class->initialize_value = e_select_names_table_model_initialize_value;</div><div class='del'>- table_model_class->value_is_empty = e_select_names_table_model_value_is_empty;</div><div class='del'>- table_model_class->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&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 <clahey@ximian.com></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 <time.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <gal/e-table/e-table-model.h></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&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 <clahey@ximian.com></div><div class='del'>- * Jon Trowbridge <trow@ximian.com></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 <config.h></div><div class='del'>-</div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <stdlib.h></div><div class='del'>-#include <string.h></div><div class='del'>-#include <ctype.h></div><div class='del'>-</div><div class='del'>-#include <gal/e-text/e-text-model-repos.h></div><div class='del'>-</div><div class='del'>-#include <addressbook/gui/contact-editor/e-contact-editor.h></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 &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 &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, &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->destroy = e_select_names_text_model_destroy;</div><div class='del'>- object_class->get_arg = e_select_names_text_model_get_arg;</div><div class='del'>- object_class->set_arg = e_select_names_text_model_set_arg;</div><div class='del'>-</div><div class='del'>- text_model_class->get_text = e_select_names_text_model_get_text;</div><div class='del'>- text_model_class->set_text = e_select_names_text_model_set_text;</div><div class='del'>- text_model_class->insert = e_select_names_text_model_insert;</div><div class='del'>- text_model_class->insert_length = e_select_names_text_model_insert_length;</div><div class='del'>- text_model_class->delete = e_select_names_text_model_delete;</div><div class='del'>-</div><div class='del'>- text_model_class->obj_count = e_select_names_text_model_obj_count;</div><div class='del'>- text_model_class->get_nth_obj = e_select_names_text_model_get_nth_obj;</div><div class='del'>- text_model_class->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->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<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) ? "<card>" : "");</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->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)->destroy)</div><div class='del'>- GTK_OBJECT_CLASS(parent_class)->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->source);</div><div class='del'>- break;</div><div class='del'>- default:</div><div class='del'>- arg->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, &pos, NULL);</div><div class='del'>-</div><div class='del'>- if (new_len < 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, &repos_del);</div><div class='del'>-</div><div class='del'>- } else if (old_len < 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, &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->source)</div><div class='del'>- return;</div><div class='del'>- </div><div class='del'>- if (model->source) {</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (model->source), model->source_changed_id);</div><div class='del'>- gtk_signal_disconnect (GTK_OBJECT (model->source), model->source_resize_id);</div><div class='del'>- gtk_object_unref (GTK_OBJECT (model->source));</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- model->source = source;</div><div class='del'>-</div><div class='del'>- if (model->source) {</div><div class='del'>- gtk_object_ref (GTK_OBJECT (model->source));</div><div class='del'>- model->source_changed_id = gtk_signal_connect_object (GTK_OBJECT(model->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->source_resize_id = gtk_signal_connect (GTK_OBJECT(model->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->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->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)->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, ">> 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)->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 < length && 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)->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, &index, &start_pos, &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] == ',' && index >= 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<pos-start_pos && 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] == ',' && !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, &repos);</div><div class='del'>- </div><div class='del'>-</div><div class='del'>- } else if (pos <= 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 && 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 < e_select_names_model_count (source) &&</div><div class='del'>- (e_select_names_model_get_string (source, ins_point) == NULL)) </div><div class='del'>- || (ins_point > 0 && (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, &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, &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)->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 >= 0 ? e_select_names_model_get_string (source, index) : NULL;</div><div class='del'>- if (str && *str) {</div><div class='del'>- if (pos <= 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 < start_pos ? " " : "", str);</div><div class='del'>- if (pos < 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 >= 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 > 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, &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)->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)->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, ">> 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<pos && i<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<pos+length && i<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<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 < 0)</div><div class='del'>- return;</div><div class='del'>-</div><div class='del'>- if (E_SELECT_NAMES_TEXT_MODEL (model)->last_magic_comma_pos == pos+1</div><div class='del'>- && length == 1) {</div><div class='del'>- --pos;</div><div class='del'>- if (pos >= 0)</div><div class='del'>- ++length;</div><div class='del'>- E_SELECT_NAMES_TEXT_MODEL (model)->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, &index, &start_pos, &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)->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 < 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, &repos);</div><div class='del'>-</div><div class='del'>- length -= start_pos - pos;</div><div class='del'>-</div><div class='del'>- if (length > 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 < 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 && *str1 && isspace ((gint) *str1))</div><div class='del'>- ++str1;</div><div class='del'>- while (str2 && *str2 && isspace ((gint) *str2))</div><div class='del'>- ++str2;</div><div class='del'>- </div><div class='del'>- if (str1 && 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, &repos);</div><div class='del'>-</div><div class='del'>- if (length > 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 > 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, &repos);</div><div class='del'>-</div><div class='del'>- length -= text_len + SEPLEN;</div><div class='del'>- if (length > 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 > 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 >= 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, &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, &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)->last_magic_comma_pos = -1;</div><div class='del'>- gtk_signal_handler_unblock (GTK_OBJECT (source), E_SELECT_NAMES_TEXT_MODEL (model)->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)->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 > 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 >= 0 && i < N);</div><div class='del'>-</div><div class='del'>- if (i <= 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)->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 < 0)</div><div class='del'>- return NULL;</div><div class='del'>- </div><div class='del'>- e_select_names_model_name_pos (source, i, &pos, len);</div><div class='del'>- if (pos < 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)->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 >= 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&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 <clahey@ximian.com></div><div class='del'>- * Jon Trowbridge <trow@ximian.com></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 <time.h></div><div class='del'>-#include <stdio.h></div><div class='del'>-#include <gtk/gtkobject.h></div><div class='del'>-#include <gal/e-text/e-text-model.h></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&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 <clahey@ximian.com></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'>-#include <glib.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnomeui/gnome-stock.h></div><div class='del'>-#include <libgnomeui/gnome-dialog.h></div><div class='del'>-#include <libgnomeui/gnome-dialog-util.h></div><div class='del'>-</div><div class='del'>-#include <gal/e-table/e-table-simple.h></div><div class='del'>-#include <gal/e-table/e-table-without.h></div><div class='del'>-#include <gal/widgets/e-font.h></div><div class='del'>-#include <gal/widgets/e-popup-menu.h></div><div class='del'>-</div><div class='del'>-#include <addressbook/gui/widgets/e-addressbook-model.h></div><div class='del'>-#include <addressbook/gui/widgets/e-addressbook-table-adapter.h></div><div class='del'>-#include <addressbook/gui/component/e-cardlist-model.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book.h></div><div class='del'>-#include <addressbook/gui/component/addressbook-component.h></div><div class='del'>-#include <addressbook/gui/component/addressbook-storage.h></div><div class='del'>-#include <addressbook/gui/component/addressbook.h></div><div class='del'>-#include <shell/evolution-shell-client.h></div><div class='del'>-</div><div class='del'>-#include "e-select-names.h"</div><div class='del'>-#include <addressbook/backend/ebook/e-card-simple.h></div><div class='del'>-#include "e-select-names-table-model.h"</div><div class='del'>-#include <gal/widgets/e-categories-master-list-combo.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-#include <gal/e-text/e-entry.h></div><div class='del'>-#include <e-util/e-categories-master-list-wombat.h></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, &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->set_arg = e_select_names_set_arg;</div><div class='del'>- object_class->get_arg = e_select_names_get_arg;</div><div class='del'>- object_class->destroy = e_select_names_destroy;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define SPEC "<ETableSpecification no-headers=\"true\" cursor-mode=\"line\"> \</div><div class='del'>- <ETableColumn model_col= \"%d\" _title=\"Name\" expansion=\"1.0\" minimum_width=\"20\" resizable=\"true\" cell=\"string\" compare=\"string\"/> \</div><div class='del'>- <ETableState> \</div><div class='del'>- <column source=\"0\"/> \</div><div class='del'>- <grouping> <leaf column=\"0\" ascending=\"true\"/> </grouping> \</div><div class='del'>- </ETableState> \</div><div class='del'>-</ETableSpecification>"</div><div class='del'>-</div><div class='del'>-#define SPEC2 "<ETableSpecification no-headers=\"true\" cursor-mode=\"line\"> \</div><div class='del'>- <ETableColumn model_col= \"0\" _title=\"Name\" expansion=\"1.0\" minimum_width=\"20\" resizable=\"true\" cell=\"string\" compare=\"string\"/> \</div><div class='del'>- <ETableState> \</div><div class='del'>- <column source=\"0\"/> \</div><div class='del'>- <grouping> <leaf column=\"0\" ascending=\"true\"/> </grouping> \</div><div class='del'>- </ETableState> \</div><div class='del'>-</ETableSpecification>"</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 && current_uri && !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->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 < 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->without));</div><div class='del'>- g_hash_table_foreach (esl->children, sync_one_model, esl->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->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->without), model_row);</div><div class='del'>-</div><div class='del'>- card = e_addressbook_model_get_card (E_ADDRESSBOOK_MODEL(names->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->source, dest);</div><div class='del'>- e_select_names_model_clean (child->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->source);</div><div class='del'>- e_table_selected_row_foreach(e_table_scrolled_get_table(names->table),</div><div class='del'>- real_add_address_cb, child);</div><div class='del'>- e_select_names_model_thaw (child->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->children, names->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->description );</div><div class='del'>- g_free(e_folder->display_name);</div><div class='del'>- g_free(e_folder->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->model, e_folder->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->menu;</div><div class='del'>- e_select_names = nnm->names;</div><div class='del'>-</div><div class='del'>- label = e_utf8_to_locale_string (_(e_folder->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->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->folders,</div><div class='del'>- add_menu_item,</div><div class='del'>- &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->type, "contacts")</div><div class='del'>- || !strcmp(folder->type, "ldap-contacts")) {</div><div class='del'>- ESelectNamesFolder *e_folder = g_new(ESelectNamesFolder, 1);</div><div class='del'>- e_folder->description = g_strdup(folder->description );</div><div class='del'>- e_folder->display_name = g_strdup(folder->displayName);</div><div class='del'>- if (!strncmp (folder->physicalUri, "file:", 5))</div><div class='del'>- e_folder->uri = g_strdup_printf ("%s/addressbook.db", folder->physicalUri);</div><div class='del'>- else</div><div class='del'>- e_folder->uri = g_strdup(folder->physicalUri);</div><div class='del'>- g_hash_table_insert(e_select_names->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->folders, path, (void **) &orig_path, (void **) &e_folder)) {</div><div class='del'>- g_hash_table_remove(e_select_names->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->categories_entry) {</div><div class='del'>- category = gtk_entry_get_text (GTK_ENTRY (e_select_names->categories_entry));</div><div class='del'>- }</div><div class='del'>- if (e_select_names->search_entry) {</div><div class='del'>- search = gtk_entry_get_text (GTK_ENTRY (e_select_names->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 && *category)</div><div class='del'>- q_array[i++] = g_strdup_printf ("(is \"category\" \"%s\")", category);</div><div class='del'>- if (search && *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 > 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->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->_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(&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->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 <trow@ximian.com> 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->local_listener, &ev);</div><div class='del'>- bonobo_object_release_unref(storage, &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 (&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->other_contacts_listener = evolution_storage_listener_new();</div><div class='del'>-</div><div class='del'>- hookup_listener (e_select_names, storage, e_select_names->other_contacts_listener, &ev);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- CORBA_exception_free(&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->gui = gui;</div><div class='del'>-</div><div class='del'>- e_select_names->children = g_hash_table_new(g_str_hash, g_str_equal);</div><div class='del'>- e_select_names->child_count = 0;</div><div class='del'>- e_select_names->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)->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->table = E_TABLE_SCROLLED(glade_xml_get_widget(gui, "table-source"));</div><div class='del'>- e_select_names->model = gtk_object_get_data(GTK_OBJECT(e_select_names->table), "model");</div><div class='del'>- e_select_names->adapter = gtk_object_get_data(GTK_OBJECT(e_select_names->table), "adapter");</div><div class='del'>- e_select_names->without = gtk_object_get_data(GTK_OBJECT(e_select_names->table), "without");</div><div class='del'>-</div><div class='del'>- e_select_names->categories = glade_xml_get_widget (gui, "custom-categories");</div><div class='del'>- if (e_select_names->categories && !GTK_IS_COMBO (e_select_names->categories))</div><div class='del'>- e_select_names->categories = NULL;</div><div class='del'>- if (e_select_names->categories) {</div><div class='del'>- e_select_names->categories_entry = GTK_COMBO (e_select_names->categories)->entry;</div><div class='del'>- } else</div><div class='del'>- e_select_names->categories_entry = NULL;</div><div class='del'>- e_select_names->search_entry = glade_xml_get_widget (gui, "entry-find");</div><div class='del'>- if (e_select_names->search_entry && !GTK_IS_ENTRY (e_select_names->search_entry))</div><div class='del'>- e_select_names->search_entry = NULL;</div><div class='del'>- if (e_select_names->search_entry)</div><div class='del'>- gtk_signal_connect(GTK_OBJECT(e_select_names->search_entry), "activate",</div><div class='del'>- GTK_SIGNAL_FUNC(update_query), e_select_names);</div><div class='del'>- if (e_select_names->categories_entry)</div><div class='del'>- gtk_signal_connect(GTK_OBJECT(e_select_names->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->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->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->source), GTK_SIGNAL_FUNC (sync_table_and_models), e_select_names);</div><div class='del'>- g_free(child->title);</div><div class='del'>- gtk_object_unref(GTK_OBJECT(child->model));</div><div class='del'>- gtk_object_unref(GTK_OBJECT(child->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->local_listener), e_select_names);</div><div class='del'>- gtk_object_unref(GTK_OBJECT(e_select_names->local_listener));</div><div class='del'>- gtk_signal_disconnect_by_data(GTK_OBJECT(e_select_names->other_contacts_listener), e_select_names);</div><div class='del'>- gtk_object_unref(GTK_OBJECT(e_select_names->other_contacts_listener));</div><div class='del'>-</div><div class='del'>- gtk_object_unref(GTK_OBJECT(e_select_names->gui));</div><div class='del'>- g_hash_table_foreach(e_select_names->children, (GHFunc) e_select_names_child_free, e_select_names);</div><div class='del'>- g_hash_table_destroy(e_select_names->children);</div><div class='del'>-</div><div class='del'>- g_free(e_select_names->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->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->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->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->child->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->table,</div><div class='del'>- etable_selection_foreach_cb,</div><div class='del'>- rcdata->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->child);</div><div class='del'>-</div><div class='del'>- e_select_names_model_thaw (rcdata->child->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->table = table;</div><div class='del'>- rcdata->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->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->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->names = e_select_names;</div><div class='del'>- child->title = e_utf8_from_locale_string(_(name));</div><div class='del'>-</div><div class='del'>- e_select_names->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->title, " ->", 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->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->child_count,</div><div class='del'>- e_select_names->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->model = model;</div><div class='del'>- child->source = source;</div><div class='del'>- gtk_object_ref(GTK_OBJECT(child->model));</div><div class='del'>- gtk_object_ref(GTK_OBJECT(child->source));</div><div class='del'>-</div><div class='del'>- gtk_signal_connect (GTK_OBJECT (child->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->child_count,</div><div class='del'>- e_select_names->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->children, g_strdup(id), child);</div><div class='del'>-</div><div class='del'>- sync_table_and_models (child->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->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->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 < rows; i++) {</div><div class='del'>- ECard *card = e_cardlist_model_get(E_CARDLIST_MODEL(child->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->children, id);</div><div class='del'>- if (child) {</div><div class='del'>- if (child->source)</div><div class='del'>- gtk_object_ref(GTK_OBJECT(child->source));</div><div class='del'>- return child->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->def) {</div><div class='del'>- child = g_hash_table_lookup(e_select_names->children, e_select_names->def);</div><div class='del'>- if (child)</div><div class='del'>- gtk_object_set (GTK_OBJECT (E_ENTRY (child->label)->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->def);</div><div class='del'>- e_select_names->def = g_strdup(id);</div><div class='del'>-</div><div class='del'>- if (e_select_names->def) {</div><div class='del'>- child = g_hash_table_lookup(e_select_names->children, e_select_names->def);</div><div class='del'>- if (child)</div><div class='del'>- gtk_object_set (GTK_OBJECT (E_ENTRY (child->label)->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&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 <clahey@ximian.com></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 <glib.h></div><div class='del'>-#include <gtk/gtkwidget.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-util.h></div><div class='del'>-#include <libgnomeui/gnome-dialog.h></div><div class='del'>-#include <glade/glade.h></div><div class='del'>-#include <gal/e-table/e-table.h></div><div class='del'>-#include <gal/e-table/e-table-scrolled.h></div><div class='del'>-</div><div class='del'>-#include <addressbook/gui/widgets/e-addressbook-model.h></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&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'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <name>Recipient</name></div><div class='del'>- <program_name>recipient</program_name></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>- <use_widget_names>True</use_widget_names></div><div class='del'>- <output_main_file>False</output_main_file></div><div class='del'>- <output_support_files>False</output_support_files></div><div class='del'>- <output_build_files>False</output_build_files></div><div class='del'>- <gnome_help_support>True</gnome_help_support></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GtkWindow</class></div><div class='del'>- <name>window1</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <title>window1</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>True</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHBox</class></div><div class='del'>- <name>hbox-top</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>4</spacing></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment1</name></div><div class='del'>- <xalign>1.08033e-07</xalign></div><div class='del'>- <yalign>0</yalign></div><div class='del'>- <xscale>1</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>text-button</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>-&gt;</label></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-</GTK-Interface></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&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'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <name>Select-names</name></div><div class='del'>- <program_name>select-names</program_name></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>- <output_main_file>False</output_main_file></div><div class='del'>- <output_support_files>False</output_support_files></div><div class='del'>- <output_build_files>False</output_build_files></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeDialog</class></div><div class='del'>- <name>dialog-top</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <title>Select Names</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <default_width>417</default_width></div><div class='del'>- <default_height>332</default_height></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>True</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>False</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>dialog-vbox1</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>dialog-action_area1</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button4</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <has_default>True</has_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_OK</stock_button></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button5</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table-top</name></div><div class='del'>- <rows>2</rows></div><div class='del'>- <columns>1</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>0</row_spacing></div><div class='del'>- <column_spacing>0</column_spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox5</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>0</spacing></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>True</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table4</name></div><div class='del'>- <rows>2</rows></div><div class='del'>- <columns>2</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>6</row_spacing></div><div class='del'>- <column_spacing>6</column_spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table-recipients</name></div><div class='del'>- <rows>1</rows></div><div class='del'>- <columns>2</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>4</row_spacing></div><div class='del'>- <column_spacing>4</column_spacing></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label20</name></div><div class='del'>- <label>_Message Recipients:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox6</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>3</spacing></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>True</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label22</name></div><div class='del'>- <label>Co_ntacts:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>table-source</name></div><div class='del'>- <creation_function>e_addressbook_create_ebook_table</creation_function></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Sat, 10 Jun 2000 22:02:57 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>dialog-vbox1</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>0</spacing></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox3</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>3</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label4</name></div><div class='del'>- <label>Show contacts matching the following criteria:</label></div><div class='del'>- <justify>GTK_JUSTIFY_LEFT</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHBox</class></div><div class='del'>- <name>hbox1</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label5</name></div><div class='del'>- <label>_Folder:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <default_focus_target>optionmenu-folder</default_focus_target></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkOptionMenu</class></div><div class='del'>- <name>optionmenu-folder</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <items></items></div><div class='del'>- <initial_choice>0</initial_choice></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label6</name></div><div class='del'>- <label>_Category:</label></div><div class='del'>- <justify>GTK_JUSTIFY_RIGHT</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <default_focus_target>custom-categories</default_focus_target></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom-categories</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <creation_function>e_select_names_create_categories</creation_function></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Wed, 27 Jun 2001 01:47:01 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHBox</class></div><div class='del'>- <name>hbox2</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>3</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label7</name></div><div class='del'>- <label>C_ontaining:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <default_focus_target>entry-find</default_focus_target></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-find</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <name>hbuttonbox1</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_DEFAULT_STYLE</layout_style></div><div class='del'>- <spacing>0</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-find</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>F_ind</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHSeparator</class></div><div class='del'>- <name>hseparator1</name></div><div class='del'>- <child></div><div class='del'>- <padding>8</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-</GTK-Interface></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&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&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&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&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'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <name>Contact-editor</name></div><div class='del'>- <program_name>contact-editor</program_name></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>- <use_widget_names>True</use_widget_names></div><div class='del'>- <output_main_file>False</output_main_file></div><div class='del'>- <output_support_files>False</output_support_files></div><div class='del'>- <output_build_files>False</output_build_files></div><div class='del'>- <backup_source_files>False</backup_source_files></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeDialog</class></div><div class='del'>- <name>dialog2</name></div><div class='del'>- <border_width>2</border_width></div><div class='del'>- <visible>False</visible></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>False</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>False</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>dialog-vbox2</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>4</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>dialog-action_area2</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button28</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_OK</stock_button></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button29</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_APPLY</stock_button></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button30</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table2</name></div><div class='del'>- <rows>2</rows></div><div class='del'>- <columns>2</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>0</row_spacing></div><div class='del'>- <column_spacing>2</column_spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry2</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox1</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>2</spacing></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>True</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button31</name></div><div class='del'>- <border_width>2</border_width></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Add</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button32</name></div><div class='del'>- <border_width>2</border_width></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Delete</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkScrolledWindow</class></div><div class='del'>- <name>scrolledwindow1</name></div><div class='del'>- <height>200</height></div><div class='del'>- <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy></div><div class='del'>- <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy></div><div class='del'>- <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy></div><div class='del'>- <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>True</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCList</class></div><div class='del'>- <name>clist1</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <columns>1</columns></div><div class='del'>- <column_widths>80</column_widths></div><div class='del'>- <selection_mode>GTK_SELECTION_SINGLE</selection_mode></div><div class='del'>- <show_titles>True</show_titles></div><div class='del'>- <shadow_type>GTK_SHADOW_NONE</shadow_type></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>CList:title</child_name></div><div class='del'>- <name>label20</name></div><div class='del'>- <label>Phone Types</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeDialog</class></div><div class='del'>- <name>dialog-add-phone</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <title>New phone type</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>False</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>False</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>vbox2</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>hbuttonbox1</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button43</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <has_default>True</has_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Add</label></div><div class='del'>- <stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button44</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkFrame</class></div><div class='del'>- <name>frame-add-phone</name></div><div class='del'>- <border_width>4</border_width></div><div class='del'>- <label>New phone type</label></div><div class='del'>- <label_xalign>0</label_xalign></div><div class='del'>- <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment9</name></div><div class='del'>- <border_width>9</border_width></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>1</xscale></div><div class='del'>- <yscale>1</yscale></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-add-phone</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <has_focus>True</has_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeApp</class></div><div class='del'>- <name>contact editor</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <title>Contact Editor</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>True</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <enable_layout_config>True</enable_layout_config></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GnomeDock</class></div><div class='del'>- <child_name>GnomeApp:dock</child_name></div><div class='del'>- <name>dock1</name></div><div class='del'>- <allow_floating>True</allow_floating></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkNotebook</class></div><div class='del'>- <child_name>GnomeDock:contents</child_name></div><div class='del'>- <name>notebook-contact-editor</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <show_tabs>True</show_tabs></div><div class='del'>- <show_border>True</show_border></div><div class='del'>- <tab_pos>GTK_POS_TOP</tab_pos></div><div class='del'>- <scrollable>False</scrollable></div><div class='del'>- <tab_hborder>2</tab_hborder></div><div class='del'>- <tab_vborder>2</tab_vborder></div><div class='del'>- <popup_enable>False</popup_enable></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table-contact-editor-general</name></div><div class='del'>- <border_width>7</border_width></div><div class='del'>- <rows>14</rows></div><div class='del'>- <columns>8</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>4</row_spacing></div><div class='del'>- <column_spacing>4</column_spacing></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-phone1</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>7</left_attach></div><div class='del'>- <right_attach>8</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-phone2</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>7</left_attach></div><div class='del'>- <right_attach>8</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-phone3</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>7</left_attach></div><div class='del'>- <right_attach>8</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-phone4</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>7</left_attach></div><div class='del'>- <right_attach>8</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkText</class></div><div class='del'>- <name>text-address</name></div><div class='del'>- <width>1</width></div><div class='del'>- <height>1</height></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>7</left_attach></div><div class='del'>- <right_attach>8</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>9</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-fullname</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Full Name...</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment3</name></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>0</xscale></div><div class='del'>- <yscale>1</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>2</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-email1</name></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Placeholder</class></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment5</name></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>0</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>6</left_attach></div><div class='del'>- <right_attach>7</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-phone4</name></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Placeholder</class></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment7</name></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>0</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>6</left_attach></div><div class='del'>- <right_attach>7</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-phone2</name></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Placeholder</class></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment8</name></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>0</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>6</left_attach></div><div class='del'>- <right_attach>7</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-phone1</name></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Placeholder</class></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHSeparator</class></div><div class='del'>- <name>hseparator4</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>4</left_attach></div><div class='del'>- <right_attach>8</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>2</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment6</name></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>0</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>6</left_attach></div><div class='del'>- <right_attach>7</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-phone3</name></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Placeholder</class></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-fullname</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <has_default>True</has_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <has_focus>True</has_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-jobtitle</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-company</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-email1</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-web</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>8</top_attach></div><div class='del'>- <bottom_attach>9</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHSeparator</class></div><div class='del'>- <name>hseparator5</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>2</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCombo</class></div><div class='del'>- <name>combo-file-as</name></div><div class='del'>- <value_in_list>False</value_in_list></div><div class='del'>- <ok_if_empty>True</ok_if_empty></div><div class='del'>- <case_sensitive>True</case_sensitive></div><div class='del'>- <use_arrows>True</use_arrows></div><div class='del'>- <use_arrows_always>False</use_arrows_always></div><div class='del'>- <items></items></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <child_name>GtkCombo:entry</child_name></div><div class='del'>- <name>entry-file-as</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHSeparator</class></div><div class='del'>- <name>hseparator6</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>7</top_attach></div><div class='del'>- <bottom_attach>8</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>2</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment10</name></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0</yalign></div><div class='del'>- <xscale>1</xscale></div><div class='del'>- <yscale>1</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>6</top_attach></div><div class='del'>- <bottom_attach>7</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>True</xshrink></div><div class='del'>- <yshrink>True</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCheckButton</class></div><div class='del'>- <name>checkbutton-htmlmail</name></div><div class='del'>- <label>Wants to receive _HTML mail</label></div><div class='del'>- <active>False</active></div><div class='del'>- <draw_indicator>True</draw_indicator></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment4</name></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>0</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>6</left_attach></div><div class='del'>- <right_attach>7</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-address</name></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Placeholder</class></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEventBox</class></div><div class='del'>- <name>eventbox1</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>5</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-phone1</name></div><div class='del'>- <label>_Business</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-phone1</focus_target></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEventBox</class></div><div class='del'>- <name>eventbox2</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>5</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-phone2</name></div><div class='del'>- <label>_Home</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-phone2</focus_target></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEventBox</class></div><div class='del'>- <name>eventbox3</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>5</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-phone3</name></div><div class='del'>- <label>Business _Fax</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-phone3</focus_target></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEventBox</class></div><div class='del'>- <name>eventbox4</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>5</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-phone4</name></div><div class='del'>- <label>_Mobile</label></div><div class='del'>- <justify>GTK_JUSTIFY_LEFT</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-phone4</focus_target></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEventBox</class></div><div class='del'>- <name>eventbox5</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-email1</name></div><div class='del'>- <label>Primary Email</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-email1</focus_target></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEventBox</class></div><div class='del'>- <name>eventbox-business</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>5</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-address</name></div><div class='del'>- <label>B_usiness</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>text-address</focus_target></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment2</name></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0</yalign></div><div class='del'>- <xscale>0</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>7</left_attach></div><div class='del'>- <right_attach>8</right_attach></div><div class='del'>- <top_attach>9</top_attach></div><div class='del'>- <bottom_attach>10</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCheckButton</class></div><div class='del'>- <name>checkbutton-mailingaddress</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <label>_This is the mailing address</label></div><div class='del'>- <active>False</active></div><div class='del'>- <draw_indicator>True</draw_indicator></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHSeparator</class></div><div class='del'>- <name>hseparator9</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>11</top_attach></div><div class='del'>- <bottom_attach>12</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>2</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHSeparator</class></div><div class='del'>- <name>hseparator10</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>4</left_attach></div><div class='del'>- <right_attach>8</right_attach></div><div class='del'>- <top_attach>11</top_attach></div><div class='del'>- <bottom_attach>12</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment-contacts</name></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>1</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>12</top_attach></div><div class='del'>- <bottom_attach>13</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-contacts</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Contacts...</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment15</name></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>1</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>7</left_attach></div><div class='del'>- <right_attach>8</right_attach></div><div class='del'>- <top_attach>12</top_attach></div><div class='del'>- <bottom_attach>13</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-categories</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment16</name></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>1</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>5</left_attach></div><div class='del'>- <right_attach>7</right_attach></div><div class='del'>- <top_attach>12</top_attach></div><div class='del'>- <bottom_attach>13</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-categories</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>Ca_tegories...</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEventBox</class></div><div class='del'>- <name>eventbox7</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-jobtitle</name></div><div class='del'>- <label>_Job title:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-jobtitle</focus_target></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom1</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>malehead.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:19:47 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom2</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>cellphone.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:20:02 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>4</left_attach></div><div class='del'>- <right_attach>5</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom3</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>envelope.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:19:51 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>7</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom4</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>house.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:20:06 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>4</left_attach></div><div class='del'>- <right_attach>5</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>10</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom5</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>evolution-contacts-plain.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:19:59 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>12</top_attach></div><div class='del'>- <bottom_attach>14</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom6</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>briefcase.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:20:09 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>4</left_attach></div><div class='del'>- <right_attach>5</right_attach></div><div class='del'>- <top_attach>12</top_attach></div><div class='del'>- <bottom_attach>14</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom10</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>globe.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:19:56 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>8</top_attach></div><div class='del'>- <bottom_attach>10</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-company</name></div><div class='del'>- <label>Organi_zation:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-company</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button-fulladdr</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Address...</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- <child></div><div class='del'>- <left_attach>5</left_attach></div><div class='del'>- <right_attach>7</right_attach></div><div class='del'>- <top_attach>6</top_attach></div><div class='del'>- <bottom_attach>7</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment17</name></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>1</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>12</top_attach></div><div class='del'>- <bottom_attach>13</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table-contacts</name></div><div class='del'>- <rows>1</rows></div><div class='del'>- <columns>1</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>0</row_spacing></div><div class='del'>- <column_spacing>0</column_spacing></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>accellabel-fileas</name></div><div class='del'>- <label>File A_s:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-file-as</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>accellabel-web</name></div><div class='del'>- <label>_Web page address:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-web</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>8</top_attach></div><div class='del'>- <bottom_attach>9</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label15</name></div><div class='del'>- <label>General</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table-contact-editor-details</name></div><div class='del'>- <border_width>7</border_width></div><div class='del'>- <rows>9</rows></div><div class='del'>- <columns>6</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>4</row_spacing></div><div class='del'>- <column_spacing>4</column_spacing></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-department</name></div><div class='del'>- <label>_Department:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-department</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-office</name></div><div class='del'>- <label>_Office:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-office</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-profession</name></div><div class='del'>- <label>_Profession:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-profession</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-nickname</name></div><div class='del'>- <label>_Nickname:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-nickname</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-spouse</name></div><div class='del'>- <label>_Spouse:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-spouse</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-birthday</name></div><div class='del'>- <label>_Birthday:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>dateedit-birthday</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-assistant</name></div><div class='del'>- <label>_Assistant's name:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-assistant</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-manager</name></div><div class='del'>- <label>_Manager's Name:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-manager</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-anniversary</name></div><div class='del'>- <label>Anni_versary:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>dateedit-anniversary</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-spouse</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>2</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-department</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>2</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-office</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>2</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-profession</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>2</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-nickname</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>2</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-assistant</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>4</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-manager</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>4</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHSeparator</class></div><div class='del'>- <name>hseparator7</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>2</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-comments</name></div><div class='del'>- <label>No_tes:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>text-comments</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>7</top_attach></div><div class='del'>- <bottom_attach>8</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHSeparator</class></div><div class='del'>- <name>hseparator8</name></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>6</top_attach></div><div class='del'>- <bottom_attach>7</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom7</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>briefcase.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:20:13 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom8</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>malehead.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:20:16 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkScrolledWindow</class></div><div class='del'>- <name>scrolledwindow2</name></div><div class='del'>- <hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy></div><div class='del'>- <vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy></div><div class='del'>- <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy></div><div class='del'>- <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>8</top_attach></div><div class='del'>- <bottom_attach>9</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>True</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkText</class></div><div class='del'>- <name>text-comments</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text></text></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom9</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>globe.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:20:19 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>7</top_attach></div><div class='del'>- <bottom_attach>9</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>dateedit-birthday</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <creation_function>e_contact_editor_create_date</creation_function></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Tue, 05 Jun 2001 02:36:27 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>4</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>dateedit-anniversary</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <creation_function>e_contact_editor_create_date</creation_function></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Tue, 05 Jun 2001 02:36:32 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>4</left_attach></div><div class='del'>- <right_attach>6</right_attach></div><div class='del'>- <top_attach>5</top_attach></div><div class='del'>- <bottom_attach>6</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label16</name></div><div class='del'>- <label>Details</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox3</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>0</spacing></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHBox</class></div><div class='del'>- <name>hbox1</name></div><div class='del'>- <border_width>7</border_width></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>4</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom12</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>globe.png</string1></div><div class='del'>- <string2></string2></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Thu, 18 May 2000 12:20:13 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label24</name></div><div class='del'>- <label>If this person publishes free/busy or other calendar information on the Internet, enter the address</div><div class='del'>-of that information here.</label></div><div class='del'>- <justify>GTK_JUSTIFY_LEFT</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>7.45058e-09</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment18</name></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xscale>0.75</xscale></div><div class='del'>- <yscale>1</yscale></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table-contact-editor-collaboration</name></div><div class='del'>- <border_width>7</border_width></div><div class='del'>- <rows>2</rows></div><div class='del'>- <columns>2</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>4</row_spacing></div><div class='del'>- <column_spacing>4</column_spacing></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label22</name></div><div class='del'>- <label>_Public Calendar URL:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-caluri</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label23</name></div><div class='del'>- <label>F_ree/Busy URL:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-fburl</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-caluri</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-fburl</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <child_name>Notebook:tab</child_name></div><div class='del'>- <name>label21</name></div><div class='del'>- <label>Collaboration</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GnomeAppBar</class></div><div class='del'>- <child_name>GnomeApp:appbar</child_name></div><div class='del'>- <name>appbar1</name></div><div class='del'>- <has_progress>True</has_progress></div><div class='del'>- <has_status>True</has_status></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-</GTK-Interface></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&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 <clahey@ximian.com></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'>-#include <libgnomeui/gnome-stock.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-#include <e-contact-editor-address.h></div><div class='del'>-#include <gtk/gtkcombo.h></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 (), &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->set_arg = e_contact_editor_address_set_arg;</div><div class='del'>- object_class->get_arg = e_contact_editor_address_get_arg;</div><div class='del'>- object_class->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->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->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->parent), widget);</div><div class='del'>- gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (e_contact_editor_address)->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->gui)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(e_contact_editor_address->gui));</div><div class='del'>- e_card_delivery_address_unref(e_contact_editor_address->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->address);</div><div class='del'>- e_contact_editor_address->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->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->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->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)->entry),</div><div class='del'>- e_contact_editor_address->editable);</div><div class='del'>- gtk_widget_set_sensitive (GTK_COMBO (w)->button, e_contact_editor_address->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->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->editable ? TRUE : FALSE;</div><div class='del'>- break;</div><div class='del'>- default:</div><div class='del'>- arg->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->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->address;</div><div class='del'>- if (address) {</div><div class='del'>- fill_in_field(editor, "entry-street" , address->street );</div><div class='del'>- fill_in_field(editor, "entry-po" , address->po );</div><div class='del'>- fill_in_field(editor, "entry-ext" , address->ext );</div><div class='del'>- fill_in_field(editor, "entry-city" , address->city );</div><div class='del'>- fill_in_field(editor, "entry-region" , address->region );</div><div class='del'>- fill_in_field(editor, "entry-code" , address->code );</div><div class='del'>- fill_in_field(editor, "entry-country", address->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->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->address;</div><div class='del'>- if (!address) {</div><div class='del'>- address = e_card_delivery_address_new();</div><div class='del'>- editor->address = address;</div><div class='del'>- }</div><div class='del'>- address->street = extract_field(editor, "entry-street" );</div><div class='del'>- address->po = extract_field(editor, "entry-po" );</div><div class='del'>- address->ext = extract_field(editor, "entry-ext" );</div><div class='del'>- address->city = extract_field(editor, "entry-city" );</div><div class='del'>- address->region = extract_field(editor, "entry-region" );</div><div class='del'>- address->code = extract_field(editor, "entry-code" );</div><div class='del'>- address->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&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 <clahey@ximian.com></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 <libgnomeui/gnome-dialog.h></div><div class='del'>-#include <glade/glade.h></div><div class='del'>-#include <ebook/e-card.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'>-/* 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&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'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <name>e-contact-editor-confirm-delete</name></div><div class='del'>- <program_name>e-contact-editor-confirm-delete</program_name></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>- <use_widget_names>True</use_widget_names></div><div class='del'>- <output_main_file>False</output_main_file></div><div class='del'>- <output_support_files>False</output_support_files></div><div class='del'>- <output_build_files>False</output_build_files></div><div class='del'>- <gnome_help_support>True</gnome_help_support></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeMessageBox</class></div><div class='del'>- <name>confirm-dialog</name></div><div class='del'>- <message_box_type>GNOME_MESSAGE_BOX_QUESTION</message_box_type></div><div class='del'>- <message>Are you sure you want</div><div class='del'>-to delete this contact?</message></div><div class='del'>- <title>Delete Contact?</title></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>False</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>True</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>dialog-vbox1</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>dialog-action_area1</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button1</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_OK</stock_button></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button2</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-</GTK-Interface></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&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 <clahey@ximian.com></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'>-#include <libgnomeui/gnome-stock.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-#include "e-contact-editor-fullname.h"</div><div class='del'>-#include <gtk/gtkcombo.h></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 (), &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->set_arg = e_contact_editor_fullname_set_arg;</div><div class='del'>- object_class->get_arg = e_contact_editor_fullname_get_arg;</div><div class='del'>- object_class->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->name = NULL;</div><div class='del'>- gui = glade_xml_new (EVOLUTION_GLADEDIR "/fullname.glade", NULL);</div><div class='del'>- e_contact_editor_fullname->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->parent), widget);</div><div class='del'>- gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (e_contact_editor_fullname)->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->gui)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(e_contact_editor_fullname->gui));</div><div class='del'>- e_card_name_unref(e_contact_editor_fullname->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->name);</div><div class='del'>- e_contact_editor_fullname->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->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->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->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)->entry),</div><div class='del'>- e_contact_editor_fullname->editable);</div><div class='del'>- gtk_widget_set_sensitive (GTK_COMBO (w)->button, e_contact_editor_fullname->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->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->editable ? TRUE : FALSE;</div><div class='del'>- break;</div><div class='del'>- default:</div><div class='del'>- arg->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->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->name;</div><div class='del'>- if (name) {</div><div class='del'>- fill_in_field(editor, "entry-title", name->prefix);</div><div class='del'>- fill_in_field(editor, "entry-first", name->given);</div><div class='del'>- fill_in_field(editor, "entry-middle", name->additional);</div><div class='del'>- fill_in_field(editor, "entry-last", name->family);</div><div class='del'>- fill_in_field(editor, "entry-suffix", name->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->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->name;</div><div class='del'>- if (!name) {</div><div class='del'>- name = e_card_name_new();</div><div class='del'>- editor->name = name;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- name->prefix = extract_field(editor, "entry-title" );</div><div class='del'>- name->given = extract_field(editor, "entry-first" );</div><div class='del'>- name->additional = extract_field(editor, "entry-middle");</div><div class='del'>- name->family = extract_field(editor, "entry-last" );</div><div class='del'>- name->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&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 <clahey@ximian.com></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 <libgnomeui/gnome-dialog.h></div><div class='del'>-#include <glade/glade.h></div><div class='del'>-#include <ebook/e-card.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'>-/* 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&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 <clahey@ximian.com></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 <time.h></div><div class='del'>-#include <gtk/gtkcheckbutton.h></div><div class='del'>-#include <gtk/gtkcheckmenuitem.h></div><div class='del'>-#include <gtk/gtkcombo.h></div><div class='del'>-#include <gtk/gtktext.h></div><div class='del'>-#include <libgnomeui/gnome-popup-menu.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-</div><div class='del'>-#include <bonobo/bonobo-ui-container.h></div><div class='del'>-#include <bonobo/bonobo-ui-util.h></div><div class='del'>-#include <gdk-pixbuf/gdk-pixbuf.h></div><div class='del'>-#include <gdk-pixbuf/gnome-canvas-pixbuf.h></div><div class='del'>-#include <gal/widgets/e-categories.h></div><div class='del'>-#include <gal/widgets/e-gui-utils.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-#include <gal/e-text/e-entry.h></div><div class='del'>-</div><div class='del'>-#include <e-util/e-categories-master-list-wombat.h></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, &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->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->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->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->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->set_arg = e_contact_editor_set_arg;</div><div class='del'>- object_class->get_arg = e_contact_editor_get_arg;</div><div class='del'>- object_class->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->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 && 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", &wants_html,</div><div class='del'>- NULL);</div><div class='del'>- gtk_object_set(GTK_OBJECT(editor->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->gui, "entry-phone1") ) {</div><div class='del'>- which = 1;</div><div class='del'>- } else if ( widget == glade_xml_get_widget(editor->gui, "entry-phone2") ) {</div><div class='del'>- which = 2;</div><div class='del'>- } else if ( widget == glade_xml_get_widget(editor->gui, "entry-phone3") ) {</div><div class='del'>- which = 3;</div><div class='del'>- } else if ( widget == glade_xml_get_widget(editor->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->number = e_utf8_gtk_entry_get_text(entry);</div><div class='del'>- e_card_simple_set_phone(editor->simple, editor->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->simple, editor->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->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->data = e_utf8_gtk_editable_get_chars(editable, 0, -1);</div><div class='del'>-</div><div class='del'>- e_card_simple_set_address(editor->simple, editor->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 && *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 && *company && name && ((name->given && *name->given) || (name->family && *name->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->family && *name->family)</div><div class='del'>- *(stringptr++) = name->family;</div><div class='del'>- if (name->given && *name->given)</div><div class='del'>- *(stringptr++) = name->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->given && *name->given)</div><div class='del'>- *(stringptr++) = name->given;</div><div class='del'>- if (name->family && *name->family)</div><div class='del'>- *(stringptr++) = name->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->family && *name->family)</div><div class='del'>- *(stringptr++) = name->family;</div><div class='del'>- if (name->given && *name->given)</div><div class='del'>- *(stringptr++) = name->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 && *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->gui, "entry-file-as"));</div><div class='del'>- char *filestring;</div><div class='del'>- char *trystring;</div><div class='del'>- ECardName *name = editor->name;</div><div class='del'>- int i;</div><div class='del'>- int style;</div><div class='del'>-</div><div class='del'>- if (!(file_as && 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 < 5; i++) {</div><div class='del'>- trystring = name_to_style(name, editor->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->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 && 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->gui, "combo-file-as");</div><div class='del'>-</div><div class='del'>- for (i = 0; i < 5; i++) {</div><div class='del'>- if (style_makes_sense(editor->name, editor->company, i)) {</div><div class='del'>- char *u;</div><div class='del'>- u = name_to_style(editor->name, editor->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 && 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->name, editor->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->name);</div><div class='del'>-</div><div class='del'>- string = e_utf8_gtk_entry_get_text (GTK_ENTRY(widget));</div><div class='del'>- editor->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->company);</div><div class='del'>- </div><div class='del'>- editor->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->changed) {</div><div class='del'>- editor->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->gui, id);</div><div class='del'>- if (widget && 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->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->changed) {</div><div class='del'>- editor->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->gui, id);</div><div class='del'>- if (widget && 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->gui, "entry-email1");</div><div class='del'>- if (widget && 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->gui, "text-address");</div><div class='del'>- if (widget && 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->gui, "entry-fullname");</div><div class='del'>- if (widget && 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->gui, "entry-company");</div><div class='del'>- if (widget && 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->gui, "entry-web");</div><div class='del'>- if (widget && 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->gui, "entry-categories");</div><div class='del'>- if (widget && 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->gui, "entry-jobtitle");</div><div class='del'>- if (widget && 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->gui, "entry-file-as");</div><div class='del'>- if (widget && 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->gui, "entry-manager");</div><div class='del'>- if (widget && 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->gui, "entry-assistant");</div><div class='del'>- if (widget && 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->gui, "entry-office");</div><div class='del'>- if (widget && 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->gui, "entry-department");</div><div class='del'>- if (widget && 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->gui, "entry-profession");</div><div class='del'>- if (widget && 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->gui, "entry-nickname");</div><div class='del'>- if (widget && 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->gui, "entry-spouse");</div><div class='del'>- if (widget && 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->gui, "text-comments");</div><div class='del'>- if (widget && 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->gui, "dateedit-birthday");</div><div class='del'>- if (widget && 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->gui, "dateedit-anniversary");</div><div class='del'>- if (widget && 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->gui, "entry-web");</div><div class='del'>- if (widget && 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->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->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", &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->gui, "entry-fullname");</div><div class='del'>- if (fname_widget && 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->name);</div><div class='del'>- editor->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->simple, editor->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->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", &new_address,</div><div class='del'>- NULL);</div><div class='del'>-</div><div class='del'>- address_widget = glade_xml_get_widget(editor->gui, "text-address");</div><div class='del'>- if (address_widget && 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->simple, editor->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->simple, editor->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->gui, "entry-categories");</div><div class='del'>- ECategoriesMasterList *ecml;</div><div class='del'>- if (entry && 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->card)</div><div class='del'>- gtk_object_get(GTK_OBJECT(editor->card),</div><div class='del'>- "categories", &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", &categories,</div><div class='del'>- NULL);</div><div class='del'>- if (entry && 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->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->select_names_contacts == NULL) {</div><div class='del'>- editor->select_names_contacts = e_select_names_manager_new ();</div><div class='del'>- e_select_names_manager_add_section (editor->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->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->gui, "table-contacts");</div><div class='del'>- if (table && 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->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->ce;</div><div class='del'>- gboolean should_close = ecs->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->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->card);</div><div class='del'>-</div><div class='del'>- if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>- ce->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->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->ce;</div><div class='del'>- gboolean should_close = ecs->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->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->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->simple);</div><div class='del'>-</div><div class='del'>- if (ce->book) {</div><div class='del'>- EditorCloseStruct *ecs = g_new(EditorCloseStruct, 1);</div><div class='del'>- </div><div class='del'>- ecs->ce = ce;</div><div class='del'>- ecs->should_close = should_close;</div><div class='del'>-</div><div class='del'>- if (ce->is_new_card)</div><div class='del'>- e_card_merging_book_add_card (ce->book, ce->card, GTK_SIGNAL_FUNC(card_added_cb), ecs);</div><div class='del'>- else</div><div class='del'>- e_card_merging_book_commit_card (ce->book, ce->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->app != NULL);</div><div class='del'>-</div><div class='del'>- gtk_widget_destroy (ce->app);</div><div class='del'>- ce->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->simple);</div><div class='del'>-</div><div class='del'>- card = ce->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->simple);</div><div class='del'>-</div><div class='del'>- card = ce->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->simple);</div><div class='del'>-</div><div class='del'>- card = ce->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->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->card;</div><div class='del'>- ECardSimple *simple = ce->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->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->is_new_card && ce->book)</div><div class='del'>- e_book_remove_card (ce->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->simple);</div><div class='del'>-</div><div class='del'>- gtk_widget_show(e_contact_print_card_dialog_new(ce->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->simple);</div><div class='del'>-</div><div class='del'>- gtk_widget_show(e_contact_print_envelope_dialog_new(ce->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->uic, verbs, ce);</div><div class='del'>-</div><div class='del'>- bonobo_ui_util_set_ui (ce->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->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->email_info = NULL;</div><div class='del'>- e_contact_editor->phone_info = NULL;</div><div class='del'>- e_contact_editor->address_info = NULL;</div><div class='del'>- e_contact_editor->email_popup = NULL;</div><div class='del'>- e_contact_editor->phone_popup = NULL;</div><div class='del'>- e_contact_editor->address_popup = NULL;</div><div class='del'>- e_contact_editor->email_list = NULL;</div><div class='del'>- e_contact_editor->phone_list = NULL;</div><div class='del'>- e_contact_editor->address_list = NULL;</div><div class='del'>- e_contact_editor->name = e_card_name_new();</div><div class='del'>- e_contact_editor->company = g_strdup("");</div><div class='del'>- </div><div class='del'>- e_contact_editor->email_choice = 0;</div><div class='del'>- e_contact_editor->phone_choice[0] = E_CARD_SIMPLE_PHONE_ID_BUSINESS;</div><div class='del'>- e_contact_editor->phone_choice[1] = E_CARD_SIMPLE_PHONE_ID_HOME;</div><div class='del'>- e_contact_editor->phone_choice[2] = E_CARD_SIMPLE_PHONE_ID_BUSINESS_FAX;</div><div class='del'>- e_contact_editor->phone_choice[3] = E_CARD_SIMPLE_PHONE_ID_MOBILE;</div><div class='del'>- e_contact_editor->address_choice = 0;</div><div class='del'>-</div><div class='del'>- e_contact_editor->arbitrary_fields = NULL;</div><div class='del'>- </div><div class='del'>- e_contact_editor->simple = e_card_simple_new(NULL);</div><div class='del'>-</div><div class='del'>- e_contact_editor->card = NULL;</div><div class='del'>- e_contact_editor->changed = FALSE;</div><div class='del'>- e_contact_editor->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->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->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->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->gui, "checkbutton-htmlmail");</div><div class='del'>- if (wants_html && 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->gui, "button-fullname");</div><div class='del'>- if (widget && 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->gui, "button-fulladdr");</div><div class='del'>- if (widget && 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->gui, "button-categories");</div><div class='del'>- if (widget && 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->gui, "button-contacts");</div><div class='del'>- if (widget && 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->app)->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->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->app);</div><div class='del'>- e_contact_editor->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->app));</div><div class='del'>-</div><div class='del'>- e_contact_editor->uic = bonobo_ui_component_new_default ();</div><div class='del'>- if (!e_contact_editor->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->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->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->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->writable_fields) {</div><div class='del'>- gtk_object_unref(GTK_OBJECT(e_contact_editor->writable_fields));</div><div class='del'>- }</div><div class='del'>- if (e_contact_editor->email_list) {</div><div class='del'>- g_list_foreach(e_contact_editor->email_list, (GFunc) g_free, NULL);</div><div class='del'>- g_list_free(e_contact_editor->email_list);</div><div class='del'>- }</div><div class='del'>- if (e_contact_editor->email_info) {</div><div class='del'>- g_free(e_contact_editor->email_info);</div><div class='del'>- }</div><div class='del'>- if (e_contact_editor->email_popup) {</div><div class='del'>- gtk_widget_unref(e_contact_editor->email_popup);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (e_contact_editor->phone_list) {</div><div class='del'>- g_list_foreach(e_contact_editor->phone_list, (GFunc) g_free, NULL);</div><div class='del'>- g_list_free(e_contact_editor->phone_list);</div><div class='del'>- }</div><div class='del'>- if (e_contact_editor->phone_info) {</div><div class='del'>- g_free(e_contact_editor->phone_info);</div><div class='del'>- }</div><div class='del'>- if (e_contact_editor->phone_popup) {</div><div class='del'>- gtk_widget_unref(e_contact_editor->phone_popup);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (e_contact_editor->address_list) {</div><div class='del'>- g_list_foreach(e_contact_editor->address_list, (GFunc) g_free, NULL);</div><div class='del'>- g_list_free(e_contact_editor->address_list);</div><div class='del'>- }</div><div class='del'>- if (e_contact_editor->address_info) {</div><div class='del'>- g_free(e_contact_editor->address_info);</div><div class='del'>- }</div><div class='del'>- if (e_contact_editor->address_popup) {</div><div class='del'>- gtk_widget_unref(e_contact_editor->address_popup);</div><div class='del'>- }</div><div class='del'>- </div><div class='del'>- if (e_contact_editor->simple)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(e_contact_editor->simple));</div><div class='del'>-</div><div class='del'>- if (e_contact_editor->book)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(e_contact_editor->book));</div><div class='del'>-</div><div class='del'>- e_card_name_unref(e_contact_editor->name);</div><div class='del'>- g_free (e_contact_editor->company);</div><div class='del'>-</div><div class='del'>- gtk_object_unref(GTK_OBJECT(e_contact_editor->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->uic,</div><div class='del'>- "/commands/ContactEditorSaveClose",</div><div class='del'>- "sensitive",</div><div class='del'>- ce->changed ? "1" : "0", NULL);</div><div class='del'>- bonobo_ui_component_set_prop (ce->uic,</div><div class='del'>- "/commands/ContactEditorSave",</div><div class='del'>- "sensitive",</div><div class='del'>- ce->changed ? "1" : "0", NULL);</div><div class='del'>- bonobo_ui_component_set_prop (ce->uic,</div><div class='del'>- "/commands/ContactEditorDelete",</div><div class='del'>- "sensitive",</div><div class='del'>- (ce->editable && !ce->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->book)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(editor->book));</div><div class='del'>- editor->book = E_BOOK(GTK_VALUE_OBJECT (*arg));</div><div class='del'>- gtk_object_ref (GTK_OBJECT (editor->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->card)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(editor->card));</div><div class='del'>- editor->card = e_card_duplicate(E_CARD(GTK_VALUE_OBJECT (*arg)));</div><div class='del'>- gtk_object_set(GTK_OBJECT(editor->simple),</div><div class='del'>- "card", editor->card,</div><div class='del'>- NULL);</div><div class='del'>- fill_in_info(editor);</div><div class='del'>- editor->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->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->editable != new_value);</div><div class='del'>-</div><div class='del'>- editor->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->changed != new_value);</div><div class='del'>-</div><div class='del'>- editor->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->writable_fields)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(editor->writable_fields));</div><div class='del'>- editor->writable_fields = GTK_VALUE_POINTER (*arg);</div><div class='del'>- if (editor->writable_fields)</div><div class='del'>- gtk_object_ref (GTK_OBJECT (editor->writable_fields));</div><div class='del'>- else</div><div class='del'>- editor->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->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->simple);</div><div class='del'>- extract_info(e_contact_editor);</div><div class='del'>- GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(e_contact_editor->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->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->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->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->writable_fields)</div><div class='del'>- GTK_VALUE_POINTER (*arg) = e_list_duplicate (e_contact_editor->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->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->window, x, y);</div><div class='del'>- *x += button->allocation.width;</div><div class='del'>- *y += button->allocation.height;</div><div class='del'>-</div><div class='del'>- gtk_widget_size_request(GTK_WIDGET(menu), &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 < 0)</div><div class='del'>- *x = 0;</div><div class='del'>- </div><div class='del'>- if (*y < 0)</div><div class='del'>- *y = 0;</div><div class='del'>- </div><div class='del'>- if ((*x + mw) > gdk_screen_width ())</div><div class='del'>- *x = gdk_screen_width () - mw;</div><div class='del'>- </div><div class='del'>- if ((*y + mh) > 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->gui, label);</div><div class='del'>- if (label_widget && 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 < length; i++) {</div><div class='del'>- info[i] = singleton;</div><div class='del'>- info[i].label = _(list->data);</div><div class='del'>- list = list->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->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 < sizeof(info) / sizeof(info[0]); i++) {</div><div class='del'>- editor->phone_list = g_list_append(editor->phone_list, g_strdup(info[i]));</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- if (editor->phone_info == NULL) {</div><div class='del'>- e_contact_editor_build_ui_info(editor->phone_list, &editor->phone_info);</div><div class='del'>- </div><div class='del'>- if ( editor->phone_popup )</div><div class='del'>- gtk_widget_unref(editor->phone_popup);</div><div class='del'>- </div><div class='del'>- editor->phone_popup = gnome_popup_menu_new(editor->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->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 < sizeof(info) / sizeof(info[0]); i++) {</div><div class='del'>- editor->email_list = g_list_append(editor->email_list, g_strdup(info[i]));</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- if (editor->email_info == NULL) {</div><div class='del'>- e_contact_editor_build_ui_info(editor->email_list, &editor->email_info);</div><div class='del'>-</div><div class='del'>- if ( editor->email_popup )</div><div class='del'>- gtk_widget_unref(editor->email_popup);</div><div class='del'>- </div><div class='del'>- editor->email_popup = gnome_popup_menu_new(editor->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->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 < sizeof(info) / sizeof(info[0]); i++) {</div><div class='del'>- editor->address_list = g_list_append(editor->address_list, g_strdup(info[i]));</div><div class='del'>- }</div><div class='del'>- }</div><div class='del'>- if (editor->address_info == NULL) {</div><div class='del'>- e_contact_editor_build_ui_info(editor->address_list, &editor->address_info);</div><div class='del'>-</div><div class='del'>- if ( editor->address_popup )</div><div class='del'>- gtk_widget_unref(editor->address_popup);</div><div class='del'>- </div><div class='del'>- editor->address_popup = gnome_popup_menu_new(editor->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 && 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->gui, entry_id);</div><div class='del'>- GtkWidget *label = glade_xml_get_widget(editor->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)->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->gui, "button-phone1") ) {</div><div class='del'>- which = 1;</div><div class='del'>- } else if ( widget == glade_xml_get_widget(editor->gui, "button-phone2") ) {</div><div class='del'>- which = 2;</div><div class='del'>- } else if ( widget == glade_xml_get_widget(editor->gui, "button-phone3") ) {</div><div class='del'>- which = 3;</div><div class='del'>- } else if ( widget == glade_xml_get_widget(editor->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 < E_CARD_SIMPLE_PHONE_ID_LAST; i++) {</div><div class='del'>- const ECardPhone *phone = e_card_simple_get_phone(editor->simple, i);</div><div class='del'>- gboolean checked;</div><div class='del'>- checked = phone && phone->number && *phone->number;</div><div class='del'>- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(editor->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->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->phone_popup, &editor->phone_list, &editor->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->phone_choice[which - 1] = result;</div><div class='del'>- set_fields(editor);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, label), TRUE);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, entry), editor->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 < E_CARD_SIMPLE_EMAIL_ID_LAST; i++) {</div><div class='del'>- const char *string = e_card_simple_get_email(editor->simple, i);</div><div class='del'>- gboolean checked;</div><div class='del'>- checked = string && *string;</div><div class='del'>- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(editor->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->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->email_popup, &editor->email_list, &editor->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->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->gui, "label-email1"), TRUE);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "entry-email1"), editor->editable);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "checkbutton-htmlmail"), editor->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 < E_CARD_SIMPLE_ADDRESS_ID_LAST; i++) {</div><div class='del'>- const ECardAddrLabel *address = e_card_simple_get_address(editor->simple, i);</div><div class='del'>- gboolean checked;</div><div class='del'>- checked = address && address->data && *address->data;</div><div class='del'>- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(editor->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->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->address_popup, &editor->address_list, &editor->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->gui, "label-address"), TRUE);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "text-address"), editor->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->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->gui, "entry-phone1");</div><div class='del'>- if (entry && GTK_IS_ENTRY(entry))</div><div class='del'>- set_phone_field(entry, e_card_simple_get_phone(editor->simple, editor->phone_choice[0]));</div><div class='del'>-</div><div class='del'>- entry = glade_xml_get_widget(editor->gui, "entry-phone2");</div><div class='del'>- if (entry && GTK_IS_ENTRY(entry))</div><div class='del'>- set_phone_field(entry, e_card_simple_get_phone(editor->simple, editor->phone_choice[1]));</div><div class='del'>-</div><div class='del'>- entry = glade_xml_get_widget(editor->gui, "entry-phone3");</div><div class='del'>- if (entry && GTK_IS_ENTRY(entry))</div><div class='del'>- set_phone_field(entry, e_card_simple_get_phone(editor->simple, editor->phone_choice[2]));</div><div class='del'>-</div><div class='del'>- entry = glade_xml_get_widget(editor->gui, "entry-phone4");</div><div class='del'>- if (entry && GTK_IS_ENTRY(entry))</div><div class='del'>- set_phone_field(entry, e_card_simple_get_phone(editor->simple, editor->phone_choice[3]));</div><div class='del'>- </div><div class='del'>- entry = glade_xml_get_widget(editor->gui, "entry-email1");</div><div class='del'>- if (entry && GTK_IS_ENTRY(entry))</div><div class='del'>- set_field(GTK_ENTRY(entry), e_card_simple_get_email(editor->simple, editor->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->gui, "text-address");</div><div class='del'>-</div><div class='del'>- if (widget && 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->address_choice;</div><div class='del'>- editor->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->simple, result);</div><div class='del'>- if (address && address->data) {</div><div class='del'>- gchar *u = e_utf8_to_gtk_string ((GtkWidget *) editable, address->data);</div><div class='del'>- gtk_editable_insert_text(editable, u, strlen(u), &position);</div><div class='del'>- g_free (u);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- editor->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->arbitrary_fields = g_list_prepend(editor->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->gui, id);</div><div class='del'>- if (widget && 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), &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, &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->simple;</div><div class='del'>- GtkWidget *widget = glade_xml_get_widget(editor->gui, name);</div><div class='del'>- if (widget && 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 && arbitrary->value) {</div><div class='del'>- gchar *u = e_utf8_to_gtk_string ((GtkWidget *) editable, arbitrary->value);</div><div class='del'>- gtk_editable_insert_text(editable, u, strlen(u), &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->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 < 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->phone_info[i].widget);</div><div class='del'>- e_contact_editor_build_email_ui (editor);</div><div class='del'>- for (i = 0; i < 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->email_info[i].widget);</div><div class='del'>- e_contact_editor_build_address_ui (editor);</div><div class='del'>- for (i = 0; i < 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->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 < 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->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->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->gui, "label-email1"), FALSE);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "entry-email1"), FALSE);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "checkbutton-htmlmail"), FALSE);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "label-address"), FALSE);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->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->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->email_choice)))) {</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "label-email1"), TRUE);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "entry-email1"), editor->editable);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "checkbutton-htmlmail"), editor->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->address_choice)))) {</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "label-address"), TRUE);</div><div class='del'>- enable_widget (glade_xml_get_widget (editor->gui, "text-address"), editor->editable);</div><div class='del'>- }</div><div class='del'>- else for (i = 0; i < 4; i ++) {</div><div class='del'>- if (!strcmp (field, e_card_simple_get_ecard_field (simple, e_card_simple_map_phone_to_field(editor->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->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->gui, widget_name), editor->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 < 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->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 < 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->gui, widget_field_mappings[i].widget_name);</div><div class='del'>- enable_widget (widget, editor->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 < 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->gui, entry),</div><div class='del'>- editor->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->gui, entry),</div><div class='del'>- editor->editable);</div><div class='del'>- enable_widget (glade_xml_get_widget(editor->gui, "checkbutton-htmlmail"),</div><div class='del'>- editor->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->gui, entry),</div><div class='del'>- editor->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->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", &file_as,</div><div class='del'>- "related_contacts", &related_contacts,</div><div class='del'>- "name", &name,</div><div class='del'>- "anniversary", &anniversary,</div><div class='del'>- "birth_date", &bday,</div><div class='del'>- "wants_html_set", &wants_html_set,</div><div class='del'>- "wants_html", &wants_html,</div><div class='del'>- NULL);</div><div class='del'>- </div><div class='del'>- for (i = 0; i < 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->arbitrary_fields; list; list = list->next) {</div><div class='del'>- fill_in_single_field(editor, list->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->gui, "checkbutton-htmlmail");</div><div class='del'>- if (widget && 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->name);</div><div class='del'>- editor->name = e_card_name_ref(name);</div><div class='del'>-</div><div class='del'>- widget = glade_xml_get_widget(editor->gui, "dateedit-anniversary");</div><div class='del'>- if (widget && 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->year,</div><div class='del'>- anniversary->month,</div><div class='del'>- anniversary->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->gui, "dateedit-birthday");</div><div class='del'>- if (widget && 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->year,</div><div class='del'>- bday->month,</div><div class='del'>- bday->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->select_names_contacts && related_contacts && *related_contacts) {</div><div class='del'>- ESelectNamesModel *model = e_select_names_manager_get_source (editor->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->gui, editable_id);</div><div class='del'>- if (widget && 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 && *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->gui, name);</div><div class='del'>- ECardSimple *simple = editor->simple;</div><div class='del'>- if (widget && 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 && *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->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->gui, "entry-file-as");</div><div class='del'>- if (widget && 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 && *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 < 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->arbitrary_fields; list; list = list->next) {</div><div class='del'>- extract_single_field(editor, list->data);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (editor->select_names_contacts) {</div><div class='del'>- ESelectNamesModel *model = e_select_names_manager_get_source (editor->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 && *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->name)</div><div class='del'>- gtk_object_set(GTK_OBJECT(card),</div><div class='del'>- "name", editor->name,</div><div class='del'>- NULL);</div><div class='del'>-</div><div class='del'>- widget = glade_xml_get_widget(editor->gui, "dateedit-anniversary");</div><div class='del'>- if (widget && E_IS_DATE_EDIT(widget)) {</div><div class='del'>- if (e_date_edit_get_date (E_DATE_EDIT (widget),</div><div class='del'>- &anniversary.year,</div><div class='del'>- &anniversary.month,</div><div class='del'>- &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", &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->gui, "dateedit-birthday");</div><div class='del'>- if (widget && E_IS_DATE_EDIT(widget)) {</div><div class='del'>- if (e_date_edit_get_date (E_DATE_EDIT (widget),</div><div class='del'>- &bday.year,</div><div class='del'>- &bday.month,</div><div class='del'>- &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", &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->app)->window)</div><div class='del'>- gdk_window_raise (GTK_WIDGET (editor->app)->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->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)->entry),</div><div class='del'>- enabled);</div><div class='del'>- gtk_widget_set_sensitive (GTK_COMBO (widget)->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&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 <clahey@ximian.com></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 <libgnomeui/gnome-app.h></div><div class='del'>-#include <libgnomeui/gnome-app-helper.h></div><div class='del'>-#include <bonobo/bonobo-ui-component.h></div><div class='del'>-#include <glade/glade.h></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&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 <trow@ximian.com></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 <config.h></div><div class='del'>-#include <ctype.h></div><div class='del'>-#include <glib.h></div><div class='del'>-#include <gtk/gtkentry.h></div><div class='del'>-#include <gtk/gtklabel.h></div><div class='del'>-#include <gtk/gtktable.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <libgnomeui/gnome-app.h></div><div class='del'>-#include <libgnomeui/gnome-dialog.h></div><div class='del'>-#include <libgnomeui/gnome-stock.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book.h></div><div class='del'>-#include <addressbook/backend/ebook/e-book-util.h></div><div class='del'>-#include <addressbook/backend/ebook/e-card.h></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->card = e_card_new ("");</div><div class='del'>- qa->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->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->refs;</div><div class='del'>- if (qa->refs == 0) {</div><div class='del'>- g_free (qa->name);</div><div class='del'>- g_free (qa->email);</div><div class='del'>- gtk_object_unref (GTK_OBJECT (qa->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->name)</div><div class='del'>- return;</div><div class='del'>-</div><div class='del'>- g_free (qa->name);</div><div class='del'>- qa->name = g_strdup (name);</div><div class='del'>-</div><div class='del'>- simple = e_card_simple_new (qa->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->email)</div><div class='del'>- return;</div><div class='del'>-</div><div class='del'>- g_free (qa->email);</div><div class='del'>- qa->email = g_strdup (email);</div><div class='del'>-</div><div class='del'>- simple = e_card_simple_new (qa->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->card, NULL, NULL);</div><div class='del'>- if (qa->cb)</div><div class='del'>- qa->cb (qa->card, qa->closure);</div><div class='del'>- } else {</div><div class='del'>- /* Something went wrong. */</div><div class='del'>- if (qa->cb)</div><div class='del'>- qa->cb (NULL, qa->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->cb)</div><div class='del'>- qa->cb (qa->card, qa->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->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->name_entry) {</div><div class='del'>- gchar *tmp;</div><div class='del'>- tmp = gtk_editable_get_chars (GTK_EDITABLE (qa->name_entry), 0, -1);</div><div class='del'>- name = e_utf8_from_gtk_string (qa->name_entry, tmp);</div><div class='del'>- g_free (tmp);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (qa->email_entry) {</div><div class='del'>- gchar *tmp;</div><div class='del'>- tmp = gtk_editable_get_chars (GTK_EDITABLE (qa->email_entry), 0, -1);</div><div class='del'>- email = e_utf8_from_gtk_string (qa->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->name_entry = gtk_entry_new ();</div><div class='del'>- if (qa->name) {</div><div class='del'>- gchar *str = e_utf8_to_gtk_string (qa->name_entry, qa->name);</div><div class='del'>- gtk_entry_set_text (GTK_ENTRY (qa->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->email_entry = gtk_entry_new ();</div><div class='del'>- if (qa->email) {</div><div class='del'>- gchar *str = e_utf8_to_gtk_string (qa->email_entry, qa->email);</div><div class='del'>- gtk_entry_set_text (GTK_ENTRY (qa->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->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->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)->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 && 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] == '\'' && name[len-1] == '\'') || (name[0] == '"' && 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->cb = cb;</div><div class='del'>- qa->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 == '@' && !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 < or a quote... */</div><div class='del'>- while (last_at >= text && !bad_char</div><div class='del'>- && !(isspace ((gint) *last_at) || *last_at == '<' || *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 < 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 < 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 && 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 <>s */</div><div class='del'>- if (email && *email) {</div><div class='del'>- gboolean changed = FALSE;</div><div class='del'>- g_strstrip (email);</div><div class='del'>- if (*email == '<') {</div><div class='del'>- *email = ' ';</div><div class='del'>- changed = TRUE;</div><div class='del'>- }</div><div class='del'>- if (email[strlen (email)-1] == '>') {</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&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 <trow@ximian.com></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 <addressbook/backend/ebook/e-card.h></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&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 <clahey@ximian.com></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 "e-contact-save-as.h"</div><div class='del'>-</div><div class='del'>-#include <unistd.h></div><div class='del'>-#include <fcntl.h></div><div class='del'>-#include <gtk/gtkfilesel.h></div><div class='del'>-#include <gtk/gtksignal.h></div><div class='del'>-#include <gtk/gtk.h></div><div class='del'>-#include <libgnomeui/gnome-dialog.h></div><div class='del'>-#include <gal/util/e-util.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <errno.h></div><div class='del'>-#include <string.h></div><div class='del'>-#include <libgnomeui/gnome-messagebox.h></div><div class='del'>-#include <libgnomeui/gnome-stock.h></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->filesel);</div><div class='del'>-</div><div class='del'>- error = e_write_file (filename, info->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->filesel, filename);</div><div class='del'>- switch (response) {</div><div class='del'>- case 0 : /* Overwrite */</div><div class='del'>- e_write_file(filename, info->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->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->vcard);</div><div class='del'>- gtk_widget_destroy(GTK_WIDGET(info->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->vcard);</div><div class='del'>- gtk_widget_destroy (GTK_WIDGET (info->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->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", &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->filesel = filesel;</div><div class='del'>- info->vcard = e_card_get_vcard(card);</div><div class='del'>-</div><div class='del'>- gtk_signal_connect(GTK_OBJECT(filesel->ok_button), "clicked",</div><div class='del'>- save_it, info);</div><div class='del'>- gtk_signal_connect(GTK_OBJECT(filesel->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 && list->data && list->next == NULL) {</div><div class='del'>- char *name, *file;</div><div class='del'>- gtk_object_get (GTK_OBJECT (list->data),</div><div class='del'>- "file_as", &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->filesel = filesel;</div><div class='del'>- info->vcard = e_card_list_get_vcard (list);</div><div class='del'>- </div><div class='del'>- gtk_signal_connect(GTK_OBJECT(filesel->ok_button), "clicked",</div><div class='del'>- save_it, info);</div><div class='del'>- gtk_signal_connect(GTK_OBJECT(filesel->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&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 <clahey@ximian.com></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 <glade/glade.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'>-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&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'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <name>File_exists.glade</name></div><div class='del'>- <program_name>file_exists.glade</program_name></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeDialog</class></div><div class='del'>- <name>dialog-exists</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <title>Confirm Overwrite</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>False</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>False</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>dialog-vbox1</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>dialog-action_area1</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button1</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>Overwrite</label></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button3</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <has_default>True</has_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label-exists</name></div><div class='del'>- <label>Don't bother translating this string. It's not used.</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-</GTK-Interface></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&id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/fulladdr.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,706 +0,0 @@</div><div class='del'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <name>fulladdr</name></div><div class='del'>- <program_name>fulladdr</program_name></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>- <use_widget_names>True</use_widget_names></div><div class='del'>- <output_main_file>False</output_main_file></div><div class='del'>- <output_support_files>False</output_support_files></div><div class='del'>- <output_build_files>False</output_build_files></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeDialog</class></div><div class='del'>- <name>dialog-checkaddress</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <title>Check Address</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>True</modal></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>True</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>False</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>vbox-container</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>hbuttonbox1</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button1</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <has_default>True</has_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_OK</stock_button></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button2</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table-checkaddress</name></div><div class='del'>- <border_width>8</border_width></div><div class='del'>- <rows>4</rows></div><div class='del'>- <columns>4</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>6</row_spacing></div><div class='del'>- <column_spacing>6</column_spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label2</name></div><div class='del'>- <label>_Address:</label></div><div class='del'>- <justify>GTK_JUSTIFY_LEFT</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-street</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label4</name></div><div class='del'>- <label>_City:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-city</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-city</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-ext</name></div><div class='del'>- <width>100</width></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label8</name></div><div class='del'>- <label>_PO Box:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-po</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>2</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label3</name></div><div class='del'>- <label>Address _2:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-ext</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-po</name></div><div class='del'>- <width>100</width></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-street</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <has_focus>True</has_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label5</name></div><div class='del'>- <label>_State/Province:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-region</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-region</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCombo</class></div><div class='del'>- <name>combo-country</name></div><div class='del'>- <width>100</width></div><div class='del'>- <value_in_list>False</value_in_list></div><div class='del'>- <ok_if_empty>True</ok_if_empty></div><div class='del'>- <case_sensitive>False</case_sensitive></div><div class='del'>- <use_arrows>True</use_arrows></div><div class='del'>- <use_arrows_always>False</use_arrows_always></div><div class='del'>- <items>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'>-</items></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <child_name>GtkCombo:entry</child_name></div><div class='del'>- <name>entry-country</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-code</name></div><div class='del'>- <width>100</width></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>3</left_attach></div><div class='del'>- <right_attach>4</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label6</name></div><div class='del'>- <label>_ZIP Code:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-code</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>2</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label7</name></div><div class='del'>- <label>Countr_y:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>1</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-country</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>2</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-</GTK-Interface></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&id=dcc99c020b6a58e174091b32585159edfae18dd4'>addressbook/gui/contact-editor/fullname.glade</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,389 +0,0 @@</div><div class='del'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <name>fullname</name></div><div class='del'>- <program_name>fullname</program_name></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>- <use_widget_names>True</use_widget_names></div><div class='del'>- <output_main_file>False</output_main_file></div><div class='del'>- <output_support_files>False</output_support_files></div><div class='del'>- <output_build_files>False</output_build_files></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeDialog</class></div><div class='del'>- <name>dialog-checkfullname</name></div><div class='del'>- <visible>False</visible></div><div class='del'>- <title>Check Full Name</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>True</modal></div><div class='del'>- <allow_shrink>True</allow_shrink></div><div class='del'>- <allow_grow>True</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>False</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>vbox-container</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>hbuttonbox1</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button1</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_OK</stock_button></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button2</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table-checkfullname</name></div><div class='del'>- <border_width>8</border_width></div><div class='del'>- <rows>5</rows></div><div class='del'>- <columns>3</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>6</row_spacing></div><div class='del'>- <column_spacing>21</column_spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCombo</class></div><div class='del'>- <name>combo-title</name></div><div class='del'>- <value_in_list>False</value_in_list></div><div class='del'>- <ok_if_empty>True</ok_if_empty></div><div class='del'>- <case_sensitive>False</case_sensitive></div><div class='del'>- <use_arrows>True</use_arrows></div><div class='del'>- <use_arrows_always>False</use_arrows_always></div><div class='del'>- <items></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'>-</items></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <child_name>GtkCombo:entry</child_name></div><div class='del'>- <name>entry-title</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCombo</class></div><div class='del'>- <name>combo-suffix</name></div><div class='del'>- <value_in_list>False</value_in_list></div><div class='del'>- <ok_if_empty>True</ok_if_empty></div><div class='del'>- <case_sensitive>False</case_sensitive></div><div class='del'>- <use_arrows>True</use_arrows></div><div class='del'>- <use_arrows_always>False</use_arrows_always></div><div class='del'>- <items></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'>-</items></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <child_name>GtkCombo:entry</child_name></div><div class='del'>- <name>entry-suffix</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-first</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-middle</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>entry-last</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>3</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label2</name></div><div class='del'>- <label>_First:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-first</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label1</name></div><div class='del'>- <label>_Title:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-title</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label3</name></div><div class='del'>- <label>_Middle:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-middle</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label5</name></div><div class='del'>- <label>_Last:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-last</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label4</name></div><div class='del'>- <label>_Suffix:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <focus_target>entry-suffix</focus_target></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-</GTK-Interface></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&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 <clahey@ximian.com></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 <stdlib.h></div><div class='del'>-#include <gtk/gtkmain.h></div><div class='del'>-#include <libgnomeui/gnome-app.h></div><div class='del'>-#include <libgnomeui/gnome-init.h></div><div class='del'>-#include <glade/glade.h></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 <clahey@umich.edu>",</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&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&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&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'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <name>contact-list-editor</name></div><div class='del'>- <program_name>contact-list-editor</program_name></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeApp</class></div><div class='del'>- <name>contact list editor</name></div><div class='del'>- <title>contact-list-editor</title></div><div class='del'>- <type>GTK_WINDOW_TOPLEVEL</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <default_width>426</default_width></div><div class='del'>- <default_height>304</default_height></div><div class='del'>- <allow_shrink>True</allow_shrink></div><div class='del'>- <allow_grow>True</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <enable_layout_config>True</enable_layout_config></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GnomeDock</class></div><div class='del'>- <child_name>GnomeApp:dock</child_name></div><div class='del'>- <name>dock1</name></div><div class='del'>- <allow_floating>True</allow_floating></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDock:contents</child_name></div><div class='del'>- <name>vbox8</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>0</spacing></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHBox</class></div><div class='del'>- <name>hbox6</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>3</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label10</name></div><div class='del'>- <label>List _name:</label></div><div class='del'>- <justify>GTK_JUSTIFY_LEFT</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <default_focus_target>list-name-entry</default_focus_target></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>list-name-entry</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <has_focus>True</has_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom7</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>evolution-contacts-plain.png</string1></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Sat, 23 Jun 2001 05:59:21 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkFrame</class></div><div class='del'>- <name>frame3</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <label>Members</label></div><div class='del'>- <label_xalign>0</label_xalign></div><div class='del'>- <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHBox</class></div><div class='del'>- <name>hbox7</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>0</spacing></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox9</name></div><div class='del'>- <border_width>3</border_width></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>3</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label11</name></div><div class='del'>- <label>Type an email address or drag a contact into the list below:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkEntry</class></div><div class='del'>- <name>email-entry</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <editable>True</editable></div><div class='del'>- <text_visible>True</text_visible></div><div class='del'>- <text_max_length>0</text_max_length></div><div class='del'>- <text></text></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>contact-list-table</name></div><div class='del'>- <creation_function>e_contact_list_editor_create_table</creation_function></div><div class='del'>- <string1></string1></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Sat, 23 Jun 2001 06:00:16 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkCheckButton</class></div><div class='del'>- <name>visible-addrs-checkbutton</name></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Hide addresses when sending mail to this list</label></div><div class='del'>- <active>False</active></div><div class='del'>- <draw_indicator>True</draw_indicator></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <name>vbox10</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>0</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label12</name></div><div class='del'>- <label></div><div class='del'>-</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>False</fill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVButtonBox</class></div><div class='del'>- <name>vbuttonbox4</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_START</layout_style></div><div class='del'>- <spacing>0</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>add-email-button</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Add</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>remove-button</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>_Remove</label></div><div class='del'>- <relief>GTK_RELIEF_NORMAL</relief></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</widget></div><div class='del'>-</div><div class='del'>-</GTK-Interface></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&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 <toshok@ximian.com></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'>-#include <glib.h></div><div class='del'>-#include <libgnome/gnome-defs.h></div><div class='del'>-#include <libgnome/gnome-i18n.h></div><div class='del'>-#include <bonobo/bonobo-ui-container.h></div><div class='del'>-#include <bonobo/bonobo-ui-util.h></div><div class='del'>-#include <gal/e-table/e-table-scrolled.h></div><div class='del'>-#include <gal/widgets/e-unicode.h></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, &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->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->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->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->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->set_arg = e_contact_list_editor_set_arg;</div><div class='del'>- object_class->get_arg = e_contact_list_editor_get_arg;</div><div class='del'>- object_class->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->card = NULL;</div><div class='del'>- editor->changed = FALSE;</div><div class='del'>- editor->editable = TRUE;</div><div class='del'>- editor->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->gui = gui;</div><div class='del'>-</div><div class='del'>- editor->app = glade_xml_get_widget (gui, "contact list editor");</div><div class='del'>-</div><div class='del'>- editor->table = glade_xml_get_widget (gui, "contact-list-table");</div><div class='del'>- editor->model = gtk_object_get_data (GTK_OBJECT(editor->table), "model");</div><div class='del'>-</div><div class='del'>- editor->add_button = glade_xml_get_widget (editor->gui, "add-email-button");</div><div class='del'>- editor->remove_button = glade_xml_get_widget (editor->gui, "remove-button");</div><div class='del'>-</div><div class='del'>- editor->email_entry = glade_xml_get_widget (gui, "email-entry");</div><div class='del'>- editor->list_name_entry = glade_xml_get_widget (gui, "list-name-entry");</div><div class='del'>-</div><div class='del'>- editor->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->app)->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->parent), contents);</div><div class='del'>- bonobo_window_set_contents (BONOBO_WINDOW (bonobo_win), contents);</div><div class='del'>- gtk_widget_destroy (editor->app);</div><div class='del'>- editor->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->app));</div><div class='del'>-</div><div class='del'>- editor->uic = bonobo_ui_component_new_default ();</div><div class='del'>- if (!editor->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->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->add_button),</div><div class='del'>- "clicked", GTK_SIGNAL_FUNC(add_email_cb), editor);</div><div class='del'>- gtk_signal_connect (GTK_OBJECT(editor->email_entry),</div><div class='del'>- "activate", GTK_SIGNAL_FUNC(add_email_cb), editor);</div><div class='del'>- gtk_signal_connect (GTK_OBJECT(editor->remove_button),</div><div class='del'>- "clicked", GTK_SIGNAL_FUNC(remove_entry_cb), editor);</div><div class='del'>- gtk_signal_connect (GTK_OBJECT(editor->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->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->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->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->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->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->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->cle;</div><div class='del'>- gboolean should_close = ecs->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->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->card);</div><div class='del'>-</div><div class='del'>- if (status == E_BOOK_STATUS_SUCCESS) {</div><div class='del'>- cle->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->cle;</div><div class='del'>- gboolean should_close = ecs->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->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->book) {</div><div class='del'>- EditorCloseStruct *ecs = g_new(EditorCloseStruct, 1);</div><div class='del'>- </div><div class='del'>- ecs->cle = cle;</div><div class='del'>- ecs->should_close = should_close;</div><div class='del'>-</div><div class='del'>- if (cle->is_new_list)</div><div class='del'>- e_book_add_card (cle->book, cle->card, GTK_SIGNAL_FUNC(list_added_cb), ecs);</div><div class='del'>- else</div><div class='del'>- e_book_commit_card (cle->book, cle->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->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->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->app))) {</div><div class='del'>-</div><div class='del'>- extract_info (cle);</div><div class='del'>- </div><div class='del'>- if (!cle->is_new_list)</div><div class='del'>- e_book_remove_card (cle->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->uic, verbs, ce);</div><div class='del'>-</div><div class='del'>- bonobo_ui_util_set_ui (ce->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->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->book)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(editor->book));</div><div class='del'>- editor->book = E_BOOK(GTK_VALUE_OBJECT (*arg));</div><div class='del'>- gtk_object_ref (GTK_OBJECT (editor->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->card)</div><div class='del'>- gtk_object_unref(GTK_OBJECT(editor->card));</div><div class='del'>- editor->card = e_card_duplicate(E_CARD(GTK_VALUE_OBJECT (*arg)));</div><div class='del'>- fill_in_info(editor);</div><div class='del'>- editor->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->is_new_list != new_value);</div><div class='del'>-</div><div class='del'>- editor->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->editable != new_value);</div><div class='del'>-</div><div class='del'>- editor->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->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->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->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->editable ? TRUE : FALSE;</div><div class='del'>- break;</div><div class='del'>- default:</div><div class='del'>- arg->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->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->app)->window);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define SPEC "<ETableSpecification no-headers=\"true\" cursor-mode=\"line\" selection-mode=\"single\"> \</div><div class='del'>- <ETableColumn model_col= \"0\" _title=\"Contact\" expansion=\"1.0\" minimum_width=\"20\" resizable=\"true\" cell=\"string\" compare=\"string\" /> \</div><div class='del'>- <ETableState> \</div><div class='del'>- <column source=\"0\"/> \</div><div class='del'>- <grouping> </grouping> \</div><div class='del'>- </ETableState> \</div><div class='del'>-</ETableSpecification>"</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->table));</div><div class='del'>- char *text = gtk_entry_get_text (GTK_ENTRY(editor->email_entry));</div><div class='del'>-</div><div class='del'>- if (text && *text) {</div><div class='del'>- e_contact_list_model_add_email (E_CONTACT_LIST_MODEL(editor->model), text);</div><div class='del'>-</div><div class='del'>- /* Skip to the end of the list */</div><div class='del'>- if (adj->upper - adj->lower > adj->page_size)</div><div class='del'>- gtk_adjustment_set_value (adj, adj->upper);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- gtk_entry_set_text (GTK_ENTRY(editor->email_entry), "");</div><div class='del'>-</div><div class='del'>- if (!editor->changed) {</div><div class='del'>- editor->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->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->table)),</div><div class='del'>- (EForeachFunc)remove_row, editor);</div><div class='del'>- if (!editor->changed) {</div><div class='del'>- editor->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->changed) {</div><div class='del'>- editor->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->changed) {</div><div class='del'>- editor->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->email_entry, editor->editable);</div><div class='del'>- gtk_widget_set_sensitive (editor->list_name_entry, editor->editable);</div><div class='del'>- gtk_widget_set_sensitive (editor->add_button, editor->editable);</div><div class='del'>- gtk_widget_set_sensitive (editor->remove_button, editor->editable);</div><div class='del'>- gtk_widget_set_sensitive (editor->table, editor->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->app != NULL);</div><div class='del'>-</div><div class='del'>- gtk_widget_destroy (cle->app);</div><div class='del'>- cle->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->targets; p != NULL; p = p->next) {</div><div class='del'>- char *possible_type;</div><div class='del'>-</div><div class='del'>- possible_type = gdk_atom_name ((GdkAtom) p->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->targets != NULL) {</div><div class='del'>- gtk_drag_get_data (GTK_WIDGET (table), context,</div><div class='del'>- GPOINTER_TO_INT (context->targets->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->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->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->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->next) {</div><div class='del'>- ECard *ecard = c->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->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->upper - adj->lower > adj->page_size)</div><div class='del'>- gtk_adjustment_set_value (adj, adj->upper);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- if (changed && !editor->changed) {</div><div class='del'>- editor->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->uic,</div><div class='del'>- "/commands/ContactListEditorSaveClose",</div><div class='del'>- "sensitive",</div><div class='del'>- editor->changed && editor->editable ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>- bonobo_ui_component_set_prop (editor->uic,</div><div class='del'>- "/commands/ContactListEditorSave",</div><div class='del'>- "sensitive",</div><div class='del'>- editor->changed && editor->editable ? "1" : "0", NULL);</div><div class='del'>-</div><div class='del'>- bonobo_ui_component_set_prop (editor->uic,</div><div class='del'>- "/commands/ContactListEditorDelete",</div><div class='del'>- "sensitive",</div><div class='del'>- editor->editable && !editor->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->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->list_name_entry), 0, -1);</div><div class='del'>-</div><div class='del'>- if (string && *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->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", &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 < e_table_model_row_count (editor->model); i ++) {</div><div class='del'>- const EDestination *dest = e_contact_list_model_get_destination (E_CONTACT_LIST_MODEL (editor->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->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->card),</div><div class='del'>- "file_as", &file_as,</div><div class='del'>- "email", &email_list,</div><div class='del'>- "list", &is_evolution_list,</div><div class='del'>- "list_show_addresses", &show_addresses,</div><div class='del'>- NULL);</div><div class='del'>-</div><div class='del'>- gtk_editable_delete_text (GTK_EDITABLE (editor->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->list_name_entry, file_as);</div><div class='del'>- gtk_editable_insert_text (GTK_EDITABLE (editor->list_name_entry), u, strlen (u), &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->visible_addrs_checkbutton), !show_addresses);</div><div class='del'>-</div><div class='del'>- e_contact_list_model_remove_all (E_CONTACT_LIST_MODEL (editor->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->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&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 <toshok@ximian.com></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 <libgnomeui/gnome-app.h></div><div class='del'>-#include <libgnomeui/gnome-app-helper.h></div><div class='del'>-#include <bonobo/bonobo-ui-component.h></div><div class='del'>-#include <glade/glade.h></div><div class='del'>-#include <gal/e-table/e-table-model.h></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&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 <config.h></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->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->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 && *(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 < model->data_count; i ++) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (model->data[i]));</div><div class='del'>- }</div><div class='del'>- g_free (model->data);</div><div class='del'>-</div><div class='del'>- model->data_count = 0;</div><div class='del'>- model->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->destroy = contact_list_model_destroy;</div><div class='del'>-</div><div class='del'>- model_class->column_count = contact_list_col_count;</div><div class='del'>- model_class->row_count = contact_list_row_count;</div><div class='del'>- model_class->value_at = contact_list_value_at;</div><div class='del'>- model_class->set_value_at = contact_list_set_value_at;</div><div class='del'>- model_class->is_cell_editable = contact_list_is_cell_editable;</div><div class='del'>- model_class->duplicate_value = contact_list_duplicate_value;</div><div class='del'>- model_class->free_value = contact_list_free_value;</div><div class='del'>- model_class->initialize_value = contact_list_initialize_value;</div><div class='del'>- model_class->value_is_empty = contact_list_value_is_empty;</div><div class='del'>- model_class->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->data_alloc = 10;</div><div class='del'>- model->data_count = 0;</div><div class='del'>- model->data = g_new (EDestination*, model->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, &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->data_count + 1 >= model->data_alloc) {</div><div class='del'>- model->data_alloc *= 2;</div><div class='del'>- model->data = g_renew (EDestination*, model->data, model->data_alloc);</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- model->data[model->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->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 <= row && row < model->data_count);</div><div class='del'>-</div><div class='del'>- gtk_object_unref (GTK_OBJECT (model->data[row]));</div><div class='del'>- memmove (model->data + row, model->data + row + 1, sizeof (EDestination*) * (model->data_count - row - 1));</div><div class='del'>- model->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 < model->data_count; i ++) {</div><div class='del'>- gtk_object_unref (GTK_OBJECT (model->data[i]));</div><div class='del'>- model->data[i] = NULL;</div><div class='del'>- }</div><div class='del'>-</div><div class='del'>- model->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 <= row && row < model->data_count, NULL);</div><div class='del'>-</div><div class='del'>- return model->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&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 <gal/e-table/e-table-model.h></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&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&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&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'>-<?xml version="1.0"?></div><div class='del'>-<GTK-Interface></div><div class='del'>-</div><div class='del'>-<project></div><div class='del'>- <name>e-card-duplicate-detected</name></div><div class='del'>- <program_name>e-card-duplicate-detected</program_name></div><div class='del'>- <directory></directory></div><div class='del'>- <source_directory>src</source_directory></div><div class='del'>- <pixmaps_directory>pixmaps</pixmaps_directory></div><div class='del'>- <language>C</language></div><div class='del'>- <gnome_support>True</gnome_support></div><div class='del'>- <gettext_support>True</gettext_support></div><div class='del'>- <use_widget_names>True</use_widget_names></div><div class='del'>- <output_main_file>False</output_main_file></div><div class='del'>- <output_support_files>False</output_support_files></div><div class='del'>- <output_build_files>False</output_build_files></div><div class='del'>- <gnome_help_support>True</gnome_help_support></div><div class='del'>-</project></div><div class='del'>-</div><div class='del'>-<widget></div><div class='del'>- <class>GnomeDialog</class></div><div class='del'>- <name>dialog-duplicate-contact</name></div><div class='del'>- <title>Duplicate Contact Detected</title></div><div class='del'>- <type>GTK_WINDOW_POPUP</type></div><div class='del'>- <position>GTK_WIN_POS_NONE</position></div><div class='del'>- <modal>False</modal></div><div class='del'>- <allow_shrink>False</allow_shrink></div><div class='del'>- <allow_grow>True</allow_grow></div><div class='del'>- <auto_shrink>False</auto_shrink></div><div class='del'>- <auto_close>False</auto_close></div><div class='del'>- <hide_on_close>False</hide_on_close></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkVBox</class></div><div class='del'>- <child_name>GnomeDialog:vbox</child_name></div><div class='del'>- <name>dialog-vbox1</name></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child></div><div class='del'>- <padding>4</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkHButtonBox</class></div><div class='del'>- <child_name>GnomeDialog:action_area</child_name></div><div class='del'>- <name>dialog-action_area1</name></div><div class='del'>- <layout_style>GTK_BUTTONBOX_END</layout_style></div><div class='del'>- <spacing>8</spacing></div><div class='del'>- <child_min_width>85</child_min_width></div><div class='del'>- <child_min_height>27</child_min_height></div><div class='del'>- <child_ipad_x>7</child_ipad_x></div><div class='del'>- <child_ipad_y>0</child_ipad_y></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>False</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- <pack>GTK_PACK_END</pack></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button3</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <label>Add Anyway</label></div><div class='del'>- <stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkButton</class></div><div class='del'>- <name>button4</name></div><div class='del'>- <can_default>True</can_default></div><div class='del'>- <can_focus>True</can_focus></div><div class='del'>- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkTable</class></div><div class='del'>- <name>table1</name></div><div class='del'>- <rows>5</rows></div><div class='del'>- <columns>2</columns></div><div class='del'>- <homogeneous>False</homogeneous></div><div class='del'>- <row_spacing>6</row_spacing></div><div class='del'>- <column_spacing>6</column_spacing></div><div class='del'>- <child></div><div class='del'>- <padding>0</padding></div><div class='del'>- <expand>True</expand></div><div class='del'>- <fill>True</fill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom-old-card</name></div><div class='del'>- <creation_function>e_card_merging_create_old_card</creation_function></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Fri, 08 Jun 2001 01:33:22 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>4</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>True</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label1</name></div><div class='del'>- <label>The name or email address of this contact already exists</div><div class='del'>-in this folder. Would you like to add it anyway?</label></div><div class='del'>- <justify>GTK_JUSTIFY_LEFT</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>1</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label3</name></div><div class='del'>- <label>Original Contact:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>3</top_attach></div><div class='del'>- <bottom_attach>4</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkLabel</class></div><div class='del'>- <name>label4</name></div><div class='del'>- <label>New Contact:</label></div><div class='del'>- <justify>GTK_JUSTIFY_CENTER</justify></div><div class='del'>- <wrap>False</wrap></div><div class='del'>- <xalign>0</xalign></div><div class='del'>- <yalign>0.5</yalign></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>1</top_attach></div><div class='del'>- <bottom_attach>2</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>False</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom-new-card</name></div><div class='del'>- <creation_function>e_card_merging_create_old_card</creation_function></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Fri, 08 Jun 2001 01:33:22 GMT</last_modification_time></div><div class='del'>- <child></div><div class='del'>- <left_attach>1</left_attach></div><div class='del'>- <right_attach>2</right_attach></div><div class='del'>- <top_attach>2</top_attach></div><div class='del'>- <bottom_attach>3</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>True</xexpand></div><div class='del'>- <yexpand>True</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>- </widget></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>GtkAlignment</class></div><div class='del'>- <name>alignment1</name></div><div class='del'>- <xalign>0.5</xalign></div><div class='del'>- <yalign>0</yalign></div><div class='del'>- <xscale>1</xscale></div><div class='del'>- <yscale>0</yscale></div><div class='del'>- <child></div><div class='del'>- <left_attach>0</left_attach></div><div class='del'>- <right_attach>1</right_attach></div><div class='del'>- <top_attach>0</top_attach></div><div class='del'>- <bottom_attach>5</bottom_attach></div><div class='del'>- <xpad>0</xpad></div><div class='del'>- <ypad>0</ypad></div><div class='del'>- <xexpand>False</xexpand></div><div class='del'>- <yexpand>False</yexpand></div><div class='del'>- <xshrink>False</xshrink></div><div class='del'>- <yshrink>False</yshrink></div><div class='del'>- <xfill>True</xfill></div><div class='del'>- <yfill>True</yfill></div><div class='del'>- </child></div><div class='del'>-</div><div class='del'>- <widget></div><div class='del'>- <class>Custom</class></div><div class='del'>- <name>custom2</name></div><div class='del'>- <creation_function>e_create_image_widget</creation_function></div><div class='del'>- <string1>malehead.png</string1></div><div class='del'>- <int1>0</int1></div><div class='del'>- <int2>0</int2></div><div class='del'>- <last_modification_time>Fri, 08 Jun 2001 00:18:39 GMT</last_modification_time></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div><div class='del'>- </widget></div>