commit 1ae405d39a3822875d3dbc5f20f8152bf172bed7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Sep 25 22:24:51 2013 +0100

    Update translations.

commit 9013d967a865f35c0f946e30c0f41073cc606e5f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Sep 25 22:30:23 2013 +0100

    build-sys: Use parallel tests for Scheme API.
    
    (This makes the testsuite work again).
    
    (imported from commit 0f3c4785ec997b9c04bdfc695192811f6c5eba43)

commit 64d99b7efd1494c2a441061cb2bbc4bbc57d6a46
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Sep 25 22:28:42 2013 +0100

    build-sys: Use GUILE_PKG_NAME instead of GUILE_PKG.
    
    We previously stored the name of Guile's pkg-config module in a
    variable called GUILE_PKG.  In recent releases of Guile 2.x, a
    GUILE_PKG autoconf macro has been added which conflicts with this.  So
    we need to use a different variable name instead.
    
    (imported from commit 1c2f215ffa639f543a0ca1997c17cfbeffb76793)

commit ed432e7e2ff1c38d2b04608b2d0287e137788c1e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Nov 24 22:06:09 2012 +0000

    libgeda: Refuse to connect nets inside symbols with other nets.
    
    A libgeda crash bug was caused by the pathological use case of putting
    nets inside symbols.  Since the file format does not specifically
    forbid this, libgeda must cope with this gracefully.  Specifically,
    o_net_consolidate() was causing a crash when attempting to merge a net
    inside a symbol and a normal net.  The underlying cause was found to
    be that the connection tracking system did not cope properly with
    encountering connectable objects other than pins inside symbols.
    Merely fixing the net consolidation algorithm exposed other bugs (for
    example, nets inside symbols should NOT rubberband!)
    
    This patch adds logic to s_conn_update_line_object() as follows:
    
    1) If two objects are both not inside symbols, they may connect.
    
    2) If two objects are inside the same complex, they may connect.
    
    3) If an object is inside a complex, it must be a pin to connect to
       objects outside the complex.
    
    Closes-bug: lp-994361
    
    (imported from commit c18a0826fcd43dc8471f98e3a092d3144fcb6918)

commit 988e63ef358d7d44e447e08f4be58ac15f008d3e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 23 21:32:49 2012 +0000

    Update translations.

commit 4e4079ff803cd8e8d3b25934a5308866432c9f68
Author: Eugene Mikhantiev <mikhantiev@gmail.com>
Date:   Wed Nov 21 22:06:05 2012 +0000

    libgeda: Fix errors in hu.po
    
    Closes-bug: lp-1081594
    
    (imported from commit 4cfce9a6cda682f8093a261a6bf65bf35e6799f7)

commit 2f5799e3936040e186db0ebc9c5188e62a2706d8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 20 00:18:50 2012 +0000

commit bbb663612afa98c274279edbe167f86dd7b3f6d8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Nov 18 16:03:31 2012 +0000

    Final .po file update before release.

commit 7c9f572ccf61966f4e97377f892dbe76df760194
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Nov 18 07:40:46 2012 +0000

    scheme-api: Add unit test for connections to nets in symbols.
    
    Affects-bug: lp-994361

commit b05cebd0abac635d91d680e43c6291a4739f5e9f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Nov 17 21:38:44 2012 +0000

    libgeda: Draw arrows on 'connected' dangling net ends.
    
    Follow-on patch from commit 1598b5884ba8, to add arrow endings on printed output.
    
    Affects-bug: lp-1014160

commit 928786d234aa95d368fe3cc8c62783cc5717dfe2
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Sat Nov 17 09:17:24 2012 +0000

    Fix bad keyword in PostScript headers.
    
    Signed-off-by: Bert Timmerman <bert.timmerman@xs4all.nl>

commit 91865f5d9ad9730ca62c75a29349b7ebd296ad74
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 16 21:28:10 2012 +0000

    libgeda: Fix potential NULL dereference in o_read_buffer().
    
    In the case that a schematic file contained an embedded component
    section start symbol before any object definitions, a segfault would
    occur due to a NULL deference.
    
    Coverity-ID: 201783
    
    Closes-bug: lp-1079586

commit e6cdf09ad9330c2066363809f7839f698ca2476b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 15 23:22:20 2012 +0000

    Hand-merge Dutch translations from master branch.
    
    Merge Dutch translation improvements made by Bert Timmerman in from
    the unstable branch (commits 4b17c888, f9bd70f6, and a164660f).

commit f7fab3715f984c374f41d7c2d74fc2802bbb4e7a
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Wed Nov 14 22:58:12 2012 +0000

    Replace references to geda.seul.org with up-to-date URLs.
    
    Update lots of links to seul.org to www.geda-project.org, wiki.geda-project.org, gedasymbols.org and www.gnu.org as appropriate.

commit b53f5f835abcaa8f8ff4b32cb650cfbb2e2da38c
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Mon Mar 19 20:54:37 2012 +0000

    libgeda: Remove redundant checks against NULL in s_encoding.c
    
    The variable dst can't be NULL (g_new() will terminate on error) so there is
    no reason to repeatedly check it against NULL. Remove the checks.
    
    Coverity-ID: 201596
    
    Closes-bug: lp-959702

commit ce0a9ee83906859b632e19a4c16f9ec0fa1f3958
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Fri Mar 16 21:18:32 2012 +0000

    libgeda: fix dereference after NULL check
    
    Retest for NULL before making a member comparison.
    
    Coverity-ID: 201599

commit 9f3084edd1a6cf70bb6f4a6458d7caebce93a833
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Mon Jul 2 22:13:32 2012 +0100

    libgeda: only include top level glib header
    
    glib 2.0 does not permit the inclusion of glib/gmem.h, glib/gmessages.h etc. but only
    the top level glib.h file. Remove references in s_path.c to the sub-files and only
    include the top level file.
    
    Closes-bug: lp-934261

commit f0923997c5ea727f6b73afad23ee2f974ac6b6b0
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Sun Mar 18 11:36:59 2012 +0000

    Update FSF mailing address.
    
    Change all references to the FSF mailing address to the new Franklin
    Street location.
    
    Closes-bug: lp-934934

commit 92ea83ad1e12f6e5150f956a0c12586b6187c455
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 14 17:08:57 2012 +0000

    libgeda: Import translations from Launchpad
    
    N.b. Did not import DE, HU, PL, RU, or ZH_CN translations, as
    Launchpad translations were less fully-translated than translations
    already in tree.

commit eee335e47010e24b309520c5d740ea542d9d60ce
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Feb 11 23:08:57 2012 +0000

    libgeda: Correct 'const const' in header file.
    
    Reported-by: Dan McMahill <dan@mcmahill.net>

commit f7ee97307f4fbb95f76b57611260f8eb4142a6af
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Feb 9 12:44:43 2012 +0000

    libgeda: Remove dead code.
    
    Coverity-ID: 201570

commit 4aad1adbe2fe6da7b26013c97dd1359775008447
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Feb 9 12:19:22 2012 +0000

    libgeda: Fix explicit NULL dereference.
    
    In s_hierarchy_down_schematic_single(), NULL may be dereferenced if an
    invalid flag argument is passed to the function.  Adding a default
    branch to the switch statement should resolve this.
    
    Coverity-ID: 201600

commit ab3a3cbcbf3000579504ac454698ea34e0eaf9e1
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Feb 9 11:59:16 2012 +0000

    libgeda: Fix explicit NULL dereference.
    
    When printing a text OBJECT with an invalid show_name_value field,
    o_text_print() could dereference NULL.  Adding a default case to the
    switch statement should fix this.
    
    Coverity-ID: 201603

commit 02b5c2057d616cce6f70fceed72f7105a1fc2bef
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Feb 9 11:49:05 2012 +0000

    libgeda: Fix dereferences after NULL checks.
    
    In some cases, it is actually correct to *remove* the NULL checks,
    since the functions in question are internal libgeda implementations
    and can assume that the caller has sanity checked arguments.
    
    Coverity-ID: 201604
    Coverity-ID: 201605
    Coverity-ID: 201606
    Coverity-ID: 201607
    Coverity-ID: 201608
    Coverity-ID: 201609
    Coverity-ID: 201610
    Coverity-ID: 201611

commit 7d75ec2492fba838f10f049966626189a7c1428d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Feb 9 11:39:42 2012 +0000

    libgeda: Fix comparison of array with NULL.
    
    Comparing arrays to NULL has no effect.
    
    Coverity-ID: 201622

commit d5e24a5b478e74ce2a4d0220c882247f4ae4ad92
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Feb 9 11:38:11 2012 +0000

    libgeda: Fix dereferences before NULL checks.
    
    Coverity-ID: 201630
    Coverity-ID: 201629

commit 3a79b63d7b99b755ec42c6ec506181415eae321c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Feb 9 11:27:44 2012 +0000

    libgeda: Fix buffer overrun in s_menu_return_entry().
    
    Off-by-one error.
    
    Coverity-ID: 201626

commit c17cb9cd38af503e681fc673145e3f10e3cb5249
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Feb 9 11:27:38 2012 +0000

    libgeda: Fix resource leak in f_print_header().
    
    f_print_header() leaked a file pointer to the PostScript prolog file.
    
    Coverity-ID: 201627

commit 9dba58e5c846089e955b5fe992250d76e150831c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Feb 9 11:27:31 2012 +0000

    libgeda: Fix uninitialised scalar variables.
    
    Coverity-ID: 201659
    Coverity-ID: 201660
    Coverity-ID: 201661
    Coverity-ID: 201662
    Coverity-ID: 201663
    Coverity-ID: 201664
    Coverity-ID: 201665

commit 05dbec381e6bf1cfba9bde7ce7039d5d3d098d13
Author: Vladimir Zhbanov <vzhbanov@gmail.com>
Date:   Tue Feb 7 16:33:48 2012 +0400

    Fixed wrong behaviour during gschem navigation
    
    If you go down the same symbol during navigation from different places
    you always come back to the schematic where you've done this first. This
    patch fixes such a wrong behaviour.
    
    Closes-bug: lp-698543

commit bc18e318ca1314586fc8626fcb8bd1937c69c10d
Author: Vladimir Zhbanov <vzhbanov@gmail.com>
Date:   Sun Jan 29 11:41:26 2012 +0400

    libgeda: Fix incorrect Postscript output for missing pictures
    
    Closes-bug: lp-923257

commit fce53e03ceeb12966ce53ae9116ddd9333791a50
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Thu Jan 19 00:02:21 2012 +0100

    libgeda: rewrite s_cue_output_single
    (cherry picked from commit b3dfc6c7124810598042a78fe2800f36699769c3)

commit 61447f19df1a6549dcc68fa66cd8bc1aa1e3ac1d
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Wed Jan 18 23:57:19 2012 +0100

    libgeda: fix printing of junction cues
    
    Closes bug "disappearing dots in gschem" reported by
    Gabriel Paubert <paubert@iram.es>.  Issue was introduced in
    commit 65c68f9.
    
    Additionally, now junction cues are also printed when 3 or
    more pins are connected (same behavior as for net segments).
    (cherry picked from commit f8a9c86e2e2fa7fa451cd504e62ebee6a3e73d2d)

commit 7943b8a2c696265b334dbfa4dce1101e95754024
Author: Vladimir Zhbanov <vzhbanov@gmail.com>
Date:   Sun Jan 15 19:24:45 2012 +0400

    Updated Russian translation

commit 59eafeb48043ec092e7b33017698a4ed10b0f5f6
Author: Vladimir Zhbanov <vzhbanov@gmail.com>
Date:   Tue Jan 17 02:53:52 2012 +0400

    libgeda,gschem: add three missing files to POTFILES.in
    
    Reported by Sergey Alyoshin

commit 0b344aaa401513c5e9b075849358805ea8cb301d
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Thu Jan 12 20:28:17 2012 +0000

    libgeda: fix potential memory leaks in Scheme API
    
    Add dynamic contexts and supporting unwind handlers to
    g_rc_component_library() and g_rc_component_library_command() functions.

commit 230241f2ae70b1a1eb91fa3ce766b4e18e1eec54
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jan 12 00:14:20 2012 +0000

    libgeda: Fix incorrect variable type in o_net_refresh_conn_cache().

commit 321c005a6170b34fc9f3e9f6ab1e4ab931120f81
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Wed Jan 11 07:37:47 2012 +0000

    gschem: display gschemrc filename properly on version failure
    
    Add a new Scheme function "rc-filename" to libgeda to extract the
    filename of the Scheme file under evaluation, and use this in the
    "gschem-version" Scheme function in gschem to show which file is
    wrong.
    
    Closes-bug: lp-910663

commit 684211777ffcf0414887f814207da97dc37dd5fa
Merge: 72be40e cbdd5af
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 11 20:06:11 2012 +0000

    Merge branch 'entropy_reduction' of git://github.com/gareth8118/geda-gaf into for-stable-1.8

commit 933fe9c5c4b90998979cd2fafc12625e89c388d9
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Thu Sep 1 06:47:22 2011 +0100

    libgeda: Add  doxygen definition to s_toplevel_new()

commit cff8761501a0215ea2f152497d31760e1842f3d0
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Wed Jan 4 19:11:09 2012 +0000

    libgeda: Doxygen for g_rc.c.
    
    Add a brief doxygen comment for the g_rc.c file in the header. Also
    added explanatory not to bug tag for g_rc_parse().

commit 3671d4acdab78025b658cdba81f53c2ecec0208d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 10 09:20:26 2012 +0000

    Update translations.

commit 31440e054a54001bf462f7da9d31bfc0f0063d3f
Merge: c6db159 0884425
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Jan 9 20:13:41 2012 +0000

    Merge branch 'bug-700448-load-error'.
    
    Eivind Kvedalen has provided some changes to libgeda and tools that
    provide better error detection when loading schematic and symbol
    files, and I have made a few improvements and bugfixes based on his
    branch.
    
    Closes-bug: lp-700448
    
    Conflicts:
    	libgeda/src/a_basic.c

commit c6db15997c306c23c02dec9cc8f1e9a645f03fcb
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Mon Jan 9 02:26:35 2012 +0100

    libgeda: check NULL pointers in o_net_refresh_conn_cache

commit 2f30211e0b0ae7aaac0b57b50a73331e89402b4f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jan 6 21:32:43 2012 +0000

    libgeda: Fix possible access-after-free in o_picture_read().

commit f23d270aa84b07f2ce4336acc658eb9d070a8fbc
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jan 6 23:58:20 2012 +0000

    libgeda: Messages in GErrors should not be newline-terminated.

commit 8104930a0523c175987c35e80e33cd8dd4a4a97f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jan 7 00:19:39 2012 +0000

    libgeda: More robust line ending detection when parsing.
    
    Correctly handle '\r', '\n', and '\r\n' line endings.

commit 2c5ec1261714ff0a1157582ef0daead543c1da65
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jan 7 00:18:03 2012 +0000

    libgeda: Remove s_textbuffer_seek().
    
    It's never been used anyway.

commit f0ac4bcbc0fe5ab0c32e45875003f1be35a7bc1c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jan 7 00:00:20 2012 +0000

    libgeda: Return a const string from s_textbuffer_next etc.
    
    Also constify everywhere that string is used.  This helped identify
    several places to avoid unnecessary strdup()/free() pairs.

commit 312cd9e728c04bf2e593a81a739a71443b420634
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jan 6 23:37:54 2012 +0000

    libgeda: Another unit test for load errors.

commit 5480167063451e1c6cf5701f1b198d896c6adf65
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jan 6 23:35:26 2012 +0000

    libgeda: Report error on loading an unterminated attribute list.

commit b8c34b0fda239294f449010c07e2077736b76c97
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jan 6 23:48:30 2012 +0000

    libgeda: Don't repeatedly reverse new attribute list.
    
    Add a unit test to make sure this is done correctly.

commit 7b64ae90034cf9a1e655259e071cc9e236b00ff2
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jan 6 23:48:30 2012 +0000

    libgeda: Correct error code numbering for EDA_ERRORs.

commit d978cfae017194ffe79a37c69c7fc1befb727199
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jan 6 23:48:30 2012 +0000

    libgeda: Fix attempt to free uninitialised pointer.

commit 531a20a15301167d29012c44bfc2b1b0a837d7bb
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue May 3 23:18:29 2011 +0200

    libgeda: use hooks to refresh conn cache
    
    Affects-bug: lp-707064

commit 81d2d6019ecb4ef0b9f109153cd1c9803e39045a
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Mon May 2 20:33:21 2011 +0200

    libgeda: add hook for TOPLEVEL object creation
    
    Affects-bug: lp-707064

commit 0810ec21f6d50823664f872c735244fc29a6ed5b
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sat Apr 30 01:11:18 2011 +0200

    libgeda: add hooks for connection change notification
    
    Affects-bug: lp-707064

commit dafe58d7440161eadd4f524564fbe9e6e88ee65a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat May 1 13:47:23 2010 +0100

    Attribute change hooks
    
    Affects-bug: lp-707064

commit 65c68f98cc4bf5d26a091abf336b2e00c7bbcabb
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sun Mar 13 01:10:08 2011 +0100

    libgeda: skip printing endpoint cues on fully connected nets
    
    Affects-bug: lp-707064

commit 042612a5cc35bfafbf0f862a6db78ec66cd022a7
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Mar 15 01:01:10 2011 +0100

    libgeda: add functions to track net connectivity
    
    o_net_is_fully_connected can be used to check if the net is connected to
    at least two separate endpoints - endpoint being a pin, bus or a named
    net (through a netname attribute).
    
    o_net_refresh_conn_cache should be used to update cached state after
    connectivity change.
    
    For each net segment the number of connected enpoints is cached in new
    fields of OBJECT structure: net_num_connected and valid_num_connected.
    
    Affects-bug: lp-707064

commit c90c6a2728179785c4da5241e043cdcbcf197915
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sun Jan 23 21:19:48 2011 +0100

    libgeda: print unconnected pin ends as boxes
    
    Closes-bug: lp-706552

commit e09936bfe0b2db080cab5376088f24656b0e2ad7
Author: Eivind Kvedalen <eivind@kvedalen.name>
Date:   Fri Jan 6 22:59:05 2012 +0100

    Make sure attributes are stored internally in the same order as before, or
    else the gsymcheck tests will fail.

commit 80845206868cb5d5b70357a5ca23f8da07151fc2
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jan 5 17:30:15 2012 +0000

    scheme-api: Correct prototype of edascm_init_impl().
    
    Fixes bug introduced in commit 5cdf4de59028.

commit c15feccddc359d1ac3e62ed3b2182c7cc3aa938a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jan 5 15:39:37 2012 +0000

    scheme-api: Improve doxygen docs for C API functions.

commit 5cdf4de59028fad80072611a1194a4a8e224c363
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jan 5 15:40:12 2012 +0000

    scheme-api: Ensure init functions are called in Scheme mode.
    
    This patch makes sure that any libguile functions called by
    edascm_init() are called in Guile mode, even if for some reason
    edascm_init() is called from a thread that is not yet in Guile mode.

commit 501d784118e135be1ead32b1233e64bc62e8d41e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 3 21:50:55 2012 +0000

    scheme-api: Fix path operations involving curves.
    
    Curve control points were not being processed correctly, meaning that
    it was not possible to insert a curve into a path.

commit ded664073d4e32b087a55359e15a43c65a26a653
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 3 20:59:19 2012 +0000

    scheme-api: Improve testsuite coverage.

commit 206b5f430917287d4d1d46acd5af32ab8ea34877
Author: Eivind Kvedalen <eivind@kvedalen.name>
Date:   Tue Jan 3 00:31:13 2012 +0100

    Updated error messages in o_picture_read, o_path_read, and o_text_read to
    follow style of other similar error messages.

commit 46ffae4667dda3520b31b92370dcafe1e24017a0
Author: Eivind Kvedalen <eivind@kvedalen.name>
Date:   Tue Jan 3 00:30:40 2012 +0100

    Made edascm_string_format_sym local.

commit 3ffd19131319cd74689dcb388e53cf12948c26d5
Author: Eivind Kvedalen <eivind@kvedalen.name>
Date:   Tue Jan 3 00:27:12 2012 +0100

    Updated unit tests for scheme api (string->page function).

commit 64a7d0283c3c15e1b27077ee5a9c1ec209c0a807
Author: Eivind Kvedalen <eivind@kvedalen.name>
Date:   Mon Jan 2 22:48:56 2012 +0100

    Rebase fixes for o_picture.c.

commit 2b025def49c1bfeedb0650b4c34d527fa29a5090
Author: Eivind Kvedalen <eivind@kvedalen.name>
Date:   Wed Sep 7 20:49:20 2011 +0200

    Changed invalid-string -> string-format

commit b0541a1258d82b40b7b604a15d177780fd1b7cf9
Author: Eivind Kvedalen <eivind@kvedalen.name>
Date:   Wed Sep 7 20:34:02 2011 +0200

    Changed enum EDA_ERROR_READ -> EDA_ERROR_PARSE, and made replaced G_FILE_ERROR_FAILED by
    EDA_ERROR_READ in appropriate places.

commit d1305adf92982b3a159707c940bafb8c293223fe
Author: Eivind Kvedalen <eivind@kvedalen.name>
Date:   Tue Jun 28 21:43:13 2011 +0200

    Partial fix for bug #700448.
    
    NULL is returned from o_*_read and o_read_buffer functions if parsing of the input buffer fails.
    An error object is returned in these cases, describing in detail what error occured.
    
    gnetlist is updated to exit with status code 2 if the input file can't be read.
    
    gschem is updated to report errors when using o_read_buffer.
    
    TODO:
    * Prone to segfaults on bad input files (separate patch)

commit 2844f086d7df446674b659451b9f63865f715b6c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jan 1 12:16:05 2012 +0000

    scheme-api: Correctly export libgeda gettext function.
    
    Makes promote-attribs! work again.

commit 46bfb5cf26f33947a2efc7522dabd1107ce0afe4
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Dec 31 15:56:11 2011 -0500

    Updated all po files in prep for a new release (1.7.2)

commit ccb8478bc60b66797306b63db890348ccd0342fe
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Sat Dec 31 14:43:13 2011 +0100

    libgeda: updated the Dutch translation.
    
    Signed-off-by: Bert Timmerman <bert.timmerman@xs4all.nl>

commit 0ef5b849452c0d9e93d00c4c5f12c01da1a4a747
Author: Vladimir Zhbanov <vzhbanov@gmail.com>
Date:   Sat Dec 31 09:26:06 2011 +0400

    libgeda: Update Russian translation.

commit f07ea6693e22aa8e8895fe3026eafe424c87a585
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Dec 28 17:34:30 2011 +0000

    scheme-api: Properly clean up extra TOPLEVEL weakref in OBJECT smobs.
    
    Corrects mistake made in commit 78c8ee905dad.

commit 78c8ee905dad0dbfde548debb2be5790d4b2fb71
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Dec 28 13:55:18 2011 +0000

    scheme-api: Store a TOPLEVEL pointer in OBJECT smobs.
    
    When an OBJECT smob is created in Scheme code, and then goes out of
    scope without being added to a component or to a page, we need to be
    able to delete the object from the Guile garbage collector.  This
    deletion occurs in a smob free function.
    
    To delete an OBJECT, we need to call s_object_delete(), which requires
    an additional TOPLEVEL argument.  Previously, we have obtained a
    TOPLEVEL by using edascm_c_current_toplevel().  Unfortunately, this
    (indirectly) calls scm_fluid_ref(), which is not permitted to be
    called from a smob free function; if called in that context, it may
    cause a deadlock.
    
    This patch alters OBJECT smobs to be double-length smobs, with the
    current TOPLEVEL at the time the smob was created baked into the
    second data word.  This avoids the need to use
    edascm_c_current_toplevel() when garbarge-collecting an OBJECT, but
    it's also somewhat hacky. :-(
    
    Closes-bug: lp-909358

commit df9c96cc352c7723e5ba64cad7835c3972433556
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Dec 24 01:00:56 2011 +0000

    Update translation files.

commit 07de7591c23c93efdb92012304dc7aaee1c66c04
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 23 21:57:52 2011 +0000

    libgeda: Improvements to 'component-library-search'.
    
    Luigi Palese has supplied an improved Scheme version of the
    'component-library-search' function for searching a directory tree for
    symbol libraries.
    
    The new version:
    
    - Searches for directories recursively, rather than only searching the
      top level of the provided directory.
    - Only considers directories that actually contain symbol files as
      libraries.
    - Optionally adds a prefix to the library names shown in the gschem
      library window.
    
    (I have made some adjustments to Luigi's original version of the
    function).
    
    Closes-bug: lp-901222

commit 33fee83f110c86bf014bd4fb460bb38bae626a10
Author: Richard Barlow <richard@richardbarlow.co.uk>
Date:   Wed Dec 21 14:33:45 2011 +0000

    Add option to allow creation of backups to be disabled
    
    When using a version control system the backup (example.sch~) files
    created by libgeda become annoying. They can be ignored by most
    VCSs however they still sit there and don't serve any purpose; any
    mistakes can be recovered from a previous version.
    
    This patch adds a configuration option "no-backup-files" which
    suppresses the creation of backup files. It is disabled by default
    so there is no change to the previous behaviour unless this option
    is activated.
    
    Closes-bug: lp-762894

commit c63deda32d9480e7b5b5597d3fb1fed8e6591805
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Dec 15 09:34:24 2011 +0000

    libgeda: Fix null dereference when fallback image not loaded.
    
    In commit bccf15c104d6, a bug was introduced whereby libgeda
    dereferenced a NULL pointer.  If a picture object's image cannot be
    loaded, libgeda attempts to load a fallback image, and on failure,
    accesses a GError to retrieve the error message.  Unfortunately, the
    GError was not being passed to the image loading function, and was
    therefore uninitialised when it was dereferenced to obtain a message.
    
    Closes-bug: lp-904639

commit 4a1b54fdf119538e90f5b0dbc73a5a9d8ddc56da
Author: Luigi S. Palese <quadword@gmail.com>
Date:   Tue Dec 13 11:20:34 2011 +0100

    scheme-api: Added expand-env-variables function to the os module.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>

commit 4342002fa639bc2f18bc4f776920ea540c6d2de3
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 12 18:58:03 2011 +0000

    build-sys: Only look for Guile using pkg-config.
    
    This makes it possible for `pkg-config --libs libgeda' to give the
    correct output.

commit cee0d8874a0a3a3e76e247f1ebd4f999d7a0d1b0
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 12 18:45:15 2011 +0000

    libgeda: List gio-2.0 as one of the pkg-config requirements.
    
    The new picture handling code uses GIO with GdkPixbuf to load images
    from memory buffers.  We don't need to update the configure checks
    because we already require a version of GdkPixbuf that requires GIO.

commit 0e506ebd5d5cc87a7f373b83b24f2ad3c90fd18b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 12 14:13:22 2011 +0000

    Remove per-tool INSTALL files.
    
    Only one top-level INSTALL file is needed, and that is provided by
    automake.

commit 8d4c574efc3a081324ef92d16e6feb6720c86c33
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 12 10:31:12 2011 +0000

    scheme-api: Translate strings.
    
    Makes the messages emitted by Scheme API functions
    internationalizable.  This required an update to the gnetlist
    testsuite to set the library path for built-but-not-installed Scheme
    modules.
    
    Closes-bug: lp-901013

commit 2f36675adb75051526074f5bed7d18481e8c8159
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 11 20:04:24 2011 +0000

    libgeda: Enable use from C++ programs.
    
    Use G_BEGIN_DECLS and G_END_DECLS to make sure function prototypes are
    declared with C linkage where appropriate.
    
    Closes-bug: lp-698708

commit 0b7b7616785d75eeda689ac9a33c9e99b4796d02
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 11 00:20:06 2011 +0000

    libgeda: Correct prototype for s_clib_symbol_invalidate_data().
    
    Hurrah, rookie errors.

commit ebfe6ae6a76b6a44a0bbe2d184bf99bfee7d97bf
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 11 00:11:59 2011 +0000

    Add s_clib_symbol_invalidate_data().
    
    This allows a symbol's data to be reloaded from disk without
    invalidating the full symbol data cache.
    
    Closes-bug: lp-698504

commit 70536e15af56db31075d72bef6db37b84098d698
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Dec 10 22:51:40 2011 +0000

    scheme-api: Remove redundant checks in edascm_to_object_glist().
    
    These checks are repeated by edascm_to_object(), which
    edascm_to_object_glist calls.

commit 0fc87a9d985e8bd4f98f77d5130e2515c286518c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 4 17:37:34 2011 +0000

    libgeda: Remove some exit() calls and assertions.
    
    Try to avoid assertions in libgeda; instead, emit "critical"-level log
    messages and fail gently.  This patch removes a bunch of assertions
    and calls to exit() from libgeda, in favour of trying to keep going
    even in the face of programmer errors.
    
    Affects-bug: lp-698851

commit cd203133272f0ef39629de5229eb54fdcf3178ae
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 4 17:34:19 2011 +0000

    libgeda: Remove error_if_called().
    
    This silly function is no longer used (fortunately).
    
    Affects-bug: lp-698851

commit 0f978cc519016ac1cbb56c772107e1f23c98c831
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 4 17:25:51 2011 +0000

    Remove exit_if_null().
    
    Replace with g_return_if_fail(), g_return_val_if_fail(), etc.  We
    shouldn't exit() from a shared library anyway.
    
    Also, this patch makes gschem *not* crash in a bunch of places where
    it doesn't really make sense to just give up.
    
    Affects-bug: lp-698851

commit 326a4eca0d36eed80a33b201bcbed4942046f61c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 9 21:09:45 2011 +0000

    scheme-api: Create and manipulate picture objects.
    
    Closes-bug: lp-898379

commit bccf15c104d64b33d33bb7167703469d75884a7e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 9 23:52:19 2011 +0000

    General fixes for pictures, picture rendering and picture operations.
    
    Streamlined the API for picture objects to make it harder to leave a
    picture object in an inconsistent state.  This is a prerequisite patch
    to providing a Scheme API for working with picture objects.
    
    This patch also makes primitive transformations of pictures actually
    work, and fixes rendering of pictures in gschem, because the changes
    weren't really feasible to separate.

commit e85e8c5843f23432cb03d4dd8c95fb34753f7801
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 9 21:07:48 2011 +0000

    libgeda: Add missing pre change notify to o_box_modify_all().

commit 648a418f99c337a185462525bbffa66b89786007
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Dec 8 20:25:42 2011 +0000

    libgeda: Clean up unneeded stuff now we have (geda os) module.
    
    Also a rather out-of-date comment.

commit ae070b080856b6eef1059ee50dede82cc4f0afe8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Dec 8 17:23:10 2011 +0000

    scheme-api: Add (geda os) module.
    
    Add the (geda os) module, which provides operating system information
    and services, including:
    
    - host operating system classification
    - gEDA standard paths
    - directory and search path separators

commit eb1e773f3f95f99fcd6ac6d0d0ebc947102e60ab
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Dec 8 17:23:10 2011 +0000

    libgeda: Make sure paths are set up during initialisation.
    
    Until the s_path_*() functions are called, the GEDADATA and GEDADATARC
    environment variables may not be set.  Make sure the environment
    variables are set up during library startup.

commit ec03489e1057f10a35a0877c52034dee99f50bc6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 30 21:39:52 2011 +0000

    libgeda: Make f_normalize_pathname() behave correctly on Windows.
    
    On POSIX systems, f_normalize_pathname() emits a G_FILE_ERROR_NOENT
    error if the file is missing.  This patch makes it behave in the same
    way on Windows.
    
    This fixes some spurious "something went wrong in Scheme" error
    messages on Windows.
    
    Reported-by: DJ Delorie <dj@delorie.com>

commit e4dcffe27047d7a72698c331cfcc835d564b7ef4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 5 12:19:12 2011 +0000

    libgeda: Add "deprecated" attribute to deprecated functions.

commit bad14b02ef17c9118b17cb3345165e0cbddb9405
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 5 12:25:29 2011 +0000

    scheme-api: Warn if edascm_to_object_glist() result is unused.

commit 762a91e24ea91eeba8a67fab75071f9173bfaa6a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 5 12:12:16 2011 +0000

    scheme-api: Clear all new path section fields.
    
    Fixes some unitialised variable warnings.

commit abc0f07300a726eef628c74e8250f4f115dae987
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 5 11:47:46 2011 +0000

    scheme-api: Add test for feeding back fill/stroke functions.

commit 387394696a6d8191edd68f9aa2f208c736900d2f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 5 11:47:21 2011 +0000

    scheme-api: Modifying object fill/stroke should dirty page.

commit 76e13d2452d7d45dbc10993fae7e0d5d17929ff1
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 5 11:00:19 2011 +0000

    scheme-api: Update some doxygen comments.

commit 5244f978119e23709ea794f69d095dd07d798a56
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 5 09:32:08 2011 +0000

    scheme-api: edascm_c_set_gc() should be part of public API.
    
    The documentation for edascm_from_object() recommends using
    edascm_c_set_gc() -- since its essential for safe garbage collector
    behaviour -- so put edascm_c_set_gc() in the public Scheme API header
    file.

commit 1ceef2c85bdbc454205d7330c86498381f167cc0
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 4 22:22:53 2011 +0000

    scheme-api: Add path manipulation functions.
    
    Closes-bug: lp-898377

commit 057cab0629c92ab9bd207e49e082183ba481dc2d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 4 23:18:39 2011 +0000

    libgeda: Empty paths should not have bounds.
    
    Paths containing no control points were returning uninitialised values
    as their bounds.  Instead, they now have no bounds (like invisible
    text objects).

commit dc65cd116b28138f28c7823c908740d8129042d6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 4 18:11:30 2011 +0000

    libgeda: Fix some "set but not used" warnings.

commit 34d46a6158050b232f29e61d0cae8ac1aacca2a6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Nov 28 13:28:55 2011 +0000

    libgeda: Don't enable debugging when using Guile 2.
    
    Guile 2 always has debugging enabled, and emits a warning if you
    attempt to enable it explicitly.  This patch therefore reduces tools'
    verbosity on start-up.  Thanks to Ludovic Courtès for explaining the
    fix.

commit c9d4f6638bbc7ba84534c2460037f19915114a95
Author: Karl Hammar <karl@aspodata.se>
Date:   Tue Jul 26 16:08:01 2011 +0200

    Correct SCM_ASSERT() usage with incorrect SCM_ARGx.
    
    From guile documentation:
    
     -- Macro: void SCM_ASSERT (int TEST, SCM OBJ, unsigned int POSITION,
              const char *SUBR)
    ...
     -- Macro: int SCM_ARG1
    ...
     -- Macro: int SCM_ARG7
         One of the above values can be used for POSITION to indicate the
         number of the argument of SUBR which is being checked.
    ...
    
    Some SCM_ASSERT() calls have the wrong SCM_ARGx for its TEST and OBJ.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>

commit 08f64a801c3af30ef54861f3549f3de6ea02b1b2
Author: Karl Hammar <karl@aspodata.se>
Date:   Tue Jul 26 09:40:52 2011 +0100

    libgeda: g_access() needs <glib/gstdio.h>.
    
    Commit 22985618d999e1b54009b7a3e4f07b27b449f91d added g_access calls
    in libgeda/src/f_basic.c, which is implicit unless glib/gstdio.h is
    included.

commit a2cdb3d2e2ed36be092f01a2c1c30de0eb095092
Author: Karl Hammar <karl@aspodata.se>
Date:   Tue Jul 26 09:40:52 2011 +0100

    libgeda: Call g_dir_close() for pointers created with g_dir_open().
    
    In g_rc.c
    
     g_rc_component_library_search()
     g_rc_source_library_search()
    
    calls g_dir_open(), but they never free the result with g_dir_close(),
    giving us a memory leak. It seems to been this way since the first
    commit.

commit 22985618d999e1b54009b7a3e4f07b27b449f91d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Jul 4 19:03:24 2011 +0100

    libgeda: Make sure File->Save respects file permissions.
    
    Added g_access calls to f_save and o_save to abort saving if the
    destination file is read-only.
    
    Closes-bug: lp-698565
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>

commit 19bf47f7ca84bb4a9a19460fff9bbbf378bc2dab
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sun Jul 3 16:18:41 2011 +0200

    scheme-api: use attach-attribs! in promote-attribs!

commit d01b5fefe19ac2cd1ce5e84b0a3b866ca42033e3
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sun Jul 3 14:11:48 2011 +0200

    scheme-api: fix promote-attribs!

commit d01e46055593990e918d94e4b30609df989561b4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jun 28 06:25:03 2011 +0100

    build-sys: guile-snarf should use host CPP.
    
    Fix cross-compilation by making sure that guile-snarf uses the same C
    preprocessor that will be later used for compilation.
    
    Reported-by: DJ Delorie <dj@delorie.com>

commit dad94bf12c2ef120fae7a45a0020107815b84ef0
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Jun 27 22:34:07 2011 +0100

    build-sys: Use `clean-local' target instead of overriding `clean'.

commit 31fcff837375b3db8649f1f1854dd0daa98e901a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 16 21:45:27 2011 +0100

    scheme-api: Converting pages to/from strings.

commit 71621e0f9d6ed201ac3968823b0b6b852fe3f070
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 25 11:57:55 2011 +0100

    scheme-api: Add mirror-objects! function.

commit 01e9ab2b42bff0de6386706ba3eb11e7a7c6f5e9
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 25 11:19:20 2011 +0100

    scheme-api: Add rotate-objects! function.

commit 208984c6815066a90c7d1d3583f271524344797e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 25 10:14:03 2011 +0100

    scheme-api: Add translate-objects! function.

commit 3a47ea70adf7bae086b7d28455c2cacd707b434c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 25 10:51:55 2011 +0100

    scheme-api: Shuffle some unit tests around.
    
    It turns out we need more test numbers for low-level object-related
    functions, so shift some stuff about.

commit 7c88e88e38bcd20f6ad3e46604f2b117b6fef0a6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 24 14:00:10 2011 +0100

    scheme-api: Core API documentation (attributes).

commit dd5b9c7c08307104ce360661f6e696ce87c77389
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 24 08:08:44 2011 +0100

    scheme-api: Core API documentation (component objects).

commit 224e3edec54febcf055810e6d4220369e50f1ade
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 22:02:55 2011 +0100

    scheme-api: Core API documentation (text objects).

commit 1e9d73ec74c6abd2ddfcf18cccadc9c0c44ff7ff
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 21:07:17 2011 +0100

    scheme-api: Core API documentation (picture and path objects).

commit be7d5d316bbf944f9e0a618ddff795a073de9183
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 19:47:20 2011 +0100

    scheme-api: Core API documentation (circle objects).

commit e7ed5291067d56419efe3764190d22fa7714937e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 18:44:07 2011 +0100

    scheme-api: Core API documentation (box objects).

commit b1ca0b60c9218db51132272ffdf0c1815d29b80f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 18:11:21 2011 +0100

    scheme-api: Core API documentation (pin objects).

commit 37338045adf382ecef00d5ee5f337c4da250b996
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 13:07:59 2011 +0100

    scheme-api: Core API documentation (line objects).

commit fd1e63aefad0097b1f99cf6cdb31998efec5c407
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 16:33:15 2011 +0100

    scheme-api: Core API documentation (general objects).

commit bcd036f9432335473d5ad64e18d83df669947eb3
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jun 21 21:19:45 2011 +0100

    scheme-api: Core API documentation (pages).

commit 008ba78fc1a60641b620cabc9ecc198cd0a2225c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 24 19:03:54 2011 +0100

    scheme-api: Make promote-attribs! return '() for non-components.

commit c0125211b863d0d54554c39abda8c76f7ad27fae
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 24 15:09:38 2011 +0100

    scheme-api: Make %detach-attrib! succeed when not attached.
    
    %detach-attrib! claims to succeed when attempting to detach an
    attribute that's not attached to anything, but it lies.

commit 1d97d6c9cad63a79bceaa9d599a757c01f1a60e7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 24 15:03:15 2011 +0100

    scheme-api: Make %attach-attrib! succeed when already attached.
    
    Instead of raising an object-state exception when trying to create an
    attribute attachment that already exists, succeed silently.

commit dce70c5e826e2958d02a5bf8089b7dd1eb3a519f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 24 14:36:09 2011 +0100

    scheme-api: Replace attach-attrib! and detach-attrib!.
    
    For consistency with the functions for adding and removing objects to
    pages and components, this patch makes the following changes:
    
    - Replace attach-attrib! with attach-attribs! which takes multiple
      attribute arguments.
    
    - Replace detach-attrib! with detach-attribs! which takes multiple
      attribute arguments.
    
    - Make attach-attrib! and detach-attrib! return the target object
      rather than the affected attributes.

commit b5046514e8c4561de9a5a249624b23e003a2988a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 24 14:14:32 2011 +0100

    scheme-api: Make parse-attrib stricter about input.
    
    parse-attrib now raises an attribute-format exception if input is a
    text object but not in the correct format (i.e. it only returns on
    success).

commit 8b9f6235d72ad5be0fca53613e7ca77802543d58
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 24 14:08:12 2011 +0100

    scheme-api: Make attribute? only return #t or #f.

commit c6b89e3d030a6fa061598dd467f4bee9c147c28e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 09:38:27 2011 +0100

    scheme-api: Allow fold-bounds to take any number of arguments.
    
    Also add a unit test.

commit daaf7d90949a3ac7cfe2914aedd1bb5c170c375b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 09:14:20 2011 +0100

    scheme-api: Allow %object-bounds to take no arguments.
    
    Allow %object-bounds to take an empty argument list and return #f.
    
    Since %object-bounds already returns #f in none of the object
    arguments has any bounds, it's consistent to return #f in no arguments
    are supplied.

commit 7c759d21f74e89e41d08bbc871891554ec027607
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 23 09:19:02 2011 +0100

    scheme-api: %object-type should raise errors on bad type.
    
    If %object-type encounters an object with an invalid type field,
    %object-type should raise an error rather than logging a message and
    returning #f.
    
    Since we can't actually create an object with an invalid type field
    from the Scheme API, there's sadly no way of unit-testing this change.

commit 9c540461df266e548684ab2f0bd3294605cf749e
Merge: f7cc583 12260ba
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jun 19 18:16:48 2011 +0100

    Merge changes from main unstable branch

commit f7cc58369760991eda968571d5677e97ca2092cd
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jun 19 17:32:01 2011 +0100

    scheme-api: Add the set-attrib-value! function.

commit e6870ce5a1aac5f2da8d6bb53495d6a52967a538
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jun 19 17:31:32 2011 +0100

    scheme-api: Add the set-text-string! function.

commit 7eb55e097bf26bef7a4c57753837ee69c5c3471e
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jun 19 10:33:58 2011 -0400

    Updated all po files in prep for a release

commit 22a146a4a8a221908ab531aafc1d901a3358c133
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 18 11:35:16 2011 +0100

    scheme-api: Document object-bounds and add fold-bounds.
    
    Fold-bounds is a function for combining two bounds as returned by the
    object-bounds function.

commit 0a5ccba701c23e0dadee78e908e9f8f09c590340
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 16 20:05:27 2011 +0100

    scheme-api: Add some more tests for copy-object.
    
    Add two tests for copy-object: whether copying an object breaks page,
    component and attribute relationships, and whether copying a component
    is a deep copy.

commit 292c930244a9616642ade8a3afd4cc740c61d368
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 16 15:20:48 2011 +0100

    scheme-api: Add attrib-inherited? function.

commit db3b79c7659a7526acf726c457b1c2915254fc4b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 16 15:09:40 2011 +0100

    scheme-api: Add object-component function.
    
    Add a Scheme function for obtaining an object's containing component.

commit e21e30af19f0c32743dc4663c19d5672ef3e518f
Merge: 8c66dc1 a2caee6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 16 15:39:47 2011 +0100

    Merge changes from main unstable branch

commit a2caee658af54b32ac3ad88564d8a04822db2fff
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 16 15:36:29 2011 +0100

    libgeda: Add o_get_parent() function.
    
    Add a function to retrieve an OBJECT's containing complex OBJECT, if
    present.

commit 5cf897c1c107dc3d0b2e4ef82d1f15cbdeb76041
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jun 14 00:10:36 2011 +0100

    scheme-api: Use missing.h to pull in SCM<->C string funcs.

commit c603a85e1cdd63f770a19fb23d2fab49c14b3d0b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 11 13:41:53 2011 +0100

    scheme-api: Add promote-attribs! function.
    
    Add a function to promote any promotable attributes from a component.

commit cc1a3d0209a83aaa82404f41e42bb8a2c0c098b9
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 11 14:02:57 2011 +0100

    scheme-api: Add set-text-visibility! function.
    
    Helper function for toggling visibility of a text object.

commit f5040254fe52ef181ff8bd205c33315b00e76c2c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 11 18:15:02 2011 +0100

    scheme-api: Correct error messages from %set-text!

commit 623341482a94b2f92e662dd8e9ff8f6a218f42cc
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 11 21:43:57 2011 +0100

    Use UTF-8 instead of locale Scheme string functions.
    
    See commit 09c6613f93b6.

commit 91865253d6e4422b06648fe5b0334a5013a7d08a
Merge: 4bccef2 09c6613
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 11 21:42:48 2011 +0100

    Merge changes from main unstable branch
    
    Conflicts:
    	libgeda/src/g_register.c
    	libgeda/src/g_smob.c

commit 09c6613f93b65d3f9193e7dbc65bd696cf8a6b06
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 11 20:35:37 2011 +0100

    libgeda: Use UTF-8 instead of locale Scheme string functions.
    
    Note that there are several places where locale string functions are
    still used, because the input depends on the current locale
    (e.g. strings obtained from command-line options or from the
    filesystem).
    
    There are still a lot of places where we're still treating
    locale-dependent strings as UTF-8 strings (and probably vice-versa).
    Enough bugs for everybody to share!

commit 259dc82a4115df0595b65542f8ab69add1946881
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 10 17:28:20 2011 +0100

    libgeda: Guess system paths from libgeda location on Win32.
    
    Improve guessing the location to look for the gEDA shared data
    directory on Windows by guessing based on the location of the libgeda
    DLL.
    
    Closes-bug: lp-795545

commit 4b8c6745629f7c316c7ff9f09e4a6301a8d20a74
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 10 15:57:13 2011 +0100

    libgeda: Fix crash on startup on Windows.
    
    If the GEDADATA environment variable was not set on Windows, libgeda
    was unable to determine the gEDA system data directory. It would then
    attempt to make a Scheme string from the resulting NULL pointer,
    causing a crash.
    
    This patch alters the behaviour on Windows. If GEDADATA is not set,
    libgeda now guesses that the system data directory is the current
    working directory.
    
    Unfortunately, this will still prevent most gEDA programs from working
    due to not being able to locate data files, but it will prevent an
    uninformative segfault on startup.
    
    Affects-bug: lp-795545

commit 1121d83a5450ad9040cabb7ef9a8cfb6c2a395f3
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 10 13:46:15 2011 +0100

    scheme-api: Only use (ice-9 syncase) if define-syntax missing.
    
    In Guile 2.0, syntax-case is built in by default and importing the
    (ice-9 syncase) module isn't required.

commit cbdeedd05e825c0d11080392c16cd86a1968ba73
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 10 13:30:05 2011 +0100

    scheme-api: Change format of unit test output.
    
    If running a test caused output to stdout or stderr, it was interposed
    between the name of the test and the result.  This patch makes the
    name and result of the test be printed together after the result has
    been determined, resulting in tidier output.

commit 14eab2daf97f03ef7cdb26c2c3e8969f99b22a70
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 19:33:28 2010 +0000

    scheme-api: Add skip-test macro to unit-test.scm

commit 2d1944bb44a2a6785f942e1d24999e64e7052f71
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 10 10:46:11 2011 +0100

    libgeda: Remove some unused variables.

commit 0344623ea013e54a15735988b75508c07469d4d8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 9 17:19:59 2011 +0100

    scheme-api: Make tests work with Guile 2.0.
    
    #:use-syntax doesn't work with Guile 2.0, apparently.

commit e67d080a7c48dd1300c90c93d8b1723958244a2d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 9 15:19:24 2011 +0100

    libgeda: cleanfiles -> CLEANFILES
    
    Wrong case in automake input resulted in some generated files not
    being removed during `make clean'.

commit 694ccbdec90765ca4cb9b2dbcb1bbe7cdfba2f0b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 9 15:11:27 2011 +0100

    scheme-api: OBJECT.sel_func doesn't exist any more.

commit 1543eda1dbb823fd3052a3b831eae5b8316ed690
Merge: 19963e9 014b30b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 9 15:06:46 2011 +0100

    Merge changes from main unstable branch
    
    Conflicts:
    	gschem/scheme/gschem.scm
    	libgeda/include/prototype_priv.h
    	libgeda/src/g_smob.c
    	libgeda/src/o_basic.c

commit 014b30b5f2475f89830fadd1eb4d8f9c2056e647
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sun Jun 5 22:11:35 2011 +0200

    libgeda: smob free functions now return 0
    
    In past guile required to return the size of deallocated memory.  Since
    commit 1735a9e0378290382ec9d0db83c76d039b0c5c7c memory for the smobs is
    allocated from heap and not from guile memory pool. In such case
    (and to be compliant with recent guile versions) the free functions must
    return 0.

commit d9e7c8f29bdef0913515649356f4b1d43a36fee6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 4 12:54:10 2011 +0100

    libgeda: Silently skip missing/duplicate rc during schematic load.
    
    Affects-bug: lp-710587

commit 84949b85df8e8ac1475ae8555bcffe060624d254
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 4 12:43:28 2011 +0100

    Silently skip duplicate config files.
    
    Affects-bug: lp-710587

commit 83777ec203d9dfcf6a257a0c92e2fe2a3deeb552
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 4 12:30:36 2011 +0100

    Silently skip missing config files.
    
    Closes-bug: lp-710587

commit a8723507d0f62c784289cd9785ef12e2c412da8a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 4 10:51:23 2011 +0100

    libgeda: Fix error location information for scm_display_error().

commit f649a5ac09d943889ac49e8a8a68e2b627391c1a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 3 22:11:44 2011 +0100

    libgeda: Fix for running with Guile 2.x.
    
    scm_display_error() requires a stack as first argument in Guile 1.8.x,
    and a frame as first argument in Guile 2.0.x.  Luckily, both versions
    accept #f instead.

commit 680dba23bb571f50b4dc9c04eb3e89bf25817478
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 3 16:33:11 2011 +0100

    libgeda: Check argument type for g_attrib_is_inherited().

commit e925ef237bb68b060c761dd2f45bf2370fbfedf8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 3 16:28:33 2011 +0100

    libgeda: Use SCM_SMOB_PREDICATE to check smob type.
    
    Simplify smob type checks by using SCM_SMOB_PREDICATE. This also
    removes the assumption that smob type tags are located in the car of
    the smob cell.

commit f19235afb1c964570f00ce6b5b80441cc95253b5
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 3 16:23:22 2011 +0100

    libgeda: Use SCM_SMOB_DATA instead of SCM_CDR.
    
    SCM_CDR makes assumptions about the Guile SCM smob type's memory
    layout that aren't necessarily true for all versions of Guile.
    SCM_SMOB_DATA is the correct method for accessing the first word
    stored in a smob type.

commit 1735a9e0378290382ec9d0db83c76d039b0c5c7c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 3 16:09:22 2011 +0100

    libgeda: Remove uses of deprecated scm_must_malloc.

commit fb917f8b61f58b3cde5f1730b94c28c5992edea1
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 3 15:58:31 2011 +0100

    Remove uses of deprecated scm_makfrom0str.

commit eb2eeee3626c6f127ba2790f708b03d06bb04122
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 3 15:29:46 2011 +0100

    Remove uses of deprecated scm_num2double.

commit 0737c34e057ed008a6c342238d21041a5cb200b5
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Wed May 25 01:52:13 2011 +0200

    libgeda: add comparison function for page smob
    
    Page smobs are now compared using PAGE pointer equality.
    This allows to use page smobs as keys in assoc lists in Scheme.
    
    Affects-bug: lp-787637

commit 081767282d449c93c11e5f7ed91a88ad4ad4276c
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Thu May 26 01:17:55 2011 +0200

    libgeda: add attrib-inherited? scheme procedure
    
    Affects-bug: lp-787637

commit 962d859870fc45f741df478b000cbb435d422b84
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sat May 21 01:13:10 2011 +0200

    libgeda: update shared MIME info xml file
    
    For gschem versions released in 2010 and later, content of schematic and
    symbol files begins with string "v 201".

commit 5fa030a92ea9dfe72b9f3adede046d27183c5e5a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Apr 8 00:37:42 2011 +0100

    libgeda: Allow support for not printing the background
    
    If the colour map background is set to #f, don't print anything.
    
    This is handy if you wish to composite the resulting pdf file with
    anything else, and don't want the opaque background.

commit 980e933a85d180019152424023b879c39d7e4aff
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Mar 26 14:04:06 2011 +0000

    gattrib: Preserve visibility of embedded component attributes
    
    gattrib was overriding the visibility of pin attributes to match the
    visibility of the pin. This was not noticed for non-embedded complex
    objects, as the edited pin attributes are not saved. For embedded
    components, they are.

commit 06692019e4c66e948cad3414ef92f188e9a38c98
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Mar 26 14:04:03 2011 +0000

    libgeda: Fix primitive object load order of embedded objects
    
    We were missing a g_list_reverse() when assigning the loaded prim_objs.
    This is necessary as for performance, we prepend to the object glist
    when reading - then reverse the list as a final step.

commit 0fffd6b16214cd05cba9de9e4d65d4e1ea2cf16a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Mar 21 19:53:29 2011 +0000

    Remove draw funcs from libgeda.
    
    Removes all of the statically-registered draw functions from libgeda,
    as well as the draw_func field from the OBJECT structure. Makes
    o_redraw_single() dispatch to type-specific drawing functions
    directly.
    
    Refreshed by Peter Clifton <pcjc2@cam.ac.uk>

commit 41ae0eaa4d3b23702510d3d51bbfe4821166bc06
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Mar 21 19:52:18 2011 +0000

    Remove unused OBJECT->action_func

commit 82db4b3a104b722af13a24333f6f3f60c1f5549e
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Mar 21 19:49:37 2011 +0000

    libgeda: Fix copying selectable flag in o_picture_copy()
    
    I dropped this from 7cc025db90267d5cb5b038e2cc39cb15544e0367 by accident.

commit 7cc025db90267d5cb5b038e2cc39cb15544e0367
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Mar 21 19:21:49 2011 +0000

    Remove OBJECT->sel_func in favour of an OBJECT->selectable flag
    
    Only gschem called OBJECT->sel_func anyway, so lets avoid passing vfunc
    pointers everywhere as a flag. This has the added benefit of removing
    some dummy functions from gattrib and gschlas which were only present
    so the status of locked objects could be preserved across load/save.

commit 0b49dd7aba9cbef87d765151adb728b781e4cf81
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sat Mar 12 16:13:21 2011 +0100

    libgeda: report errors in f_save
    
    Affects-bug: lp-698566

commit d506039d41aea6ecd9e15e62e7b79de8cca284bd
Author: Krzysztof Kościuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sat Mar 12 16:07:34 2011 +0100

    libgeda: add GError argument to f_save and o_save
    
    o_save and f_save now can report errors during file write using GLib
    GError mechanism, similar to f_open.
    
    Affects-bug: lp-698566

commit eee6b8c11a3bb73c5ea3dd21645c236205da0749
Author: Vladimir Zhbanov <vzhbanov@gmail.com>
Date:   Tue Feb 15 08:08:30 2011 +0300

    libgeda: fix unicode font printing -- step three
    
    Step three: eliminate twin glyphs, that is such glyphs whose names
    specify the same unicode keys. (Leave only those glyph keys which are
    mapping to present in AGLv1.2 names. If such names are missing for an
    individual key in AGLv1.2 then leave only one key-name pair for each
    such the key.)
    
    Closes-bug: lp-720218

commit 65c0d6b84bab67df4f5772039b0dd651d4611717
Author: Vladimir Zhbanov <vzhbanov@gmail.com>
Date:   Mon Feb 14 14:16:40 2011 +0300

    libgeda: fix unicode font printing -- step two
    
    Step two: eliminate wrong keys for hebrew and arabic.
    
    f_print.c is supposed to support "Adobe Glyph List version 2.0", but it
    interprets key sequences from that standard wrongly.
    
    It does not include "spacehackarabic" glyph name. That is no problem
    since there is glyph "space" with the same key 0020.
    
    It breaks up key sequences of two or more keys for one name for hebrew
    and arabic into separate pairs key-name and this is wrong.
    
    The table below summarizes differences between AGLv2.0 and f_print.c
    interpretation.
    
    |                Glyph name |          AGLv2.0 key |f_print.c key |
    -------------------------------------------------------------------
    |           spacehackarabic |                0020  |              |
    |           dalethatafpatah |            05B2 05D3 |         05B2 |
    |           dalethatafpatah |                      |         05D3 |
    |     dalethatafpatahhebrew |            05B2 05D3 |         05B2 |
    |     dalethatafpatahhebrew |                      |         05D3 |
    |           dalethatafsegol |            05B1 05D3 |         05B1 |
    |           dalethatafsegol |                      |         05D3 |
    |     dalethatafsegolhebrew |            05B1 05D3 |         05B1 |
    |     dalethatafsegolhebrew |                      |         05D3 |
    |                dalethiriq |            05B4 05D3 |         05B4 |
    |                dalethiriq |                      |         05D3 |
    |          dalethiriqhebrew |            05B4 05D3 |         05B4 |
    |          dalethiriqhebrew |                      |         05D3 |
    |                daletholam |            05B9 05D3 |         05B9 |
    |                daletholam |                      |         05D3 |
    |          daletholamhebrew |            05B9 05D3 |         05B9 |
    |          daletholamhebrew |                      |         05D3 |
    |                daletpatah |            05B7 05D3 |         05B7 |
    |                daletpatah |                      |         05D3 |
    |          daletpatahhebrew |            05B7 05D3 |         05B7 |
    |          daletpatahhebrew |                      |         05D3 |
    |               daletqamats |            05B8 05D3 |         05B8 |
    |               daletqamats |                      |         05D3 |
    |         daletqamatshebrew |            05B8 05D3 |         05B8 |
    |         daletqamatshebrew |                      |         05D3 |
    |               daletqubuts |            05BB 05D3 |         05BB |
    |               daletqubuts |                      |         05D3 |
    |         daletqubutshebrew |            05BB 05D3 |         05BB |
    |         daletqubutshebrew |                      |         05D3 |
    |                daletsegol |            05B6 05D3 |         05B6 |
    |                daletsegol |                      |         05D3 |
    |          daletsegolhebrew |            05B6 05D3 |         05B6 |
    |          daletsegolhebrew |                      |         05D3 |
    |                daletsheva |            05B0 05D3 |         05B0 |
    |                daletsheva |                      |         05D3 |
    |          daletshevahebrew |            05B0 05D3 |         05B0 |
    |          daletshevahebrew |                      |         05D3 |
    |                dalettsere |            05B5 05D3 |         05B5 |
    |                dalettsere |                      |         05D3 |
    |          dalettserehebrew |            05B5 05D3 |         05B5 |
    |          dalettserehebrew |                      |         05D3 |
    |            finalkafqamats |            05B8 05DA |         05B8 |
    |            finalkafqamats |                      |         05DA |
    |      finalkafqamatshebrew |            05B8 05DA |         05B8 |
    |      finalkafqamatshebrew |                      |         05DA |
    |             finalkafsheva |            05B0 05DA |         05B0 |
    |             finalkafsheva |                      |         05DA |
    |       finalkafshevahebrew |            05B0 05DA |         05B0 |
    |       finalkafshevahebrew |                      |         05DA |
    |          hamzadammaarabic |            064F 0621 |         064F |
    |          hamzadammaarabic |                      |         0621 |
    |       hamzadammatanarabic |            064C 0621 |         064C |
    |       hamzadammatanarabic |                      |         0621 |
    |          hamzafathaarabic |            064E 0621 |         064E |
    |          hamzafathaarabic |                      |         0621 |
    |       hamzafathatanarabic |            064B 0621 |         064B |
    |       hamzafathatanarabic |                      |         0621 |
    |       hamzalowkasraarabic |            0650 0621 |         0650 |
    |       hamzalowkasraarabic |                      |         0621 |
    |    hamzalowkasratanarabic |            064D 0621 |         064D |
    |    hamzalowkasratanarabic |                      |         0621 |
    |          hamzasukunarabic |            0652 0621 |         0652 |
    |          hamzasukunarabic |                      |         0621 |
    |                lamedholam |            05B9 05DC |         05B9 |
    |                lamedholam |                      |         05DC |
    |          lamedholamdagesh |       05BC 05DC 05B9 |         05BC |
    |          lamedholamdagesh |                      |         05B9 |
    |          lamedholamdagesh |                      |         05DC |
    |    lamedholamdageshhebrew |       05BC 05DC 05B9 |         05BC |
    |    lamedholamdageshhebrew |                      |         05B9 |
    |    lamedholamdageshhebrew |                      |         05DC |
    |          lamedholamhebrew |            05B9 05DC |         05B9 |
    |          lamedholamhebrew |                      |         05DC |
    |  lammeemjeeminitialarabic |       FEA0 FEDF FEE4 |         FEA0 |
    |  lammeemjeeminitialarabic |                      |         FEDF |
    |  lammeemjeeminitialarabic |                      |         FEE4 |
    |  lammeemkhahinitialarabic |       FEA8 FEDF FEE4 |         FEA8 |
    |  lammeemkhahinitialarabic |                      |         FEDF |
    |  lammeemkhahinitialarabic |                      |         FEE4 |
    |      noonhehinitialarabic |            FEEC FEE7 |         FEEC |
    |      noonhehinitialarabic |                      |         FEE7 |
    |             qofhatafpatah |            05B2 05E7 |         05B2 |
    |             qofhatafpatah |                      |         05E7 |
    |       qofhatafpatahhebrew |            05B2 05E7 |         05B2 |
    |       qofhatafpatahhebrew |                      |         05E7 |
    |             qofhatafsegol |            05B1 05E7 |         05B1 |
    |             qofhatafsegol |                      |         05E7 |
    |       qofhatafsegolhebrew |            05B1 05E7 |         05B1 |
    |       qofhatafsegolhebrew |                      |         05E7 |
    |                  qofhiriq |            05B4 05E7 |         05B4 |
    |                  qofhiriq |                      |         05E7 |
    |            qofhiriqhebrew |            05B4 05E7 |         05B4 |
    |            qofhiriqhebrew |                      |         05E7 |
    |                  qofholam |            05B9 05E7 |         05B9 |
    |                  qofholam |                      |         05E7 |
    |            qofholamhebrew |            05B9 05E7 |         05B9 |
    |            qofholamhebrew |                      |         05E7 |
    |                  qofpatah |            05B7 05E7 |         05B7 |
    |                  qofpatah |                      |         05E7 |
    |            qofpatahhebrew |            05B7 05E7 |         05B7 |
    |            qofpatahhebrew |                      |         05E7 |
    |                 qofqamats |            05B8 05E7 |         05B8 |
    |                 qofqamats |                      |         05E7 |
    |           qofqamatshebrew |            05B8 05E7 |         05B8 |
    |           qofqamatshebrew |                      |         05E7 |
    |                 qofqubuts |            05BB 05E7 |         05BB |
    |                 qofqubuts |                      |         05E7 |
    |           qofqubutshebrew |            05BB 05E7 |         05BB |
    |           qofqubutshebrew |                      |         05E7 |
    |                  qofsegol |            05B6 05E7 |         05B6 |
    |                  qofsegol |                      |         05E7 |
    |            qofsegolhebrew |            05B6 05E7 |         05B6 |
    |            qofsegolhebrew |                      |         05E7 |
    |                  qofsheva |            05B0 05E7 |         05B0 |
    |                  qofsheva |                      |         05E7 |
    |            qofshevahebrew |            05B0 05E7 |         05B0 |
    |            qofshevahebrew |                      |         05E7 |
    |                  qoftsere |            05B5 05E7 |         05B5 |
    |                  qoftsere |                      |         05E7 |
    |            qoftserehebrew |            05B5 05E7 |         05B5 |
    |            qoftserehebrew |                      |         05E7 |
    |       rehyehaleflamarabic |  0644 0631 FEF3 FE8E |         0644 |
    |       rehyehaleflamarabic |                      |         0631 |
    |       rehyehaleflamarabic |                      |         FE8E |
    |       rehyehaleflamarabic |                      |         FEF3 |
    |            reshhatafpatah |            05B2 05E8 |         05B2 |
    |            reshhatafpatah |                      |         05E8 |
    |      reshhatafpatahhebrew |            05B2 05E8 |         05B2 |
    |      reshhatafpatahhebrew |                      |         05E8 |
    |            reshhatafsegol |            05B1 05E8 |         05B1 |
    |            reshhatafsegol |                      |         05E8 |
    |      reshhatafsegolhebrew |            05B1 05E8 |         05B1 |
    |      reshhatafsegolhebrew |                      |         05E8 |
    |                 reshhiriq |            05B4 05E8 |         05B4 |
    |                 reshhiriq |                      |         05E8 |
    |           reshhiriqhebrew |            05B4 05E8 |         05B4 |
    |           reshhiriqhebrew |                      |         05E8 |
    |                 reshholam |            05B9 05E8 |         05B9 |
    |                 reshholam |                      |         05E8 |
    |           reshholamhebrew |            05B9 05E8 |         05B9 |
    |           reshholamhebrew |                      |         05E8 |
    |                 reshpatah |            05B7 05E8 |         05B7 |
    |                 reshpatah |                      |         05E8 |
    |           reshpatahhebrew |            05B7 05E8 |         05B7 |
    |           reshpatahhebrew |                      |         05E8 |
    |                reshqamats |            05B8 05E8 |         05B8 |
    |                reshqamats |                      |         05E8 |
    |          reshqamatshebrew |            05B8 05E8 |         05B8 |
    |          reshqamatshebrew |                      |         05E8 |
    |                reshqubuts |            05BB 05E8 |         05BB |
    |                reshqubuts |                      |         05E8 |
    |          reshqubutshebrew |            05BB 05E8 |         05BB |
    |          reshqubutshebrew |                      |         05E8 |
    |                 reshsegol |            05B6 05E8 |         05B6 |
    |                 reshsegol |                      |         05E8 |
    |           reshsegolhebrew |            05B6 05E8 |         05B6 |
    |           reshsegolhebrew |                      |         05E8 |
    |                 reshsheva |            05B0 05E8 |         05B0 |
    |                 reshsheva |                      |         05E8 |
    |           reshshevahebrew |            05B0 05E8 |         05B0 |
    |           reshshevahebrew |                      |         05E8 |
    |                 reshtsere |            05B5 05E8 |         05B5 |
    |                 reshtsere |                      |         05E8 |
    |           reshtserehebrew |            05B5 05E8 |         05B5 |
    |           reshtserehebrew |                      |         05E8 |
    |      shaddafathatanarabic |            064B 0651 |         064B |
    |      shaddafathatanarabic |                      |         0651 |
    |    tchehmeeminitialarabic |            FEE4 FB7C |         FEE4 |
    |    tchehmeeminitialarabic |                      |         FB7C |
    
    So you can see that the glyph name "dalethatafpatah" maps to key pair
    05B2 05D3, which is representation of two glyphs 05B2 ("hatafpatah") and
    05D3 ("dalet"). f_print.c in such a case in addition to "hatafpatah" and
    "dalet" introduces two new incorrect mappings of "dalethatafpatah" to
    05B2 and 05D3 respectively.
    
    Real mappings of each key in such key sequences according to AGLv2.0 are
    summarized in the table below.
    
    | key  | Glyph name                                         |
    -------------------------------------------------------------
    | 05B0 | afii57799, sheva, sheva115, sheva15, sheva22, sheva2e,
    shevahebrew, shevanarrowhebrew, shevaquarterhebrew,
    shevawidehebrew |
    | 05B1 | afii57801, hatafsegol, hatafsegol17, hatafsegol24,
    hatafsegol30, hatafsegolhebrew, hatafsegolnarrowhebrew,
    hatafsegolquarterhebrew, hatafsegolwidehebrew |
    | 05B2 | afii57800, hatafpatah, hatafpatah16, hatafpatah23,
    hatafpatah2f, hatafpatahhebrew, hatafpatahnarrowhebrew,
    hatafpatahquarterhebrew, hatafpatahwidehebrew |
    | 05B4 | afii57793, hiriq, hiriq14, hiriq21, hiriq2d,
    hiriqhebrew, hiriqnarrowhebrew, hiriqquarterhebrew,
    hiriqwidehebrew |
    | 05B5 | afii57794, tsere, tsere12, tsere1e, tsere2b,
    tserehebrew, tserenarrowhebrew, tserequarterhebrew,
    tserewidehebrew |
    | 05B6 | afii57795, segol, segol13, segol1f, segol2c,
    segolhebrew, segolnarrowhebrew, segolquarterhebrew,
    segolwidehebrew |
    | 05B7 | afii57798, patah, patah11, patah1d, patah2a,
    patahhebrew, patahnarrowhebrew, patahquarterhebrew,
    patahwidehebrew |
    | 05B8 | afii57797, qamats, qamats10, qamats1a, qamats1c,
    qamats27, qamats29, qamats33, qamatsde, qamatshebrew,
    qamatsnarrowhebrew, qamatsqatanhebrew, qamatsqatannarrowhebrew,
    qamatsqatanquarterhebrew, qamatsqatanwidehebrew,
    qamatsquarterhebrew, qamatswidehebrew |
    | 05B9 | afii57806, holam, holam19, holam26, holam32,
    holamhebrew, holamnarrowhebrew, holamquarterhebrew,
    holamwidehebrew |
    | 05BB | afii57796, qubuts, qubuts18, qubuts25, qubuts31,
    qubutshebrew, qubutsnarrowhebrew, qubutsquarterhebrew,
    qubutswidehebrew |
    | 05BC | afii57807, dagesh, dageshhebrew |
    | 05D3 | afii57667, dalet, dalethebrew |
    | 05DA | afii57674, finalkaf, finalkafhebrew |
    | 05DC | afii57676, lamed, lamedhebrew |
    | 05E7 | afii57687, qof, qofhebrew |
    | 05E8 | afii57688, resh, reshhebrew |
    | 0621 | afii57409 hamzaarabic hamzalowarabic |
    | 0631 | afii57425 reharabic |
    | 0644 | afii57444 lamarabic |
    | 064B | afii57451 fathatanarabic |
    | 064C | afii57452 dammatanaltonearabic dammatanarabic |
    | 064D | afii57453 kasratanarabic |
    | 064E | afii57454 fathaarabic fathalowarabic |
    | 064F | afii57455 dammaarabic dammalowarabic |
    | 0650 | afii57456 kasraarabic |
    | 0651 | afii57457 shaddaarabic |
    | 0652 | afii57458 sukunarabic |
    | FB7C | tchehinitialarabic |
    | FE8E | aleffinalarabic |
    | FEA0 | jeemmedialarabic |
    | FEA8 | khahmedialarabic |
    | FEDF | laminitialarabic |
    | FEE4 | meemmedialarabic |
    | FEE7 | nooninitialarabic |
    | FEEC | hehmedialarabic |
    | FEF3 | alefmaksurainitialarabic |
    | FEF3 | yehinitialarabic |
    
    From the tables above you can see that glyphs for hebrew and arabic
    which are composite should be output exactly as key sequences of
    ordinary keys.
    
    This patch eliminates the wrong key mappings from f_print.c.
    
    Affects-bug: lp-720218

commit cf32c599c524b497737ebe1ab846311e32e852df
Author: Vladimir Zhbanov <vzhbanov@gmail.com>
Date:   Mon Feb 7 12:36:28 2011 +0300

    libgeda: fix unicode font printing -- step one
    
    Sorting out glyph_list struct according to gpointer keys.
    
    Affects-bug: lp-720218

commit a04342c3f3a2c95db6dc43eeff92cc7840c002c5
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jan 28 01:09:10 2011 +0000

    libgeda: Attempt to speed up s_page_objects_in_regions ()
    
    Move object bounds retrival outside of inner loop, as the bounds
    will not change whilst we iterate over the regions we are checking.

commit c6f468849ffca1b1cc907d43a3ede1efcc82001c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jan 28 01:12:29 2011 +0000

    libgeda: Don't unselect objects which are already unselected
    
    This should avoid doing work where it isn't needed.

commit 3bc42a053d1a4e3588f6283ef611c5e5a873ea25
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jan 28 01:12:29 2011 +0000

    libgeda: Remove "object already selected == TRUE" printf
    
    This was presumably debug code which should not have been commited.

commit 9b9080e184607b3cb449a1ccb6082207ed39738f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jan 20 16:45:48 2011 +0000

    libgeda: Don't warn about finding zero length pins on load.
    
    There's no actual reason why zero length pins shouldn't be allowed;
    they work fine in gnetlist, and they show up okay in gschem.
    
    Closes-bug: lp-705397

commit b08d9d08ee4740884de97e87179a9809d6b3dba3
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 18 21:05:47 2011 +0000

    libgeda: Use new config parsing API for geda-shell.

commit 9379c19a7563a02c271c8640fdb814ef0add5981
Merge: f9156f1 23383c5
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 18 22:36:59 2011 +0000

    Merge changes from main unstable branch
    
    Conflicts:
    	gnetlist/src/gnetlist.c
    	gschem/src/g_hook.c
    	gschem/src/gschem.c
    	libgeda/include/libgeda/prototype.h
    	libgeda/src/g_basic.c
    	libgeda/src/g_smob.c

commit 157381108371cc25684293e935c36834bb98e0fd
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Sat Jan 15 11:08:06 2011 +0100

    libgeda: avoid double selection of objects
    
    In o_selection_add() check if object was already selected before
    selecting it again.
    
    Closes-bug: lp-703204

commit 2e2e2bf53458d6fea7e4c8dd7736818470fde248
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jan 16 00:12:48 2011 -0500

    Manually ran make update-po in order to prep for the make distcheck

commit c5a0980c4cd20ffaa32d24635ff92ae99f17bec9
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Thu Jan 13 01:50:59 2011 +0100

    libgeda: remove LEAVE_VISIBILITY_ALONE
    
    Closes-bug: lp-701431
    
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>

commit 4a9536ce1da2bc715d4d308fdb2ee2037a7efac3
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Thu Jan 13 01:40:43 2011 +0100

    libgeda: use visibility getter in o_text_basic.c
    
    Affects-bug: lp-701431
    
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>

commit 43251b8588235a7594a07ff083fbd18e5501c6d1
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Thu Jan 13 01:39:57 2011 +0100

    libgeda: add TOPLEVEL* argument to o_XXX_save
    
    Affects-bug: lp-701431
    
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>

commit 97c5273a7ec9792a852f5193455a4c19ba6b6035
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Jan 11 21:46:29 2011 +0100

    libgeda: export accessors for object visibility
    
    o_is_visible and o_set_visibility are now in exported interface.
    
    Affects-bug: lp-701431
    
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>

commit 0f664b4c54ca3c38f31e169c642268091ae392f7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jan 13 20:56:47 2011 +0000

    libgeda: Fix potential buffer overflow.
    
    Closes-bug: lp-702209

commit 502ab80495c45e092eca6052edd6cf8e7ff55429
Merge: 27f7a52 e1c3ba4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jan 13 19:59:35 2011 +0000

    Merge branch 'stable-1.6'
    
    Conflicts:
    	NEWS
    	libgeda/include/prototype_priv.h
    	libgeda/src/gdk-pixbuf-hacks.c
    	libgeda/src/o_basic.c
    	libgeda/src/o_complex_basic.c
    	utils/src/gsch2pcb.c

commit 8b4f5fc4444c93e922e38e97b3cc9ddbaf1ec7c6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 12 17:03:45 2011 +0000

    libgeda: Add g_rc_parse_handler().
    
    Add an alternative to g_rc_parse() which accepts an optional error
    handler function.

commit 7ca2b049dbcfb9f0eb8d3dd3fcf21cbd66c0ec95
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 12 17:03:44 2011 +0000

    Print message and exit if rc file load fails.
    
    Modifies g_rc_parse() to print useful messages to standard error and
    exit with non-zero status if an error other than ENOENT occurs while
    attempting to parse any configuration file.
    
    N.b. only copes with rc files loaded at startup; rc files loaded later
    (e.g. a gafrc auto-loaded while loading a schematic using gschem
    "File->Open") can't cause the application to die.
    
    Since this means that under some circumstances gschem and gattrib can
    appear to do nothing silently (e.g. when launched from via a .desktop
    file) subsequent patches need to make gschem and gattrib generate
    appropriate warning and/or error message dialogs.
    
    Affects-bug: lp-698578

commit f82c6d0e497d7d18905d65b8499f33f3e7e3e073
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 12 17:03:44 2011 +0000

    Upgrade g_read_file() to support GError.
    
    Allow g_read_file() to return error information in a GError if an
    error occurs while loading the requested rc file or Scheme script.

commit d50f80399fc8de5bcc24723b87f9132324569fb9
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 12 17:03:44 2011 +0000

    Invert g_read_file() return values.
    
    Make g_read_file() return TRUE on success and FALSE on failure.  It
    turns out that not only had the return value on success been incorrect
    for some time, there was only one use of g_read_file() that cared
    about the return value anyway.

commit 90f0f24ea7cb4c1d3f10f43ea6df813aa71bcde7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 12 17:03:44 2011 +0000

    libgeda: Whitespace changes to g_read_file().
    
    Redo indentation in g_read_file().

commit 91e8f087d133320cafebd692a2ff0fe7f764fc4b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 12 17:03:44 2011 +0000

    libgeda: Add a function for turning a Guile error into a GError.
    
    Splits out the backtrace/error logging in g_basic.c into a static
    function that can also populate a GError with the error details,
    simplifying it greatly in the process by reusing libguile functions to
    do most of the hard work.

commit 717b5819e626d0b051ae9ff6bfd657c918b6d338
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 12 17:03:44 2011 +0000

    libgeda: Rework config file parsing API.
    
    Implement a new libgeda API for loading config files, which has the
    following advantages:
    
    1) All error reporting happens via GError, for more informative error
       messages.  The EDA_ERROR_RC_TWICE error code is added to indicate
       that a config file has been prevented from being loaded twice.
    
    2) It is possible to load local config files without chdir() into
       their directory, and to specify a target *file* to load
       corresponding local config for.
    
    3) As many as possible of the bugs & corner cases that still
       need fixing have been documented.

commit 34290684615f5cf562d3be4f15a3ed2280f99bf1
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 12 17:03:43 2011 +0000

    libgeda: Add a GError domain for libgeda errors.
    
    This patch defines the EDA_ERROR domain for GErrors, and is required
    in order to be able to return or handle libgeda-specific GErrors.  It
    does not define any error codes yet.

commit da0fbc2cc3317e6f5c995385f3986bb2e6689f1b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 12 17:03:43 2011 +0000

    libgeda: Simplify g_scm_eval_string_protected().
    
    Instead of defining a body function and calling scm_c_catch()
    ourselves, build a Scheme expression and evaluate it using
    g_scm_eval_protected().

commit e1c3ba4c453716f3b0cb475a9cc358f34a4683d9
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Jan 11 01:36:15 2011 +0100

    libgeda: invalidate bounds in attribute promotion
    
    Call o_bounds_invalidate in o_complex_promote_attribs
    and in o_complex_remove_promotable_attribs.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>
    Closes-bug: lp-700841
    
    (cherry picked from commit 2d07ac4933633837fc394e5001a452c7db290d13)

commit 28ee546a15e360ab1b870205437905abc876e82e
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Jan 11 08:37:07 2011 +0100

    libgeda: getter for object visibility field
    
    Add method o_is_visible to query value of visibility field.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>
    Affects-bug: lp-700841
    Affects-bug: lp-701431
    
    (cherry picked from commit 45cb94eff246e342a0331bf8b0c908fdccda1359)

commit c538d2c97885876d695ff45a8457c8d74e872809
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Jan 11 08:33:43 2011 +0100

    libgeda: setter for object visibility field
    
    Add method o_set_visibility to change value of visibility field.
    If object visibility is changed, mark its cached bounds as invalid.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>
    Affects-bug: lp-700841
    Affects-bug: lp-701431
    
    (cherry picked from commit 37f3c42bf3d509bde85dec3150bfdca0a3e81551)

commit 06f09ecaee96c130825f238689aef530657f892f
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Jan 11 01:26:24 2011 +0100

    libgeda: add recursion in o_bounds_invalidate
    
    Instead of invalidating cached bounds for single object, follow the
    hierarchy and invalidate cached bounds of all parents as well.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>
    Affects-bug: lp-700841
    
    (cherry picked from commit bb27719f730b078dc250196af40141ff7cac8636)

commit 2d07ac4933633837fc394e5001a452c7db290d13
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Jan 11 01:36:15 2011 +0100

    libgeda: invalidate bounds in attribute promotion
    
    Call o_bounds_invalidate in o_complex_promote_attribs
    and in o_complex_remove_promotable_attribs.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>
    Closes-bug: lp-700841

commit 45cb94eff246e342a0331bf8b0c908fdccda1359
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Jan 11 08:37:07 2011 +0100

    libgeda: getter for object visibility field
    
    Add method o_is_visible to query value of visibility field.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>
    Affects-bug: lp-700841
    Affects-bug: lp-701431

commit 37f3c42bf3d509bde85dec3150bfdca0a3e81551
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Jan 11 08:33:43 2011 +0100

    libgeda: setter for object visibility field
    
    Add method o_set_visibility to change value of visibility field.
    If object visibility is changed, mark its cached bounds as invalid.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>
    Affects-bug: lp-700841
    Affects-bug: lp-701431

commit bb27719f730b078dc250196af40141ff7cac8636
Author: Krzysztof Kosciuszkiewicz <k.kosciuszkiewicz@gmail.com>
Date:   Tue Jan 11 01:26:24 2011 +0100

    libgeda: add recursion in o_bounds_invalidate
    
    Instead of invalidating cached bounds for single object, follow the
    hierarchy and invalidate cached bounds of all parents as well.
    
    Reviewed-by: Peter TB Brett <peter@peter-b.co.uk>
    Reviewed-by: Peter Clifton <pcjc2@cam.ac.uk>
    Affects-bug: lp-700841

commit 8a3a0bb070d1b288fceac2fcdd7b317a8f77a464
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jan 7 22:00:09 2011 +0000

    Update FSF address in copyright headers.
    
    The FSF have now moved to 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301 USA.  Our GPL and LPGL copyright headers need to updated to
    reflect this.
    
    Only files remaining with old address are wiki files (although the
    wiki has now been updated) and PostScript files.

commit d8803215ea591b9349999c17c5a85aee7da473af
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jan 7 09:45:11 2011 +0000

    Remove warnings when building with "--disable-nls".
    
    Closes-bug: lp-698450

commit 69e7af1d627a4ce4e307b33b509715821d830412
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 5 23:43:22 2011 +0000

    libgeda: Always add gEDA default Scheme directory to search path.
    
    Make sure that the default directory for gEDA Scheme files is added to
    the Guile %load-path during libgeda initialisation.  This ensures that
    even if there is a problem loading system-gafrc (for some reason),
    gEDA Scheme code can still be found.
    
    Remove the current `scheme-directory' directive from system-gafrc, and
    replace it with a commented-out example of its use.

commit 7a3e9f294d12732cd6fb043412c1bf92eaf5b268
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 5 11:52:35 2011 +0000

    Make `scheme-directory' rc function prepend to Guile load path.
    
    Guile already provides infrastructure for loading Scheme files from a
    library, so this patch makes gEDA use it properly.  With this (fully
    backward-compatible) patch it's now possible to load Scheme files,
    including gnetlist backends, from more than one directory.
    
    Note: This commit makes the gnetlist test suite pass again.

commit 8d708818425dea37690d739a5e9eaf26eb9cf46c
Author: Patrick Bernaud <patrickb@chez.com>
Date:   Tue Jan 4 15:37:48 2011 +0000

    libgeda: Check attribute string before requesting name/value [3032626]

commit 1e93f7bea2cbe0fa8887337c261093b55c31dd6d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Jan 3 23:07:25 2011 +0000

    Revert "Remove some CVS keywords."
    
    This reverts commit f5ada1de1372bd3772b4f4bd33afa59803c1dade, which
    was pushed to the repository in error.

commit f5ada1de1372bd3772b4f4bd33afa59803c1dade
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Dec 21 12:37:10 2010 +0000

    Remove some CVS keywords.

commit f66597934bf8c88519396956637792533ba3a151
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 12 08:14:06 2010 +0000

    Don't use page_current in hierarchy traversal.
    
    With this patch, the only remaining functions in libgeda which care
    about the "current page" are:
    
    - o_get_page_compat() [deprecated]
    - s_page_goto()
    - s_page_delete()
    - s_page_delete_list()
    - s_toplevel_new()

commit 4a2272be60b5e728a1e656dae1845f475fb44491
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Dec 11 21:30:04 2010 +0000

    libgeda: Pre-refactor cosmetic changes.
    
    This patch cleans up whitespace in s_hierarchy.c, and changes some
    constructs of the form:
    
      for (x; y; z) {
        if (!foo) {
          if (!bar) {
            /* Lots of stuff */
          }
        }
      }
    
    to:
    
      for (x; y; z) {
        if (foo) continue;
        if (bar) continue;
        /* Lots of stuff */
      }

commit 3d7719ca26bd4a77bce4f3ce3100c72d93d5e933
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Dec 11 11:36:11 2010 +0000

    Add PAGE argument to o_net_consolidate().

commit b87d7edc2be45dab1e7cab8ec81cce2631377b4f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Dec 11 11:29:04 2010 +0000

    libgeda: Remove some more uses of page_current.
    
    Removes some uses of TOPLEVEL.page_current which were missed in
    a33839adef1f.

commit 0b94d2379a5bd5d14690f941690e0df761df13c9
Merge: 63cd6d7 a33839a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 12 09:48:07 2010 +0000

    Merge some changes from Peter Brett.
    
    Merge a series of more generally useful changes from Peter Brett's
    `guile-scheme-api' branch, most of which remove uses of
    TOPLEVEL.page_current from libgeda.

commit 0db9dce07c52cb5f905c0c68d78b9d7656371c98
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 17 11:59:02 2010 +0000

    Revert po file changes in previous commit.
    
    This reverts most of the incorrectly-commited po file updates in
    commit 5cc5a1743e97.

commit cb21936a1e620374a04c4f058458fa72f9933e67
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 17 11:45:03 2010 +0000

    Make 7-byte SHA-1 prefix using %.7s format specifier.

commit 5cc5a1743e97218325285975bfb68e090d382143
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 17 11:33:25 2010 +0000

    gschem: Make 7-byte SHA-1 prefix using %.7s format specifier.
    
    This is slightly more elegant than using g_strndup().
    
    Suggested-by: Patrick Bernaud <patrickb@chez.com>

commit b70513b5260d14e22dde1bc73c9f6c61dbbeb5ca
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 17 08:52:47 2010 +0000

    Give geda-shell program -V argument to match gschem.

commit 3940ee1a2704d07f7e6f9f2c71eb65346a709f46
Merge: 8c4d33a ee7e4a8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 16 22:23:15 2010 +0000

    Merge changes from main unstable branch

commit ee7e4a8e823dd362bc0dc998cc584ab6ea84bdcd
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Nov 13 17:42:14 2010 +0000

    Remove DONT_REDRAW flag.
    
    Because we now use the GTK/Cairo renderer for gschem, we use the GTK
    model for redrawing. In this model, objects are queued for redrawing
    by invalidating them, and at some point later all invalidated regions
    of the viewable area are drawn together.
    
    Due to this mechanism, the TOPLEVEL.DONT_REDRAW flag is redundant, as
    it as always set and then restored without visiting the GTK main loop,
    and thus no drawing would occur in that context anyway.
    
    This patch removes the now-useless TOPLEVEL.DONT_REDRAW flag entirely.

commit 700d8c7bb6ed397185f4aee5e857979af07d2d96
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Nov 13 13:12:03 2010 +0000

    libgeda: Allow registration of multiple change notify functions.
    
    A mechanism for getting notifications when OBJECTs are changed was
    added in commit 8b1faf85362b, but this only allowed one set of change
    handlers to be added to a TOPLEVEL.  This patch allows the multiple
    sets of handlers to be registered, and also fleshes out the API
    documentation.

commit a3433b6a4c088b8926f8768e20eff18d0dafea4b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 19:33:28 2010 +0000

    Remove most legacy libgeda Scheme types & functions.
    
    Removes most of the legacy Scheme types, functions and definitions
    from libgeda, replacing them with compatible equivalents based on the
    new Scheme API.  The remaining Scheme functions are those for working
    with the component and source libraries, the various rc functions, and
    the eval-* functions, all of which need to be revisited at a later
    date.
    
    Also removes set-attribute-value! from gschem and reimplements in
    Scheme, since it was sole user of g_set_attrib_value_internal() and it
    was easier to replace than rewrite.

commit a0adbfc6bbc79cb7ac9cc2dd1c894ad0cdc0b872
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 19:33:28 2010 +0000

    scheme-api: Add unit tests for legacy Scheme API.
    
    These will be used to verify that replacement functions based on new
    Scheme API are compatible with the originals.

commit fc8bcac43b6f3dd611f6030ffe36465d67be379d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 19:33:28 2010 +0000

    scheme-api: Port legacy Scheme procedures in C to new smob system.
    
    Make all users of legacy Scheme smobs in libgeda use new Scheme smob
    system.  This is a preliminary patch so that unit tests can be written
    to verify that functions ported to new API work the same way as the
    originals.

commit a21ee2882d662a50418561f8de101d44bba7294c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 19:33:28 2010 +0000

    scheme-api: Show "(null)" instead of "0" when printing deleted smobs.

commit 7f85f28e67c59dbccb0f2a321794b0ddbb3e578f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 19:33:27 2010 +0000

    Add e-mail address to copyright headers.

commit 0a5c0a4f0d9e721bdf198c400db3cef607e72c33
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 19:33:27 2010 +0000

    scheme-api: Multiple arguments for component & page append/remove.
    
    It's a lot more convenient to write:
    
      (component-append! component x y z ...)
    
    than:
    
      (for-each (lambda (x) (component-append! C x)) (list x y z ...))
    
    So this patch makes it possible.

commit 6359f03b8615d707b122d84c6e73ae6bf99c097b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 19:33:27 2010 +0000

    scheme_api: Give modifying functions _x suffixes in C.
    
    When Scheme functions modify their arguments or have side-effects,
    they use a `!' at the end of the function name.  In C, this is
    commonly represented with a _x suffix.  This patch adopts that
    convention.

commit 09ce403fef04ec9a77b611d248da20c375b1e100
Merge: c7d44a2 41ea61b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 10:46:23 2010 +0000

    Merge changes from main unstable branch

commit 41ea61b2f156ec7b473863935410b5113aab1514
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 11 10:43:55 2010 +0000

    libgeda: Correctly clear weak references.
    
    Fix a really really stupid logic bug introduced in commit
    f8ddb85e74bb.

commit c7d44a2507edb830e1592d9390cb32ad5fb658b4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 10 00:13:55 2010 +0000

    scheme-api: Promote attributes from components.

commit f8b371c8732f128c09fda366916f48d4a3ae8873
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 9 17:09:12 2010 +0000

    scheme-api: Get inherited attribs from components.

commit c397394b68b27672d1af14d777eea35636b3b365
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 10 09:30:02 2010 +0000

    scheme-api: Make component/library test succeed for out-of-tree builds

commit 780a175f4cff04a4f1b79332b6f604b7d95851ab
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 9 16:36:49 2010 +0000

    scheme-api: Add missing unit test file.
    
    t0018-object-connections.scm was omitted from commit d8110db394f5.

commit d8110db394f56139a4fb75c6447024a28fc12913
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 9 11:57:01 2010 +0000

    scheme-api: Find connected objects.
    
    Adds a Scheme C procedure for accessing objects that are immediately
    connected to an object.

commit 7aff6e91ae4520072f4b0272a8fed56e27b82c0a
Merge: e92b66a 03a529b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Nov 7 21:02:16 2010 +0000

    Merge changes from main unstable branch

commit e92b66a8f48a565ae2b8de8d13601b7f54e84bad
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Nov 7 16:33:52 2010 +0000

    scheme-api: Get and set object fill parameters.

commit 709b2707e3ec79422f0485b6e381b5cbc351905e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Nov 7 16:32:00 2010 +0000

    scheme-api: Simplify generation of unit test failure messages.
    
    Use (simple-format #f msg ...) instead of (with-output-to-string
    thunk) to generate unit test failure messages.

commit 64fc02d71b235f5b1b5a5640f15d9cf3270672a6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Nov 7 10:40:24 2010 +0000

    desktop-i18n: Don't have misleading ".h" suffixes in .po files.

commit 803ea8cd6ee3203559d99fbaa178a869c2046d38
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Nov 7 13:54:15 2010 +0000

    Update po files, fixing Language and Language-Team strings.
    
    Updates all po files using update-po, making sure all po files have
    their Language string set, and set all Language-Team strings to
    geda-dev@seul.org.

commit 5ee02960cb8cc90c6c6fd946c53cdf94b0b46b0e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Nov 7 12:11:03 2010 +0000

    Make new C files translatable.
    
    Also marks an new error message in gschem as translatable.

commit d1794e3a90d0774782d3ae37101db984db1038db
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Nov 6 00:32:35 2010 +0000

    scheme-api: Get and set object stroke parameters.

commit 68ea0f2273be05499512a1b2a3e557e93c049724
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 17:19:14 2010 +0000

    scheme-api: Get object bounds.

commit 51afd1e9f5ff6d09e9066e2cc0f7eefab3a79002
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 16:45:15 2010 +0000

    scheme-api: Change page filenames.

commit bb9e4bcd4d3e5b9b598105f7f6f1aecae880783b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Nov 6 09:22:02 2010 +0000

    Delete guile-snarf output files during distclean.

commit 420c5126609f2f2f409cbfad50afd2949836fe6e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 19:05:15 2010 +0000

    libgeda: Calculate bounds correctly for empty components.

commit 9042448ea44521adc53375fdfc3d50641da0565a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 11:52:15 2010 +0000

    scheme-api: Make object & attrib modifications dirty current page.

commit b1056b243513171194ad2e68894d2f618eef6d76
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 11:05:05 2010 +0000

    scheme-api: Improve unit tests for attribute attachment/detachment.

commit d72e2913f90edf2c02df614fa140c7d13c252362
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 10:19:35 2010 +0000

    scheme-api: Remove primitives from components that are in pages.
    
    The API currently erroneously throws an error when attempting to
    remove a primitive object from a component that is attached to a page.

commit 6eb023e46dc54a0b702cc9d9616325bf4e25ead4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 09:01:26 2010 +0000

    scheme-api: Inspect and modify a page's `CHANGED' flag.

commit c759a14672a1ee047c8d27f2d9c39339c88da18e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 08:00:19 2010 +0000

    scheme-api: Closing pages.
    
    Since it's possible to create new pages from the Scheme API, it's also
    useful to be able to close them.  This patch adds the close-page!
    function to the (geda page) module.
    
    It's necessary for gschem to provide a slightly different
    implementation of close-page! which allows for the GUI to be updated
    and for the user to be prompted to save changes.  To do this, gschem
    uses Guile module reflection to change the binding of the close-page!
    function during startup.

commit 5d9ca02072ba4309352e39d209f252142a96e0af
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 01:56:30 2010 +0000

    scheme-api: Translate primitive objects in %complex-set!
    
    %complex-set! needs to translate the primitive objects that make up a
    complex when its position changes.

commit ee046f0a7c277d65ecb9edad6de5aeac0b81ba52
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 5 01:09:15 2010 +0000

    scheme-api: Create components from the component library.

commit 662b15fd2dfa47d48410bcd42c75b461ab5f21bd
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 4 12:30:42 2010 +0000

    scheme-api: Attributes.
    
    Adds support for attributes.  In order to make the API safe to use
    without memory corruption, there are significant restrictions on the
    context in which attribute attachments can be made.  Most importantly,
    both target and attribute must be part of the same page, or of the
    same component, and objects which have attribute attachments cannot be
    removed from a page or component's contents.

commit c8140254f0821bd28f84040939329aaf0e744a9a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 4 20:34:19 2010 +0000

    scheme-api: Basic page procedures.
    
    This patch implements support for creating and modifying
    schematic/symbol pages.  It does not yet support file loading/saving,
    printing, or closing pages.

commit 83e845d1ec88528eb94e58105bf62cb1f5742218
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 4 07:31:46 2010 +0000

    scheme-api: Complex objects.
    
    Support for working with complex objects.  Because Guile supports
    complex numbers natively, using the word "complex" in function names
    etc. is confusing.  In the public Scheme API the word "component" is
    used instead.
    
    This patch implements support for inspecting and modifying components,
    as well as for creating new, empty embedded components.  It does not
    include support for creating components from files or from the
    component library.

commit e70250b1f7776e40dcada0d2c0bc3d9d8bc9a8df
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 3 17:50:07 2010 +0000

    scheme-api: Text objects.
    
    Basic support for text objects.

commit 810d1982d5b9fcd5d73037292df0be090ce18d84
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 3 17:19:06 2010 +0000

    scheme-api: Path and picture objects.
    
    Just add some predicates for now.

commit e461ca858a2d127c17bba84e17c31b626937ee00
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 3 16:33:54 2010 +0000

    scheme-api: Arc objects.

commit 2d9bb54a420197facfe93712fa0e60c6ef35bdf9
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 3 12:36:52 2010 +0000

    scheme-api: Pin objects.
    
    Re-uses the line modification routines for working on pins.  Note that
    the libgeda C API provides a flag for choosing which end of a pin
    should be connectable, but the Scheme API hides this flag, and from
    the point of view of Scheme code the connectable end of a pin is
    always the start.

commit a0f0f9c672a5f8955aaf6c37ec509484d9b08714
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 3 11:07:17 2010 +0000

    scheme-api: Circle objects.

commit 2010a33b32dacaf660145b44ad7e93c566a0e9df
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:26 2010 +0000

    scheme-api: Box objects.

commit f0d9875a2eee566cf75b340a98a9471d65fc8ad7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 3 12:00:33 2010 +0000

    scheme-api: Line, net and bus objects.

commit 91d3e917cd11d4c304c84f95431c08210b867a4c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:26 2010 +0000

    scheme-api: Get/set the color of objects, and copy them.

commit 1acff2a3f952b291cbae4e293f9cf703b99645de
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:26 2010 +0000

    scheme-api: Get the type of an object.
    
    Adds a function to the Scheme API for obtaining a symbol indicating
    the type of schematic object contained in a Scheme value.

commit 4b52e3e739dca7b880f6909110b0225b2a7d6ea4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 4 11:52:15 2010 +0000

    scheme-api: Convert Scheme object lists to GLists and vice versa.
    
    The libgeda C API makes extensive use of GLists (doubly-linked lists
    from GLib).  Since the Scheme API will frequently need to convert back
    and forth between these and native Scheme cons-based singly-linked
    lists, provide some utility functions for doing this conversion.

commit feefbf9f0746f23c3d388d075c7c5d9c38d91afc
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:23 2010 +0000

    scheme-api: Test suite based on geda-shell program.
    
    Adds a test suite for libgeda's Scheme API.  This is run using the
    geda-shell REPL.

commit 4e1f04c285a0a66f56c027a38709d0b3ec205c65
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:38:42 2010 +0000

    libgeda: Add geda-shell program.
    
    Adds a minimal Scheme REPL program to libgeda.  This is not installed,
    but is useful for debugging issues with libgeda's Scheme API.

commit 4203e5e08b5341613ad6de08191f4feafb243687
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:24 2010 +0000

    scheme-api: Basic smob predicates.

commit b235a037d0ce1c525195141d77fd7b8cae85e8be
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 4 18:26:55 2010 +0000

    scheme-api: Basic smob definitions & TOPLEVEL fluid.
    
    Adds a new smob type for gEDA objects (TOPLEVEL, PAGE and OBJECT, at
    least initially), along with C functions for creating smobs.  Weak
    references are used to ensure that smobs pointing to dead objects are
    invalidated.
    
    Additionally, defines a fluid which contains the current TOPLEVEL.
    This is used by the Scheme API to obtain the TOPLEVEL needed for
    calling much of the libgeda API.

commit 0460b8f476066ee471b4f8a79176e3a1fbbbfc55
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 4 09:25:57 2010 +0000

    libgeda: Define non-NULL default for select_func.
    
    The code for loading/saving complex objects uses the nullity of
    OBJECT.sel_func to determine whether or not a complex object should be
    flagged as selectable or not.  So that libgeda applications that do
    not define their own select_func can safely load, modify and save
    schematic files, it's necessary to have a non-NULL default
    select_func.

commit 57f5e1eb96577f439840afb5c008ba739055d249
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:23 2010 +0000

    scheme-api: Build infrastructure in libgeda.

commit a33839adef1f8c7239e5b291baef667b9046d91f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:25 2010 +0000

    libgeda: Get rid of some uses of page_current.
    
    Remove some uses of page_current from functions used only by libgeda.
    This will make it more painless to remove page_current completely.

commit e883ed4bf0681db9e67da5e176d2caa6d8876f4c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:24 2010 +0000

    libgeda: Remove o_save_curr_page().

commit 3abdca2a4ee088184e976822c444069d67e20a20
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:25 2010 +0000

    libgeda: Add PAGE argument to file load/save functions.

commit 4a3a3d9e4cc72fa94165306c5b8d411d47812d45
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:24 2010 +0000

    libgeda: Add PAGE argument to print functions.

commit c26ed9d5b126f7e2b67285e465438aa9b5ee4ffd
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 2 10:27:23 2010 +0000

    libgeda: Make g_read_file() take a TOPLEVEL argument.

commit 019990c574e3806c566d18ad1548c76d979eb37f
Author: Patrick Bernaud <patrickb@chez.com>
Date:   Sun Oct 31 19:50:59 2010 +0000

    libgeda: Check attribute string before requesting name/value [3032626]

commit 9d129b1ed3f923f6357c4afd410e576782dc00e3
Author: Edward Hennessy <ehennes@sbcglobal.net>
Date:   Sun Oct 10 18:24:56 2010 -0700

    Added build directory variables to libgeda.pc.in.

commit cfa5600cd838b791aecc6a1e86cb4f4bfd113195
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Mar 12 02:08:35 2010 +0000

    libgeda: Remove f_save_close().
    
    This function is not currently used, and relies on
    TOPLEVEL.page_current.

commit 82edfe8fd716cbaeba6e979c6233f73801117b1c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Mar 12 02:08:34 2010 +0000

    libgeda: Misc. doxygen fixes.

commit 923116bc968ff32ed2c997afa596af59ce9752ce
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Mar 7 23:16:03 2010 +0000

    libgeda: Add PAGE argument to tile functions.
    
    With this patch, the tile system no longer uses TOPLEVEL.page_current
    anywhere.

commit 2c445565d558f079e54f2508b35f734c58abab32
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Mar 7 23:16:03 2010 +0000

    libgeda: Add o_box_modify_all().
    
    o_box_modify() allows one corner of a box to be moved.  Unfortunately,
    it swaps the internal coordinates of the BOX structure around in a way
    that could potentially cause unexpected behaviour.  For instance,
    suppose you wish to modify a box as shown below:
    
       ^                          ^
       |                          |
      4|                         4|       +-----+
       |                          |       |     |
      3|                         3|       |     |
       |                          |       |     |
      2| +--+                    2|       +-----+
       | |  |                     |
      1| |  |                    1|
       | |  |                     |
      0| +--+                    0|
       |                          |
       +--------------->          +--------------->
         0  1  2  3  4              0  1  2  3  4
    
       (A) Original box           (B) Desired box
    
    Calling o_box_modify() as follows will not work as expected:
    
      o_box_modify (toplevel, box, 2, 4, BOX_UPPER_LEFT);
      o_box_modify (toplevel, box, 4, 2, BOX_LOWER_RIGHT);
    
    It will instead result in the transformations below:
    
       ^                          ^
       |                          |
      4|    +--+                 4|    +--------+
       |    |  |                  |    |        |
      3|    |  |                 3|    |        |
       |    |  |                  |    |        |
      2|    |  |                 2|    +--------+
       |    |  |                  |
      1|    |  |                 1|
       |    |  |                  |
      0|    +--+                 0|
       |                          |
       +--------------->          +--------------->
         0  1  2  3  4              0  1  2  3  4
    
       (C) After first call       (D) After second call
    
    This is due to the fact o_box_modify() behaves as though the corner
    specified by the whichone argument had been dragged.
    
    This patch adds the o_box_modify_all() function, which allows all four
    corners of the box to be modified at once, avoiding the problems
    inherent in repeated o_box_modify() calls.

commit 83530e16e28ebba72d7dc1f509d0005ea30c26f2
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Mar 7 23:16:03 2010 +0000

    libgeda: Remove uses of deprecated SCM_STRING_CHARS.

commit 9c42a66c0a985ef424f35ac93a289e82ef88b32b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Mar 7 19:00:01 2010 +0000

    Move STRETCH structure and s_stretch.c from libgeda to gschem
    
    This structure and related functions deal with rubberbanding nets during
    move operations. They are only used from within gschem, although there
    is of course setup and tear-down in libgeda. Move this all to gschem.
    
    This isn't a 1-1 move, since various headers and structures needed to
    be fixed up in the process. The stretch_list now lives in the
    GSCHEM_TOPLEVEL, not the PAGE, matching the fact that we don't allow
    action state to persist when a GSCHEM_TOPLEVEL changes active PAGE.
    
    A free of the stretch list is removed from s_page_delete(), but no
    equivalent is re-added in gschem. Action state is torn down when an
    action is cancelled, which is done before deleting any GSCHEM_TOPLEVEL.

commit f8ddb85e74bbf05a6901365527d27d3e2914ccec
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Mar 7 13:03:15 2010 +0000

    libgeda: Add weak refs to OBJECT/PAGE/TOPLEVEL.
    
    Weak references are useful when you want to keep an eye on an object
    but not necessarily hang on to it when it comes to its useful life.
    
    This patch adds an internal libgeda API for using weak references.
    There are two types of weak references implemented by this patch:
    
    * full-powered weak references, where an arbitrary callback function
      can be registered on an object to be notified when an object is
      destroyed
    
    * weak pointers, which are set to NULL when the object is destroyed.
    
    This functionality will hopefully allow several pieces of housekeeping
    code in libgeda to be simplified.
    
    The API is designed to be as close as possible to the GObject weak ref
    API. See e.g. g_object_weak_ref().

commit 1126d3899e03492d5f2f41b244cd685e257792f6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Mar 3 09:02:47 2010 +0000

    libgeda: Add s_page_replace().
    
    Add a function to replace one object in the PAGE object list with
    another while preserving its position in the list.

commit b59058138ce5057b3520f70754a610a99fb440a7
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Feb 24 16:33:08 2010 +0000

    Use change notification to redraw objects when connectivity changes
    
    Emit change notifications in the connectivity tracking functions
    s_conn_remove_other() and s_conn_update_line_object(). This frees
    gschem from the somewhat complex task of tracking which objects were
    connected to a given object before and after a particular set of
    operations.
    
    This change leads to a significant simplification of many operations,
    and removes quantities of code from:
    
      o_pin_end()
      o_net_end()
      o_move_end()
      o_move_end_rubberband()
      o_move_end_lowlevel()
      o_mirror_world_update()
      o_rotate_world_update()
      o_grips_end_bus()
      o_grips_end_pin()
      o_grips_end_net()
      o_delete()

commit cf6ea830c56a04ebb47e958dc1f8895dcc8f60e7
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 28 18:37:23 2010 +0000

    Use change notification to redraw when a pin's type is modified
    
    Emit change notifications in o_pin_set_type(), and remove
    o_invalidate() calls where this function is used in gschem.

commit 5e43eb790eee741c861862d27435fac0cca55df2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Mar 3 00:34:35 2010 +0000

    Add change notification when objects are modified via o_*_modify()
    
    Emit change notification in the o_*_modify() functions, and remove
    some o_invalidate() calls where o_arc_modify() is also used in
    gschem's arc editing dialog.
    
    The o_*_modify() routines are also used in o_grips.c, where there
    is no explicit o_invalidate() call after them. o_grips_end() calls
    o_invalidate(), which is strictly un-necessary, but I've left it for
    clarity, as it comes after resetting the OBJECT's dont_redraw flag.

commit 51461b59d30487e9c1c2dbf3beb6883bd66314e1
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 28 18:37:23 2010 +0000

    Use change notification to redraw when an object's fill properties change
    
    Emit change notifications in o_set_fill_options(), and remove
    o_invalidate() calls where this function is used in gschem.

commit ca60bcbdab636a6ee28a004d5ce802a57933e6bb
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 28 18:37:22 2010 +0000

    Use change notification to redraw when an object's line properties change
    
    Emit change notification in o_set_line_options(), and remove
    o_invalidate() calls where this function is used in gschem.

commit 51c180d137513668925fe2f5834f8ec5cb1d4563
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 28 18:37:22 2010 +0000

    Use change notifications to redraw objects with selection changes
    
    Emit change notifications when an OBJECT's selected flag is changed,
    and removes o_invalidate() calls where the selection is manipulated
    in gschem.

commit 47ebe0bb0145d95946d05fa1fd8d9bab7bd08175
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 28 18:37:22 2010 +0000

    Use change notifications for redraw when text is recreated
    
    Emit change notifications in the o_text_recreate() function, and
    remove o_invalidate() calls from gschem where o_text_recreate(),
    or other functions calling it are made.

commit 5c14a649bd633950624dfda4128bd83ed77ef4bc
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 28 18:37:21 2010 +0000

    Use change notifications for objects added / removed from the page
    
    Adds emission of the change and pre-change notify events for adding
    and removing objects from the page respectively.
    
    Remove explicit invalidation calls after performing these actions
    in gschem.

commit 0a93ef44cea25ec2bed559d8a05488fd3badd63c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 28 18:37:21 2010 +0000

    libgeda: Process updates prior to removing an object from the page.
    
    Renames the private function object_removed to pre_object_removed,
    and moves its calls prior to removing the object from the page.
    
    For the existing  updates, the order doesn't matter, however other
    things we might like to do per-object when removing them from the
    page, such as emitting notifications of what we're about to do,
    must be done before the object is actually removed.

commit 8b1faf85362bb30c392e2b9ebc5d8ccb800b85f2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 28 18:37:20 2010 +0000

    libgeda: Add mechanism to call hook function when an object changes.
    
    Introduces two new functions wihin libgeda, o_emit_pre_change_notify()
    and o_emit_change_notify(), intended to be called prior to and after
    an object being modified, respectively. This mechanism is primarily
    intended as a means for libgeda to trigger on-screen updates when
    objects are changed, and as such - at present, only a single pair of
    call-backs can be registered (per TOPLEVEL). These call-backs are
    registered via the new public function o_set_change_notify_funcs().
    
    The o_emit_pre_change_notify() function gives the GUI an opportunity to
    queue a redraw for the screen region where an object used to reside,
    prior to operations which change its bounding box, and similarly, the
    o_emit_change_notify() allows the GUI to trigger a redraw of the
    modified object.

commit 9aa23d8ec9319639b505b30d8a7754af9311beca
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Feb 24 16:30:49 2010 +0000

    libgeda: Better match on-screen text height when printing

commit f1a4a40d964c7ea32404cd2ac888609ef89935a7
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 28 18:33:06 2010 +0000

    libgeda: Remove unused gdk-pixbuf-hacks.c and prototypes
    
    These were unused since switching to cairo rendering of pictures.
    gdk_pixbuf_rotate(), gdk_pixbuf_add() and gdk_pixbuf_mirror_flip}()
    all bite the dust.

commit 331b9111417cf6297fa8f188b81a67d2caf2b963
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Feb 20 14:36:57 2010 +0000

    libgeda: Re-indent o_line_modify()
    
    Keeps this NOP change separate from a more functional change one
    of my branches.

commit fc0d1ec31bc40dce2a511efae25530c32533fb2e
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Feb 20 00:05:28 2010 +0000

    libgeda: Remove unused variables from o_text_{new,recreate}()
    
    These were left-over from factoring out update_disp_string().

commit 351bdfd3b45c8283c5dd9b9e903edf648fa5df00
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Feb 19 23:08:43 2010 +0000

    Move o_text_recreate() call inside o_text_set_string()
    
    All callers of o_text_set_string() call o_text_recreate() to update
    the text object. o_text_set_string() should call it directly.
    
    Despite being a hold over from the old "prim_objs" based text rendering
    system, this function still does useful work preparing the string to be
    displayed on screen.

commit e5aecb64ebaa24e9511a7f814aeffc2a334d563f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Feb 17 18:24:13 2010 +0000

    Kill ADDING_SEL flag with FIRE!
    
    The TOPLEVEL.ADDING_SEL flag has long preyed upon intrepid programmers
    venturing into the labyrinthine and treacherous depths of the gEDA
    source code, introducing strange and hard-to-trace logic errors and
    segmentation faults to hinder them on their various quests to fix bugs
    and add features.
    
    But no more! The beast lies slain! No more will developers need to
    perform the dance of "flag save and restore" to placate the ravening
    beast! No more will they mutter strange incantations for hours as they
    seek to determine whether the flag should be set or unset!
    
    
    
    In serious terms: the flag was only used for controlling whether or
    not objects should be added to the tile system.  By ensuring that
    objects are only added to or removed from the tile system when added
    to or removed from the tile's corresponding page, it's then possible
    to replace the flag check by checking whether the OBJECT is currently
    part of a PAGE.

commit 76010e59b8a1495eaaaa12688b8e70c30827503f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Feb 17 17:41:48 2010 +0000

    libgeda: Remove some uses of page_current.
    
    Change some places that use page_current to use o_get_page() or
    o_get_page_compat() instead.

commit f8f053afef5a3e6302e9ec4ed9efcd8f1bf07886
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Feb 17 16:33:02 2010 +0000

    libgeda: Link tile system contents to page contents.
    
    Instead of adding objects to tile system on object creation and
    removing them on object deletion, add and remove objects from tile
    system at the same time as they are added to/removed from a page.
    
    This makes more sense, since each page has a separate tile structure.
    And has the added advantage of getting rid of a place where the
    ADDING_SEL flag is needed!

commit a25595e2e628c2dec91cc1b045fc18ec34b16fc2
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Feb 17 20:48:39 2010 +0000

    libgeda: Hide some s_conn_* functions from public API.

commit f21bae619b0df02e6024fb9dd23397d5698ed47e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Feb 17 16:24:02 2010 +0000

    libgeda: Hide some s_tile_* functions from public API.

commit e19d39a3125cb336da4d8fbbad51a23068e5da4d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Feb 17 12:18:58 2010 +0000

    libgeda: Fix build.
    
    Commit 9b24bf40 introduces a stupid error.

commit 42c4df51736485b164323304f59bcdb0f18fef61
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Feb 17 11:45:39 2010 +0000

    libgeda: Clear PAGE.object_lastplace on OBJECT removal.
    
    Clear the current page's object_lastplace magic pointer (which
    actually should be in gschem somewhere) when removing an OBJECT from
    the page, instead of doing it on OBJECT deletion.

commit 9b24bf40fd35e0954acaa89a1aa8f73ce4f3233a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Feb 17 11:45:39 2010 +0000

    libgeda: Add parent PAGE pointer to OBJECT structure.
    
    There are numerous examples of libgeda & gschem code that assumes,
    when operating on an OBJECT, that it is part of the "current" PAGE as
    set in the TOPLEVEL structure.  This has a number of disadvantages,
    including the need for regular frobbing of the ADDING_SEL flag and
    page_current pointers, but most importantly restricting the ability to
    work with more than one PAGE at once. Furthermore, it is not
    convenient or practical to add a PAGE argument to all functions that
    may eventually need to manipulate or update the current page based on
    changes to OBJECTs.
    
    Instead, this patch adds a parent PAGE pointer that is updated *only*
    when adding or removing an OBJECT to a PAGE.
    
    In order to ensure consistency in the case of compound objects, only
    the "top-level" compound object has its page pointer set; in general,
    *either* OBJECT.parent *or* OBJECT.page may be non-NULL.

commit e85bf2f103667368768939dfc2c40484be8abf8f
Merge: 0e5defe 93b0370
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Feb 15 20:30:22 2010 +0000

    Merge translations from the stable-1.6 branch
    
    NB: Translations were merged manually

commit c31d9a1a90db32dd1e1d41f9d3d5ef5888424ba1
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Feb 14 17:09:45 2010 -0500

    Updated copyright text/header in most source files.
    
    Updated all copyright text dates that should be updated for the new year.
    Fixed a bunch of GNU text typos (these should have been either
    GPL or gEDA).  Removed some $Id$ tags which are no longer used/needed.
    Fixed a few file header that were just plain incorrect.
    
    (cherry picked from commit bd34cfde2450790b357e574281f9562adce64303)
    (from stable-1.6 branch)

commit 5df2c5c6f400facb3f81963d6fb0332832cc9e6b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Feb 15 19:26:10 2010 +0000

    Make update-po

commit bd34cfde2450790b357e574281f9562adce64303
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Feb 14 17:09:45 2010 -0500

    Updated copyright text/header in most source files.
    
    Updated all copyright text dates that should be updated for the new year.
    Fixed a bunch of GNU text typos (these should have been either
    GPL or gEDA).  Removed some $Id$ tags which are no longer used/needed.
    Fixed a few file header that were just plain incorrect.

commit 93b0370c433f5eb6716ce537288803df4ff99549
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Feb 14 09:01:16 2010 -0500

    First set of changes done by make update-po (ran by prelim make distcheck)

commit dcfcb835d5dec2c0ec71526188bbd6c1b76a94ac
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Feb 14 13:03:47 2010 +0000

    Import translations from Launchpad

commit 4e91bc5e52699639cf78a9112b0422d2763a6346
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Feb 12 18:00:44 2010 +0000

    Update translations from Launchpad

commit 6261b5ea22dfcff6aac6060f98dd7606b7cb4ed2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Feb 8 16:31:00 2010 +0000

    Merge translations with those exported from launchpad

commit 99c5e8ce7cb7d2f06d3da3c3b841b0d40c583583
Merge: 89ad783 d3b0112
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Feb 6 21:36:08 2010 +0000

    Manually merge translations from the stable-1.6 branch
    
    For newly translated languages, this was fairly simple, using msgmerge
    to update the stable-1.6 "$LANG.po" files with the current git HEAD
    translation template ".pot" files.
    
    For existing languages, I used msgcat to combine the two, allowing it
    to choose the "newer" translation - ie.. the one on the stable-1.6
    branch if there were any conflicts.
    
    To assist, I used the following short script:
    
    \#!/bin/sh
    
    LINGUAS=`cat LINGUAS`
    TEMPLATE="geda-gschem.pot"
    NEW_DIR="stable-1.6"
    OLD_DIR="HEAD"
    
    for TR_LANG in $LINGUAS
    do
      echo "Attempting to merge for language ${TR_LANG}"
      if [ -e ${OLD_DIR}/${TR_LANG}.po ]; then
        echo -n "Old translation exists.. merging"
        msgcat --use-first ${NEW_DIR}/${TR_LANG}.po ${OLD_DIR}/${TR_LANG}.po -o merge_tmp.po
        msgmerge merge_tmp.po ${TEMPLATE} -o ${TR_LANG}.po
      else
        echo -n "Translation is new, updating"
        msgmerge ${NEW_DIR}/${TR_LANG}.po ${TEMPLATE} -o ${TR_LANG}.po
      fi
    done
    
    (Modified appropriately for each */po/ directory.)
    
    The current translations were placed in po/HEAD/ and the (newer)
    stable-1.6 translations were placed in po/stable-1.6/
    
    The script requires the LINGUAS file to be updated to include all
    new languages before it is run.
    
    The resulting changes have been reviewed to ensure nothing
    massively broken happened during the merge, and committed as a merge
    to show the origin of the translations.

commit 575bca9da7f38599c4c7b06b38d186ea0ad11f00
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Feb 6 20:14:51 2010 +0000

    libgeda: Update Arabic translation from latest Launchpad

commit 7600ad3e08cc1160e08be7ec3611936a9c9db06a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Feb 6 18:54:33 2010 +0000

    libgeda: Import translations from Launchpad

commit 7b97171ff386bb96e16dbd879aed45b8da908efe
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 31 11:09:45 2010 +0000

    Update en_GB translation

commit fd66d4de4dd32b4d080a9cbd4f53f2a598269b63
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 31 11:08:04 2010 +0000

    Update en_GB translation (actually do it this time!)

commit 67f8e23339892fbcb958c2051e8fabe5345350fe
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 31 10:27:32 2010 +0000

    Run make update-po in all */po/ directories

commit bf82ca8680254c7752fed304fb67716fcc0f6023
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 31 10:45:01 2010 +0000

    Run make update-po in the */po/ directories

commit cce79ff0e9cd2be1bdb9f9883317f5eadfa41c03
Author: Peter Brett <ptbb2@cam.ac.uk>
Date:   Sun Jan 31 10:01:03 2010 +0000

    libgeda: Remove unused variable.

commit ce53e956128a330f7c13e1953cad937b27027323
Author: Peter Brett <ptbb2@cam.ac.uk>
Date:   Sun Jan 31 10:01:02 2010 +0000

    Move snap state tracking out of libgeda.
    
    Since snapping is only relevant to gschem, store snap state in the
    GSCHEM_TOPLEVEL structure.

commit b50377f6c0438e49b9dff0a2be8dc01df51dfd55
Author: Peter Brett <ptbb2@cam.ac.uk>
Date:   Sat Jan 30 15:54:34 2010 +0000

    Don't use %-style patterns in Makefiles.
    
    %-style patterns are a GNU make extension.

commit 7cf778da5905cf4189eeb043c1b98cb0efa2b305
Author: Peter Brett <ptbb2@cam.ac.uk>
Date:   Sat Jan 30 15:54:28 2010 +0000

    Add --from-code=UTF-8 to XGETTEXT_OPTIONS.
    
    Some of the translatable strings in the source code contain UTF-8
    encoded characters.  Without setting the --from-code argument
    appropriately, xgettext chokes on these strings, which can result in
    an infinitely-recursing build.
    
    Reported-by: Peter <link@penguindevelopment.org>

commit 1d3486d420ff603548697f4fcb553776d2cea62f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 30 15:34:47 2010 +0000

    libgeda: Fix postscript output issue with unclosed paths
    
    Continues the fix from commit 012a3c3ddf55b0260b296476fa7d047af88818f7
    
    Ensure we always have a space before the "fill" command in the output
    postscript.
    (cherry picked from commit 39209cd034abc4059e4cda6590be158dc366e787)

commit 071e2a23a844003854688e981e43bc07c22bcd6b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Jan 27 18:17:45 2010 +0000

    libgeda: Fix postscript output issue with certain paths
    
    Ensure we always have a space before the "stroke" command.
    
    Reported-by: Donald Tillman <don@till.com>
    (cherry picked from commit 012a3c3ddf55b0260b296476fa7d047af88818f7)

commit 39209cd034abc4059e4cda6590be158dc366e787
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 30 15:34:47 2010 +0000

    libgeda: Fix postscript output issue with unclosed paths
    
    Continues the fix from commit 012a3c3ddf55b0260b296476fa7d047af88818f7
    
    Ensure we always have a space before the "fill" command in the output
    postscript.

commit 03acdbfaadaa35d11cf510ea4651b47584178514
Author: Peter Brett <peter@peter-b.co.uk>
Date:   Sat Jan 30 13:37:17 2010 +0000

    Clean up some left-over font directory cruft.

commit 012a3c3ddf55b0260b296476fa7d047af88818f7
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Jan 27 18:17:45 2010 +0000

    libgeda: Fix postscript output issue with certain paths
    
    Ensure we always have a space before the "stroke" command.
    
    Reported-by: Donald Tillman <don@till.com>

commit f30b66a2d02592c907b1ac15270f34d8f62f1327
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Fri Nov 20 22:17:52 2009 +0000

    libgeda: clean up doxygen warnings [2899355]
    
    Some of the doxygen comments for libgeda have
    fallen into bitrot, particularly around parameter names and lists.
    This patch updates doxygen comments to fix almost all warnings generated
    in the libgeda doxygen run.

commit 923a59b1f9c6399f9cb280da57d5eaa6edd26f74
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Fri Nov 20 06:58:54 2009 +0000

    updated german translation for libgeda

commit da2510c304cc6d62dba465c396a19fc91ed7b506
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Fri Nov 20 06:58:53 2009 +0000

    Updated the Dutch translations for libgeda.

commit 858982a2a05ff3e128de3621f1d301ecd989f35c
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Fri Nov 20 06:39:59 2009 +0000

    Changed message on failure to generate doxygen docs
    
    If --enable-doxygen was not a configure flag, change the error message
    on an attempt to build doxygen documentation to suggest the configure
    flag was the cause of the failure rather than the lack of a doxygen
    install itself.

commit ea34de8e761f40b697fc4800375ab8c5ef642c60
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Fri Nov 20 06:39:59 2009 +0000

    Don't drop a file called "doxygen"
    
    Remove the file redirection that causes a file called "doxygen"
    to be created in the */docs/ directories if --enable-doxygen
    is *not* one of the configure flags.

commit e1c4dab66eea9b253b3be4e006e4ab741b62024e
Author: Jason Childs <oblivian@users.sourceforge.net>
Date:   Thu Nov 12 18:33:55 2009 +0000

    libgeda: Use g_file_set_contents() to write files atomically.
    
    (One half of patch #2628677; crediting Jason because this part of
    the patch was applied unmodified. -- Peter)

commit e9355f593ea77d83211f058f6a38b23b3a2a3243
Author: Gareth Edwards <gareth@edwardsfamily.org.uk>
Date:   Thu Nov 12 14:29:47 2009 +0000

    libgeda doxygen: Corrected images make target [#2889717]
    
    The doxygen target under libgeda/docs was not calling the correct
    target in the images/ subdirectory at the start of the documentation
    build. Changed from 'make' to 'make images'.

commit 015c118098009694068c481be704de2078e53e00
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Oct 17 11:29:26 2009 +0200

    updated german translation for libgeda

commit 1928bfe038ce99bd83a725c439a56f2458f2172c
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Sat Oct 17 10:13:15 2009 +0200

    Updated the Dutch translations for libgeda.

commit d8740dadf4a78d240a4dc8255f72fd316579146e
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Oct 4 21:58:54 2009 -0400

    Commited a few more updates to the libgeda/po files (caused by make distcheck)

commit a8d42b7de50639897c888646883ce88d819d2589
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Oct 4 21:11:20 2009 -0400

    Ran make update-po in all po directories in prep for a new release

commit 4f40000aff79919a3894de4e2e6e560e224220ce
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Sep 29 01:43:05 2009 +0100

    libgeda: Move slot handling code to its own file, s_slot.c
    
    Separates special-case attribute handling from o_attrib.c
    
    Renamed functions:
      o_attrib_search_slot() -> s_slot_search_slot()
      o_attrib_slot_update() -> s_slot_update_object()
    
    libgeda private API:
      o_attrib_find_attrib_by_name() is no longer static to o_attrib.c

commit 3e6e56f8840a5df6512e9305879d75afd9ece373
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Sep 29 01:43:02 2009 +0100

    Use o_text_set_string() to adjust attribute values
    
    Avoids re-writing the text->string member directly.

commit 5ca5b9768cf70f3d0f905d784d0896c6b442c34f
Author: Cesar Strauss <cestrauss@gmail.com>
Date:   Wed Sep 23 19:29:07 2009 -0300

    build-sys: Check and set Windows-specific flags.
    
    The Windows platform has a native gcc port (MinGW) and a
    POSIX compliant one (Cygwin). Both need specific flags to
    build correctly.
    
    The rules are:
    
    * On all Windows platforms, pass -no-undefined to libtool.
      This allows shared libraries (DLLs) to be built.
    
    * On MinGW, use the -mms-bitfields compiler flag.
      This increases compatibility with the MSVC compiler.
    
    * On MinGW, pass -mwindows when linking GUI-only applications.
      This avoids opening a text console when running from a shortcut.

commit 2197f7740aeef021c75504e82ad3004bb6a8e1b0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Aug 31 19:38:11 2009 +0100

    libgeda: Make some net consolidation routines private
    
    Don't export the functions which are only used within libgeda.

commit f850ee37983f27d48d0173b003e8377f0bac3f63
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Aug 31 19:38:10 2009 +0100

    libgeda: Clarify code to re-select consolidated nets.
    
    Minor re-write to make the logic clearer.

commit 394425f81b0653fc8efa9f5890217ee4fae631e0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Aug 31 19:38:10 2009 +0100

    Don't consolidate nets when loading files.
    
    Nets should be consolidated when placed, not when the file is loaded.

commit d388f5370c4b264df90e79a412968589706402c4
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 30 19:32:08 2009 +0100

    libgeda: Fix linking against guile
    
    With the geda-guile.m4 check, guile's library and linker flags are
    held in the GUILE_LIBS variable, not GUILE_LDFLAGS.

commit 4a4218692e089ef40e17acf045cb94849e8b6b3c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 30 19:30:01 2009 +0100

    libgeda: Fix libtool versioning for libgeda.so
    
    We need to pass -version-info, not --version-info to libtool

commit 52f809520c670690cb73b00b4207feb6860b073d
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Aug 29 21:42:10 2009 -0400

    Ran make update-po in all po directories in prep for the next release

commit 6ead47c4df3fa6e8227523aa88282c7d4e678f46
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Aug 29 14:46:07 2009 -0400

    More tweaks to the images Makefile to not build by default and do cleanup

commit e890e7c806dbd5bcd311ad5cd201a7f5ec31dcec
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Aug 29 12:52:27 2009 -0400

    Added libgeda/docs/images to the build system
    
    Unfortunately automake complains when creating libgeda/docs/Makefile.in:
        `%'-style pattern rules are a GNU make extension
    It will be interesting to see if this causes anybody problems.

commit 8db05013c0542a6e2f8931b9c2ba2318fe8b613f
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Wed Aug 26 21:38:44 2009 +0200

    Updated spanish translation for libgeda and gschem.

commit 1ef5b2a3545e7ebc06025a460b0c9563663e789d
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Sun Feb 1 13:38:36 2009 +0100

    Add a new scheme function to set the page filename.
    
    Add a new scheme function set-page-filename to set the filename
    of a given page.

commit 1b152740c10b5198d16a43a73f08ccbe90d37ccb
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Tue Aug 18 22:56:56 2009 -0400

    Updated all po files by running make update-po in all the */po directories
    
    Run make update-po again might be necessary as we get closer to release time.

commit e5ae12ec1091bd6e3c4067e395714efd3934b0c2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Aug 17 13:18:10 2009 +0100

    Remove old text mechanism, including TEXT->prim_objs, symbols/font/*
    
    Now we have pango rendering, the old text mechanism and its
    glyph symbols are redundant and can be removed.

commit f9e5481638f4ab3b86054d82ce10e10b008d9657
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Aug 17 12:01:57 2009 +0100

    Hard-code the gEDA font-size to postscript points scale factor.
    
    Replaces the (postscript-font-scale ...) option, and the scale
    factor hard-coded in gschem's pango text rendering routines.

commit c394dc703ac479b4d095b65bdb67526ed6e7c1e0
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Aug 17 11:19:58 2009 +0100

    Always use PostScript fonts in PostScript output.
    
    Removes the "output-text", "text-output" and "output-vector-threshold"
    config functions.

commit 3191d47aa5f71847c876a35371a89cb38825e66b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Aug 17 11:19:06 2009 +0100

    gschem: Render images using cairo, not GDK

commit ff6ea4955d0490d6436bc74d840325e76098304f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 13 07:56:57 2009 +0100

    build-sys: Don't use AC_HEADER_DIRENT.
    
    The Autoconf manual says that AC_HEADER_DIRENT is now unnecessary:
    
         This macro is obsolescent, as all current systems with directory
         libraries have `dirent.h'.  New programs need not use this
         macro.
    
    This patch removes AC_HEADER_DIRENT and all checks for HAVE_DIRENT_H.
    It turned out that in most of the places where `dirent.h' was being
    #include'd it wasn't needed anyway.
    
    (Fix for a Cygwin build bug reported by Dan McMahill).

commit a419f4f196ef6574940d082d88f46b95bbeb0ea9
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Aug 12 20:45:03 2009 +0100

    libgeda: Make o_complex_promote_attribs() respect keep_invisible. [2460301]
    
    Placing components from the component selector should respect
    TOPLEVEL->keep_invisible when deciding how to deal with promoted
    attributes.

commit ea46d8defce4390b9650e8d2a5035de4794673df
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Aug 12 20:05:01 2009 +0100

    libgeda: Make o_complex_copy() actually copy. [2460301]
    
    In the past, o_complex_copy() has instantiated a new COMPLEX by
    calling o_complex_new(), which reads in symbol data from the symbol
    library.  A separate o_complex_copy_embedded() function performed a
    copy for embedded objects, by actually performing a deep copy of the
    COMPLEX to be copied.
    
    Also note that components being placed from the component selector are
    copied into place.
    
    This lead to a bug reported by Peter Clifton, whereby the contents of
    an embedded symbol could vary.
    
    - If placed normally and then embedded, the attributes promoted out of
      the COMPLEX prior to preparing to place were "resurrected" by the
      magical file-reading powers of o_complex_copy(), and these
      attributes were then kept when the symbol was embedded.
    
    - If placed as embedded, the attributes were *not* resurrected,
      meaning that the promotable attributes were *not* present in the
      embedded symbol.
    
    This patch modifies o_complex_copy() to explicitly carry out a deep
    copy of the object to be copied, removing the file-reading behaviour
    (this seems to be the Right Thing in this context).  It also removes
    o_complex_copy_embedded(), since it is then superfluous.

commit 358a39882c24bd916b90da7c34af5547c2a31b09
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Aug 9 15:50:47 2009 +0100

    libgeda: Remove unused variable in o_text_load_font().
    
    The prim_objs variable was added in
    8af5fba2ec0248331ceb5d2746771e70b2813004, but its use was removed by
    c8628e4df819998e40d7954c5a5d41a2fbfbbb7d.

commit a4a8c19bb3389548d641a0874a77c77f623ad7a5
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Fri Aug 7 23:02:01 2009 -0400

    Makefile.am cleanup (removal of ChangeLog and Makefile.in files)
    
    Details on this commit:
    * Now that we are no longer storing machine generated ChangeLogs inside
      the git repository, make maintainer-clean should remove the machine
      generated ChangeLogs.  This way nobody accidently edits the ChangeLog.
      Only 7 ChangeLogs are left after a make maintainer-clean (intl, po,
      and one toplevel ChangeLog).
    * Some directories were missing the removal of Makefile.in when make
      maintainer-clean is run.  Only 3 Makefile.in files remain now after
      make maintainer-clean (only in the intl directories).
    * Removed $Id$ tags from some of the Makefiles since we are no longer
      using CVS.
    * Removed some unnecessary ChangeLogs from ever being created (from
      example/gTAG gschem/scripts, and symbol/font).
    
    Note 1: There are still some machine generated files still hanging around,
    but I'm going to leave those alone for now as the .gitignore mechanism
    properly masks those.
    
    Note 2: Made sure that all files that are to be removed in the *CLEANFILES
    lists comes before the #*# otherwise they will be ignored.

commit c8628e4df819998e40d7954c5a5d41a2fbfbbb7d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Aug 8 00:56:05 2009 +0100

    libgeda: Fix font loading.
    
    Fixes a bug introduced in 8af5fba2ec0248331ceb5d2746771e70b2813004
    which caused libgeda to not detect character widths correctly.
    
    This was subtle.  A new font OBJECT must be created and added to the
    global character hashtable *before* o_read() is called to populate the
    OBJECT with its constituent lines.  This is because when o_read()
    encounters the 'F' font parameter line, it calls
    o_text_set_info_font() to process it.  o_text_set_info_font() in turn
    needs to be able to get at the font object for that character, which
    it looks for using the global hashtable.
    
    I have added some comments to the source code explaining this.

commit fc2b205314545d92ea2a7e8f40a7a4c7d5af893d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 6 17:15:29 2009 +0100

    Don't store git-generated ChangeLog files in repository.
    
    Don't store ChangeLog files in the git repository and have to remember
    to update them each time a release is made.  Instead, get `make dist'
    to create the ChangeLogs for you if a git repository is detected.
    
    Note: make distcheck does not pass in this commit.

commit 77d96e9154d9cfc81b25353ef99b8f8f42999bfb
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 6 14:35:12 2009 +0100

    Add top-level NEWS file.
    
    This contains important user-visible changes.  It should be kept
    up-to-date, in order to make writing release notes easier.

commit 09fcc6d689defb8f43bfc27aac87ee4ac34ce66a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 6 12:33:07 2009 +0100

    Update top-level README file.
    
    Well, actually rewrite it entirely.
    
    Note: make distcheck does not pass in this commit.

commit 433c672579aabb282999377139c9242b319ba044
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 6 12:38:31 2009 +0100

    Only need a single `AUTHORS' file.
    
    Move the gschem one to the toplevel (adding several missing names on
    the way), and remove most of the others. The `AUTHORS' files in the
    `symbols' and `utils' directories are retained, because they contain
    some useful information.
    
    Note: make distcheck does not pass in this commit.

commit ed7134fd403b9f1dc0a75d50e4e7bcfb2fd95cb8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 6 11:19:57 2009 +0100

    Only need one copy of GPLv2.
    
    Also, update to latest version of GPLv2 (from
    http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt).  This corrects
    the FSF contact address, along with some minor formatting
    modernisations.
    
    Note: make distcheck does not pass in this commit.

commit 03943792b7606534fba0fd4e158dc6ff8d6adb97
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Aug 7 23:21:36 2009 +0100

    Start implementing unified build system.
    
    Restructuring of build system, including new m4 macros and helper
    programs. Note: only libgeda can be built from this commit.
    
    Important differences from previous versions:
    
     - The tarball is now called gEDA-<version>.tar.gz.
    
     - Documentation is now installed to ${docdir}
    
     - A `version.h' file is generated containing the package version
       strings, including the git commit SHA-1 and the descriptive string
       from `git describe'.  `version.h' is distributed in the source
       tarball so that gEDA can be built without git.

commit e55e9e247eb33c4a5be56687b4610c6649ef74d7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Aug 4 22:06:16 2009 +0100

    Remove existing build infrastructure.
    
    This simply strips out all configure, m4 and autogen scripts from the
    whole repository, including the toplevel Makefile.  This commit does
    not compile (what a surprise)!

commit 7f6a4497b66d7ae8e47089a6a09287d112ac2587
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Aug 7 09:19:19 2009 +0100

    system-gafrc: Send font warning to stderr.
    
    This stops gnetlist stdout results from differing between the font
    being installed and not installed (and thus breaking preinstall
    tests).

commit 8af5fba2ec0248331ceb5d2746771e70b2813004
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Aug 7 07:26:41 2009 +0100

    libgeda: Cope better with not finding the font.
    
    Calling exit(-1) if the font doesn't appear to have been found is
    stupid and not the way that a library is supposed to do things.
    Instead, use a built-in question mark character '?' for any characters
    that can't be loaded (which, if the font is missing, is all of them).

commit 9d7d8bd214f12506155ebb6ff516e107dbcc0b9c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Aug 3 22:40:44 2009 +0100

    libgeda: Use lrint instead of rint.
    
    Using lrint avoids an integer->double->integer cast.

commit 1f05fb8e7b857c2bba2fbcaa4893ecbedcc478a9
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jul 28 22:08:43 2009 +0100

    libgeda: Fix odd bug in o_save_buffer().
    
    o_save_buffer() contains an interesting bug.  Sometimes it calls
    o_net_consolidate(), which affects the current_page, but there is *no*
    guarantee that the object_list argument actually belongs to the
    current page -- and even if it did, there is no guarantee that the
    object_list argument would still be a valid pointer after
    consolidation! Whoops.
    
    This patch removes any potential o_net_consolidate() call from
    o_save_buffer().

commit df2be174a44a92c80e5e44bd3d83c69ce7508776
Author: Kai-Martin Knaak <kmk@lilalaser.de>
Date:   Tue Jul 28 22:11:55 2009 +0100

    libgeda: Improve comments in o_attrib.c.

commit 2b16e530902c2c82e450f6b424eca7c0dbb598a2
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jul 14 07:45:11 2009 +0100

    libgeda: Fix component library doxygen.
    
    Turn the random pages generated at the toplevel into sections within
    the file documentation for `s_clib.c'.

commit 87152abe9c217a34323a9166730cd12e5c7773ca
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jul 14 06:50:18 2009 +0100

    libgeda: Get rid of some uses of SCM_STRING_CHARS.
    
    SCM_STRING_CHARS is deprecated in Guile 1.8.x.

commit d66220b8d3085c7ab55bac419b125d9287c0520d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jul 5 17:36:57 2009 +0100

    Ignore yet more unnecessary m4 files installed by autopoint.

commit 64cdf2bd7250e97749a308e19916c1d65c9a2c95
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 18 18:09:56 2009 +0100

    Use a static configure.ac and constant gettext version.

commit ee7200f0f784699344e8ef8bb332e4a0486eeda4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jun 21 13:45:51 2009 +0100

    libgeda: Don't use stdarg.h.
    
    A number of files in libgeda include stdarg.h, but none of them
    actually use it.

commit 1a4c656b3aea2a0cd58b57f836e97b96078f0bb2
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jun 21 13:35:21 2009 +0100

    libgeda: Don't use libgen.h
    
    Since we now use GLib's functions to get the basename, basename(3)
    from libgen is no longer required.

commit 74227a00faff800831eb04c31a04760216ebc12b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jun 23 10:47:03 2009 +0100

    libgeda: Fix some compiler warnings.
    
    Fixes some "may be used uninitialized" warnings.

commit b166d053e62c01b3b6413e0c6df275a432ba9792
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Jun 22 11:34:25 2009 +0100

    Add new functions o_set_color() and o_glist_set_color()
    
    Replaces the inaccurately named o_complex_set_color() and
    o_complex_set_color_single().
    
    Also replaces o_attrib_set_color(), which was static to
    libgeda/src/o_attrib.c

commit 2dc3c8dad90b4b02a962929edf2b6ce5b75939aa
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Jun 22 10:53:23 2009 +0100

    Remove OBJECT->saved_color field
    
    Rather than resetting the color of selected objects, we instead add a
    helper function, o_drawing_color(), which decides at drawing time what
    color an OBJECT should be drawn.
    
    o_drawing_color() checks if there are any color overrides in effect,
    and whether the OBJECT (or its parent, in the case of TEXT or COMPLEX
    prim_objs) is selected.
    
    Remove now unused functions:
      o_complex_set_color_save ();
      o_complex_unset_color ();
      o_complex_unset_color_single ();
      o_complex_set_saved_color_only ();

commit 12052ab6b3e17d275ee63a08f03305fbfee4c93b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Jun 22 10:50:36 2009 +0100

    libgeda: Set the OBJECT->parent field on text prim_objs
    
    This allows us to keep track of the ownership of TEXT prim_objs.

commit 5f52ce5d7f4be7ee1eb2246b896135d01fb320c0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Jun 22 10:50:36 2009 +0100

    Rename OBJECT->complex_parent field to OBJECT->parent
    
    We might wish to track the ownership of text prim_objs as well
    as complex, so calling this field complex_parent is confusing.

commit 97e51ad1c88349adc4e826de4b0da25d39cdd86d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 18 08:54:11 2009 +0100

    libgeda: Don't use intltool.
    
    intltool causes a number of problems at the moment. It's not
    tremendously portable, it hammers the gettext infrastructure heavily,
    and it has large incompatibilities between versions.
    
    Instead I've created a tool called desktop-i18n which does all of the
    things we currently use intltool for, without any dependencies except
    for a working shell & make. It's not as featureful as intltool, but it
    appears to do everything that is required.
    
    Thanks to Dan McMahill for testing and portability suggestions.

commit 9626ff1a94e81c1da8738f21d8f88c2f1e1cbd16
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jun 17 15:24:26 2009 +0100

    libgeda: Ensure that buffer pointer is initialised to NULL.

commit d0fdb127e16c46f85ceddca00bff1103ac075b68
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jun 17 15:24:26 2009 +0100

    Pass correct search path flags to aclocal.
    
    The autotools install several m4 files into the top-level m4
    directories in each project. aclocal (and automake) need to be taught
    to look there before searching the system directories.

commit 67aeb9b999d29080118a7af899ad1de362ccd2b8
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Jun 8 23:31:22 2009 +0100

    Fix autogen.sh scripts to look for AC_CONFIG_HEADER to run autoheader
    
    Since commit #9a7c363c572d32a30fa1522cd7d14b21c2958ca8, the configure
    scripts in gEDA use AC_CONFIG_HEADER, not AM_CONFIG_HEADER
    
    Fixes build problems noted by various users. Identified by Dan McMahill.

commit 502e052f59ed28d8e6b4388be3d58097716839c1
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Jun 8 20:29:15 2009 +0100

    libgeda: Initialise counter in o_attrib_search_slotdef()
    
    Caught by Dan McMahill - thanks!
    
    I'm not sure why gcc -O2 -Wall didn't catch this.

commit 65ab1fad22f6879f1a296ee5382f633870613c78
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Jun 8 11:09:56 2009 +0100

    Remove support for GLib < 2.12.0.
    
    Requiring GLib 2.12.0 means that we no longer require *any* of the
    existing GLIB_CHECK_VERSION ifdef blocks.

commit 61f488315da15d0be48acbe65ee9c1bf69c60e03
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Jun 8 10:57:32 2009 +0100

    Require GLib 2.12.0 or newer.
    
    We now require GTK+ 2.10.0, and since that requires GLib 2.12.0, we
    can bump the GLib version we require up to match.
    
    Thanks to Peter Clifton for spotting this.

commit 9a7c363c572d32a30fa1522cd7d14b21c2958ca8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Jun 8 10:48:25 2009 +0100

    Use AC_CONFIG_HEADER instead of AM_CONFIG_HEADER.
    
    This fixes an issue with config.h.in not being correctly regenerated
    with autoheader on changes to configure.ac.
    
    Thanks to Maciej Pijanka for working out the solution to this problem!

commit 209e55a6a0ab33478cea41c154be64d7ec0620ea
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jun 7 19:34:30 2009 +0100

    Require GTK+ 2.10 or newer.

commit d5e06e6ee657f80d1cb8d82884122ac958e9d3a4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jun 7 19:34:30 2009 +0100

    Remove Guile 1.6 support.

commit b4862c3c120c8144f47393333e2e6bec2f302bc7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jun 7 19:34:29 2009 +0100

    Require Guile 1.8.0 or newer.
    
    Guile 1.8 became the stable branch of Guile on 2006-02-12, over three
    *years* ago. All major distributions ship it, including Debian stable.
    
    Expecting its availability makes testing of new Scheme-based features
    much easier, as most gEDA developers normally write and test code
    against 1.8. Furthermore, it allows better advantage to be taken of
    1.8-only features (such as improvements in debugging support), without
    requiring vast swathes of hard-to-maintain preprocessor trickery.

commit a1f2394de855ee1d0cc2c931ed9aef86763eecbf
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jun 7 11:48:32 2009 +0100

    libgeda: Add to doxygen comments for APIs which had TOPLEVEL added
    
    Forgot to add these in commit #a9d64bf7db382ed3c6ac2b89e0434af80bc1e19c

commit 4aa6cd61c253046806a5818bd6fd8be87296d634
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jun 7 01:41:46 2009 +0100

    Pass the OBJECT having its attribs removed to o_attrib_detach_all()
    
    This function only worked correctly when passed an OBJECT.attribs
    GList, so it makes more sense to just pass the OBJECT whos attributes
    should be detached. The function can then set the OBEJCT.attribs to
    NULL, ensuring the OBJECT stays in a consistent state.

commit a9d64bf7db382ed3c6ac2b89e0434af80bc1e19c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jun 7 01:40:11 2009 +0100

    Add TOPLEVEL parameter to some libgeda APIs
    
    For consistency with other libgeda functions, and in order to allow
    these functions to call others which require the toplevel parameter.

commit 047a3ecad3fe1bcd98c6eb209134772cd894fe6c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jun 7 01:40:10 2009 +0100

    Remove o_attrib_search_numslots(), instead call the attribute API directly

commit 9686b31bc86c7e57a26bad0c65e21b97ed713e5b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 10:38:58 2009 +0100

    Make o_attrib_get_name_value() take an attrib OBJECT, not char *
    
    Rename the old function as exported API o_attrib_string_get_name_value(),
    so existing code (such as validating potential attribute strings) can
    still work unaltered.
    
    The new o_attrib_get_name_value() wraps o_attrib_string_get_name_value().

commit 7e0e339dc47211254ff5e968fa402f4735ef41fa
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:47:57 2009 +0100

    gschem,libgeda: Tidy up invocation of the slot dialog
    
    Avoid presenting the whole "slot=..." attribute text in the slot
    dialog, since the user only needs to see the value portion.
    
    We now use o_attrib_search_object_attribs_by_name() to retrieve the
    current slot for a component when bringing up the dialog. This means
    that if there is no slot= attribute attached, the default slot= value
    (if any) from the symbol will be returned automatically, and we don't
    need an explicit call to o_attrib_search_default_slot().
    
    Remove the now unused function o_attrib_search_default_slot().

commit 6940a50d7e05a19cd75678190ae56aefdc4407e9
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:47:53 2009 +0100

    Remove now unused functions from the old attribute API.
    
    Removed functions:
    
      o_attrib_search_attrib_value()
      o_attrib_search_attrib_name()
      o_attrib_search_name_single_count()

commit 9bee7186e31a9852cebdd65b7952261df0c1749b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:47:49 2009 +0100

    libgeda: Use new attrib API for o_attrib_search_slot()
    
    Deleted now unused function o_attrib_search_name_single()

commit aa7b65e3a1cc59eadf247ed0fe74afeaeb7c5fe3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:47:43 2009 +0100

    Make use of the new API o_attrib_search_attached_attribs_by_name()

commit c99db7713faaad225501710e58220e580bca58b1
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:44:34 2009 +0100

    Make use of new API o_attrib_search_floating_attribs_by_name()
    
    Replaces the less specific API, o_attrib_search_name() previously
    used to search for floating attributes.
    
    Remove the now unused function o_attrib_search_name().

commit 04a22009e68284327bdb57bf7c31e5788b0bfc67
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:44:19 2009 +0100

    Make use of new API o_attrib_search_inherited_attribs_by_name()
    
    Replaces the less specific API, o_attrib_search_name() previously
    used to search for floating attributes inside complex objects.

commit 33b113b078e9647d7304b4c2caa04da1dd367e4f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:34:53 2009 +0100

    Use o_attrib_search_object_attribs_by_name() where appropriate

commit f6e0d43eb80615c5314c4caab7ba727a50f3bcde
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:34:18 2009 +0100

    libgeda: Use new attrib API for o_attrib_slot_update()
    
    Also tidy up the function a little.
    
    We now use o_attrib_search_object_attribs_by_name() to find the
    slot= attribute value of an OBJECT, so we automatically get the
    correct fallback to the symbol's embedded default slot= attribute
    value if the attached slot= attribute is missing.
    
    (This means a behavioral change in the uncommon case where the
    attached slot= attribute is missing, and the symbol specifies a
    default which is not slot=1)

commit 52fc6981d5dc91cb08e3314d5b77bdb7505418ba
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:32:34 2009 +0100

    Remove o_attrib_search_string_list() and o_attrib_search_string_single()
    
    Reworked the one remaining caller of these functions to use
    o_complex_find_pin_by_attribute(), which utilises the newer APIs.

commit 031e46d5d1b8071ebcde097b2a0f75984885a953
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:32:31 2009 +0100

    Replace o_attrib_search_pinseq() with o_complex_find_pin_by_attribute()
    
    Calling o_complex_find_pin_by_attribute() with "pinseq" as its name
    argument, a char * wanted_value and a complex OBJECT (rather than its
    prim_objs) is functionally identical.

commit 58859ac33ddd97e1cb7aa6eeaff832d3ed87c725
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:32:27 2009 +0100

    Replace o_complex_return_pin() with new o_complex_find_pin_by_attribute()
    
    Implement a more generic version of o_complex_return_pin(). The old
    function takes a pinnumber as its argument, and finds a pin which has
    a matching "pinnumber=..." attribute.
    
    The new function takes an explicit attribute name argument as well as
    the value, so we can find pins by any attached attribute. This is useful
    so we can search by "pinseq=..." attributes as well.

commit 9e375afb9c865705ed4eff3b982f1a1a3e8fc843
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:32:18 2009 +0100

    Remove unused function o_complex_return_nth_pin()

commit 2212036b0b38fb4c929d2abeaec638e4d483b91b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:30:45 2009 +0100

    libgeda: Allow symbols to override the slotdef= attribute definitions
    
    This should pave the way to allow attachement of slotdef= attributes
    overriding those inside the symbol.
    
    NB: If this is done, pinnumber updates in gschem won't be triggered
    immediately, since they are only run when a slot= attribute changes.

commit 3dc2a7150357119355212af164e38299df8e1649
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:29:20 2009 +0100

    libgeda: Eliminate usage of, and remove o_attrib_search_string_partial()
    
    This function's one caller was using it to find an attribute containing
    "slotdef=X:", where X is the slot number being retrieved.
    
    o_attribute_search_string_partial() would look at the full name=value
    string of each text object in the given object list, looking for a
    substring match on the desired text. (In fact, we only want a match
    at the beginning of the string).
    
    The new implementation may be somewhat less efficient, since it queries
    all slotdef= attributes in turn, checking to see if the one returned is
    the desired value. The speed penalty should be impercievable though, and
    the new code better abstracts the implementation details of the attribute
    system.

commit 8a2e32035cdac22ca6d355560bb9fdf935a99af8
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:29:17 2009 +0100

    Move logic of function o_attrib_search_toplevel_all() to its one caller
    
    This function was only used in one place, and probably didn't deserve its
    own API in libgeda. The function it is called from is not used anyway, so
    could probably be removed completely at some point. (Although it forms
    part of the scheme API for gnetlist, comments above it suggest that it is
    "still highly temp and doesn't work right"). It is not requied by any
    known (shipped) gnetlist backends.

commit f505ad65da209bd8d7e766d495466b904643e9b7
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:29:14 2009 +0100

    Remove o_complex_get_toplevel_attribs() in favour of newer attrib API
    
    o_attrib_find_floating_attribs() is functionally identical.

commit 88c205ea2ff69936aa5362a52d27471fbab87e6b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:29:02 2009 +0100

    Remove o_attrib_search_toplevel() in favour of the newer API
    
    o_attrib_search_floating_attribs_by_name() is functionally identical

commit ca55a937a7f865e851e8352e7c80005b1d94f36f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:28:47 2009 +0100

    Remove o_attrib_search_component() in favour of the new API
    
    Calling o_attrib_search_object_attribs_by_name() with a count
    parameter of 0 is functionally identical.

commit b1484835dce050c1bc67faf898622336a1f9cde3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:09:16 2009 +0100

    Introduce new attribute searching API
    
    This new API aims to be explicit as to the scope of its behaviour.
    Various of the existing APIs are very similarly named, yet will have
    subtly different behaviours when passed a list of OBJECTs, attribute
    OBJECTs, some general OBJECT, or an attribute OBJECT.
    
    Since the current APIs are confusing, the sensible course of action seems
    to be introducing a new simple API for searching a GList of attributes by
    name, then providing specialised wrappers which construct the appropriate
    list of attributes to search.
    
    To this end, inside libgeda/src/o_attrib.c, the following new functions
    are created:
    
    The generic search routine:
      static OBJECT *o_attrib_find_attrib_by_name ()
    
    A helper which returns the value of the found attribute:
      static char *o_attrib_search_attrib_list_by_name ()
    
    Exported API to search:
    
      floating attributes (on a page, or inside a symbol):
        char *o_attrib_search_floating_attribs_by_name ()
    
      Attributes attached to an OBJECT:
        char *o_attrib_search_attached_attribs_by_name ()
    
      Attributes inside an OBJECT (inherited):
        char *o_attrib_search_inherited_attribs_by_name ()
    
      Attributes from an object - either attached, or from inside the symbol:
      char *o_attrib_search_object_attribs_by_name ()
    
    
    The latter is in preparation to make more use of an aggregate attribute
    list for objects - rather than having each piece of code duplicate the
    logic to check both attached attributes, and those inside symbols.
    
    We also make o_attrib_find_floating_attribs() static, since it is
    only used inside o_attrib.c now.

commit 02fde480e0d58300d9e7ee1cf0357fb96d14adbb
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:09:16 2009 +0100

    Add inherited attributes to the list returned by o_attrib_return_attribs()
    
    This starts to allow a common place where attributes from the symbol will
    be combined with attached attributes to form an aggregate attribute list.
    
    Currently, various pieces of code which deal with reading attributes will
    check the attached attributes of a symbol, then the inherited attributes
    explicitly. For cases where a simple combining rule exists, we can reduce
    such checks to a single lookup of the aggregate list.
    
    Atttributes such as "net=" and "source=" which often exist multiple times,
    possibly both as inherited and attahched attributes, present difficulties
    though.
    
    For now, just pile all inherited attributes at the end of the returned
    list. This means any code which wants to check for the first attribtue
    with a given name should do the "right thing", with attached attributes
    taking presidence over inherited ones.

commit 5920b9ac846a1d0da2d76a3d72887489e7a93316
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 6 01:09:15 2009 +0100

    libgeda: Improve doxygen comments for o_attrib_find_floating_attribs()

commit c38b5069f3fee207c48281da49ac1c90cf5d508a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jun 5 16:04:32 2009 +0100

    Fix crash with (keep-invisible "disabled")
    
    The deleted attribute objects were not being removed from the prim_objs
    list they belonged to.

commit 79b00986fbc5d05328b57457ff16d83462bf6198
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jun 5 16:04:27 2009 +0100

    libgeda: Make o_complex_remove_promotable_attribs() static
    
    This function is only used in o_complex_basic.c.

commit 2379c5ded2a56d119dc731a63910cddd080a1c9e
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jun 5 16:04:25 2009 +0100

    libgeda: Make o_complex_get_promotable() static
    
    This function is only used in o_complex_basic.c

commit 52bed9acb6ac46882d6d2ca431167cf1b00e53b4
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jun 5 14:57:31 2009 +0100

    libgeda: Remove unused function o_complex_count_pins()

commit 19d6f815561d0cf903a648bcc96fac67d76d5f96
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun May 31 17:25:50 2009 +0100

    libgeda: Plug leak in o_attrib_return_attribs() (CODE!!)
    
    We don't need to retrieve the attribute's name whilst validating it,
    nor do we need to leave that name un-freed!

commit 932c71ec1b93d9a7e2b833039c75ab987b4956e5
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun May 31 17:08:44 2009 +0100

    libgeda: Remove unused o_attrib_slot_copy() function
    
    The one previous caller of o_attrib_slot_copy() has been reworked in the
    preceding patches.

commit 8686ff1bb3e41a5c0ef785c6749d8491a7182758
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun May 31 17:07:45 2009 +0100

    Call o_attrib_slot_update(), not o_attrib_slot_copy() in o_complex_copy()
    
    When the appropriate slot= attributes are re-attached to the complex,
    the slot will be updated. There is no point in pre-empting the pinnumber
    update by looking at the slot= attribute of the source complex.
    
    If the complex were copied, but its slot= attribute were not, the call
    could result in incorrect pinnumbers on the new object.
    
    We do want to run o_attrib_slot_update() though, just in case the symbol's
    internal slot= attribute would cause a pinnumber update.

commit 3bf53bf950231cec429819246e46135faea74dde
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun May 31 17:04:33 2009 +0100

    libgeda: Add special case slot update when copying a slot= attribute
    
    This update is needed to ensure the pinnumbers on the complex are updated
    correctly if a slot= attribute is copied along with the symbol.
    
    This hasn't caused a problem since when copying the complex, the pinnumbers
    are reset to match that of the object being copied - looking at the slot=
    attribute of the complex being copied.
    
    If its slot= attribute is not copied along with the complex, the new
    complex will have the incorrect pin numbers. We need to make sure that
    when the slot= attribute is re-attached, it updates the pinnumbers
    properly - we can then remove the pinnumber update in o_complex_copy().

commit 85f601b363eac1541d06c47fd1a121b6ff1e2950
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun May 31 14:30:14 2009 +0100

    libgeda: Add o_attrib_find_floating_attribs()
    
    This routine will return a GList of floating attributes in the
    passed OBJECT list. It will be useful to identify inherited
    attributes from inside a symbol.

commit 824ad0acd7d27087690c8eaeb59a1f3806b64d58
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun May 31 14:30:12 2009 +0100

    libgeda: Add test for whether a given attribute OBJECT is "inherited"
    
    An "inherited" attribute is a floating attribute which lives inside
    a complex object. Its OBJECT.attached_to member will be NULL, and
    its OBJECT.complex_parent will be non NULL.

commit 57362274fcbe133d9fa545b761fc104310325d0f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun May 31 14:30:08 2009 +0100

    Make o_attrib_return_attribs() return a GList, not an array
    
    This fits better with our GList centric view of list data.
    
    Also validate the attributes in o_attrib_return_attribs(), so
    we aren't passing potentially malformed attributes to our
    callers.

commit 20164638241324a3ff92197cea9d8c2ae3dea0c3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat May 30 23:46:15 2009 +0100

    libgeda: Make o_attrib_search_{pinseq,slotdef}() static
    
    These functions are only used in o_attrib.c

commit 3b41329b9750009a9ca7a832f69597c1946c4579
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat May 30 18:45:40 2009 +0100

    libgeda: Tidy up o_attrib_search_default_slot()

commit 7a7b553b395a78a9d53b64cc50d1077342999a75
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat May 30 18:45:38 2009 +0100

    Remove unused "return_found" argument to o_attrib_search_numslots()

commit 963ac330d97e843f6ec4580b64d9b36c51807783
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat May 30 18:34:17 2009 +0100

    Rename o_attrib_free_all() to o_attrib_detach_all()
    
    This name better reflects the function's action.
    
    Add some notes to the doxygen comments about this function. Specifically,
    it must be called with some (OBJECT *)->attribs pointer, since the
    attributes which are detached would otherwise not be removed from the
    (OBJECT *)->attribs GList.

commit 57fc7016a727134bb3a0655db817a980c24838d4
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat May 30 18:34:11 2009 +0100

    libgeda: Remove the short function o_attrib_free(), inlining its code
    
    The only caller is o_attrib_free_all(), put the code there. Since it
    is no longer part of the public API, the NULL check can be removed.
    
    Also tidy up o_attrib_free_all() somewhat.

commit bad2b34e1695f4ef74db35dabc7b39ea2ebc71bf
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat May 30 18:34:04 2009 +0100

    libgeda: Tidy up o_attrib_set_color() and use it to reduce code duplication
    
    Also make the function static, since it isn't used outside of o_attrib.c

commit 419a531753294ee9ab039272d2ed147adf2b262e
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat May 30 18:33:58 2009 +0100

    libgeda: Remove o_attrib_search() function
    
    This function only had one caller, which has been modified.
    
    When attaching an attribute, we check if it is already attached.
    Previously this code used o_attrib_search() to check by object
    SID. Instead, we now just look for the OBJECT* pointer in the
    attribs list using g_list_find.

commit ab590ab70cddfe6a0954d56a31c0ebd1f0bc7691
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Mar 28 15:55:19 2009 -0400

    Updated ChangeLogs one more time for 1.5.2

commit 42236bdddb4f04de9facf246ce20fff6854d022a
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Mar 28 15:48:56 2009 -0400

    Added missing libgeda.dox so that it gets packaged up in the release tarballs

commit 546d4dbe0124d3f9421116b9e5a8889cccf97b84
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Mar 28 15:22:19 2009 -0400

    Updated all ChangeLogs
    
    Updated the ChangeLogs by running:
    	./update-changelogs.sh 1.0-20070526..master
    in the toplevel directory

commit 859abe69912ba99ca27bb58c378284e9eec56259
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Mar 28 15:13:59 2009 -0400

    Updated all versions to 1.5.2 20090328 36:0:0
    
    Updated by running:
    ./update-versions.sh 1.5.2 20090328 36:0:0

commit b297d32b70c02bfe800b7bf4c434d1fd4447e2f5
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Mar 28 14:55:22 2009 -0400

    Updated all po files by running make update-po

commit c3081930ed224394f645de4bfb51e86fa3e15e65
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Feb 20 23:26:12 2009 +0000

    Remove obsolete references to libgd and libgdgeda

commit 246acd46e591e542ac3f00f9064905ae0311b0ec
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jan 24 16:08:43 2009 +0000

    Make o_save(), o_read() and friends take an object list argument.
    
    Sometimes we may want to save or read in a list of objects which isn't
    the current page. This adds a new function o_save_curr_page() which
    behaves the same as o_save() previously did.

commit 4d83eae30b789deb8ab9235a89c191630ebf18be
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 21 21:17:01 2009 +0000

    libgeda: Refactor load backup query callback.
    
    Passing user data allows the gschem callback to be called with a
    GSCHEM_TOPLEVEL instead of a TOPLEVEL.

commit 44028f9c988a134748c8cea5e439983377ae3fd3
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 21 21:16:59 2009 +0000

    libgeda: Don't use compiled-in GEDADATA on Windows.
    
    On Windows, the compiled-in data path set with configure is unlikely
    to be the same as the path gEDA is actually installed to -- so don't
    use it. Instead, permit the s_path_*() funcs to return NULL.

commit 3c0d85eae92d5764aa7dee2899c6a066c3470ee3
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 21 14:11:39 2009 +0000

    Write logs to $HOME/.gEDA/logs/.
    
    Rewrite s_log_init() to put log files in a centralised location. A
    user application (e.g. gnetlist) provides a prefix, and log file is
    opened at:
    
       $HOME/.gEDA/logs/<prefix>-<YYYYmmdd>-<serial>.log       [1]
    
    The serial is found by the following procedure:
    
    1. Read through the directory to find the highest existing <serial>.
    
    2. Starting with that number, repeatedly attempt to open()
       incrementing files with O_CREAT|O_EXCL flags to guarantee that a
       new file is created.
    
    3. If after LOG_OPEN_ATTEMPTS = 5 attempts a unique filename hasn't
       been found, fail.
    
    The logic *intentionally* does not fill in gaps in the sequence -- if
    I delete logs, I still want a new log to appear at the end of the
    list.
    
    [1] The actual location is a subdirectory "logs" of the user config
        directory, which may not be ~/.gEDA on all platforms.

commit 7cc4a67795c9ee8dcb28edc6d71b895c5b4f1dc9
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 21 14:10:41 2009 +0000

    Refactor finding paths for config etc.
    
    This is intended to provide a centralised place for determining the
    paths more "smartly" in the future (e.g. for platforms with different
    conventions on where config should go).
    
    Only user-visible change should be that log messages when loading
    config files no longer hardcode "~/.gEDA".

commit b5fbfa5f8734c215fb632a29699889b7decf910c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jan 18 02:11:17 2009 +0000

    libgeda: Do not use "Requires.private" in libgeda.pc
    
    We cannot use "Requires.private", as the behaviour is not consistent
    across distros due to an ongoing disagreement about what the semantics
    of "Requires.private" should be. In particular, Fedora's pkgconfig
    package has patches installed which break that functionality. Instead,
    use "Requires".

commit fda82eb96e2c785efe91fd59d01f6e7e26b897ed
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Jan 18 01:48:58 2009 +0000

    Protect some strings passed to pkgconfig.
    
    Ensure that pkgconfig version requirement strings are protected from
    M4 expansion.

commit bb074bdd2a30fd3b941be2683c905a99d330243a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 17 22:48:41 2009 +0000

    libgeda: Fix printing of colours.
    
    To avoid emitting a colour change for each object printed, libgeda caches
    the last colour it wrote into a postscript file, and doesn't emit a new
    colour change command when the next object is the same colour.
    
    Drawing of complex and text objects are wrapped by a "gsave" and "grestore"
    pair, which resets the postscript interpreter's current colour, so we need
    to restore our variable tracking the last drawn colour after these groups.
    
    Fixes mis-drawn colours noted by DJ on the geda-user list.

commit 28ee7866d44c74927401d362aceec4474bb5075c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 17 22:30:13 2009 +0000

    libgeda: Use AC_LIBTOOL_WIN32_DLL to build DLL on Win32 platform.
    
    This (albiet deprecated) option is required to make a shared DLL on
    Win32. The non-deprecated syntax isn't compatible with older libtool,
    so lets use this for now.

commit 333ccc55a1a1dc7c0c6ae92daefdfb83c54d511f
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Wed Jan 14 21:03:41 2009 -0500

    Revert part of a commit that changed how libtool is initialized
    
    This commit reverts part of b47b0d1276a9535e3a66e4f8535f6c552849490f
    back to the original way of initializing libtool (using AM_PROG_LIBTOOL).
    The other changes in b47b0d1276a9535e3a66e4f8535f6c552849490f seem
    reasonable enough.

commit a37263740000929363492726a069d92b161ab64c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 14 00:37:54 2009 +0000

    libgeda: Make colormap hex codec functions more portable.
    
    The 'hh' length modifier was added in "The Open Group Base
    Specifications Issue 6". (IEEE Std 1003.1, 2004 Edition).
    
    Testing on wine's implementation of msvcrt.dll has shown
    that this modifier isn't implemented, leading to memory
    corruption / misread colour maps.
    
    Commit message ammended by Peter Clifton.

commit b47b0d1276a9535e3a66e4f8535f6c552849490f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jan 13 23:58:45 2009 +0000

    libgeda: Ensure we build a shared DLL on MINGW32.
    
    Pass -no-undefined to libtool, and initalise in configure.ac.in
    with LT_INIT([win32-dll],[shared]). Tested not to affect Linux.

commit 09e4b6a6c3fb7d9a95340f4de4a2b84193318f33
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jan 13 23:58:41 2009 +0000

    libgeda: Define libraries necessary for statically linking libgeda
    
    Following removal of extraneous CFLAGS and LIBS from libgeda's pkg-config
    file, there are problems statically linking the library.  We actually need
    to provide a list of required libraries to link with for static linking,
    and would ordinarily use Requires.private for that.
    
    Since guile 1.6 doesn't use pkg-config, avoid around the problem by adding
    guile's LIBS to libgeda.pc's Libs.private.

commit 0cfeefc37856c30fc57f9ca803ffb1f7f11310e7
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jan 13 23:58:05 2009 +0000

    libgeda, utils: Check for same glib version as rest of suite; 2.8.x

commit aabcb89e83bfbe3f601a023f8c5aa4da725a3c17
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 11 00:28:15 2009 +0000

    libgeda: Fix picture aspect ratios to compute width/height
    
    For some reason, libgeda was computing height / width, whilst gschem
    used width / height.

commit 700d5c08aa33009128491007ff4d3f6e91ce0489
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 10 22:54:09 2009 +0000

    libgeda: Move include files to be compatible with non-installed build
    
    By placing public libgeda include files in a directory libgeda/*, it is
    possible to point the rest of the suite's builds to include that directly.

commit 02fa8f658d315796df7c6ab8790e5310e8548d37
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 10 22:29:21 2009 +0000

    Remove explicit checks for X11 - we're not using X11 APIs directly

commit 51c7b2770c01b851f4f7bd0624eed0533c69c376
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 10 21:35:58 2009 +0000

    libgeda: Use "Requires.private" feature in pkg-config to avoid overlinking
    
    When libgeda declares that it requires gdk-pixbuf-2.0, using the
    Requires.private field allows the required CFLAGS to be passed on without
    forcing programs linking against libgeda to explicitly link with gdk-pixbuf
    
    This causes programs using libgeda to require a version of pkg-config >0.18
    (although that hasn't been determined experimentally). This was released in
    2005/2006, so ought to be fairly ubiqutous.

commit 2742d7a50cbf126ea5a901e2f9faa6259263ae75
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 10 21:21:39 2009 +0000

    libgeda: Avoid overlinking against libraies we don't actually use
    
    The only libraries we need to specify for libgeda is -lgeda, and an
    appropriate search path.
    
    For CFLAGS, we need to specify the path to libgeda's include files.
    
    We must also reference the libraries we depend upon being installed
    for our API / header files. This is currently guile and gdk-pixbuf.
    Since difrerent guile versions have different pkg-config files, this
    is not particulary simple to achieve. To avoid the problem, lets
    just not pass any guile CFLAGS on from libgeda's pkg-config file.
    
    Libgeda requires its callers to have correctly initialised guile, so
    imposing the requirement that guile's include files are available is
    not a great extra burden. (They must be available for the app to be
    calling the correct initalisation functions).

commit bb9b1321c59714e432c1c6a196a39baf56a437f9
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 10 20:41:59 2009 +0000

    libgeda: Don't depend upon GDK. We need gdk-pixbuf, which is separate.
    
    We don't need to call gdk_init() in o_picture.c, since gdk-pixbuf is not
    an internal part of GDK. Dropping the call to gdk_init() means it is now
    possible to run gnetlist on a schametic with images, without an X server
    available (for GDK build targetting X11).
    
    We only explicitly require GdkPixbuf for libgeda's external APIs.
    Move the #include <gdk-pixbuf/gdk-pixbuf.h> before we include our local
    prototype.h and struct.h though, since gdk.h no longer pulls this in.

commit fc660d554159c44e41a456fbb888fbe977666269
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jan 9 01:43:56 2009 +0000

    libgeda/gschem: Try a smaller cue circle for net junctions

commit 42a5bebc27f842b1955d9626f2521eea124259a0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jan 9 01:04:14 2009 +0000

    gnetlist: Teach netlist traversal code to understand buses (still disabled)
    
    Up until recently, the connection scanning code has rejected some, but not
    all buses. This means that it is unlikely graphical buses formed a useful
    part of anyone's design, since the netlist code in s_traverse_net()
    would not follow connections to another bus segment. The only possible
    bus-pin connectivity has ever been "pin-bus-pin", or "pin-bus-net-...".
    
    This behaviour appears to have been accidental, and would not have been
    easy for a user to take advantage of. The traversal code would not move
    on to a subsequent bus, but would, for example, allow a pin->bus->!bus
    connection, which could then connect onwards. The bus mixed up in this
    would for all intents and purposes behave as a net.
    
    The pin->bus validity bug was actually fixed in libgeda when adding
    support for bus pins. This commit formalises it further, since if
    support for netlisting bus pins were enabled it would otherwise still
    be possible to get a buspin-bus-net-... connection if you tried hard.
    
    Introduce type-checking between pins, nets and buses such that they can
    not netlist where the object types don't match. For buses, the code to
    name a connection based on "netname", "net" or "label" attributes is
    disabled - pending decision as to what constructs we wish to use for
    naming buses. Add a gnetlistrc setting (unnamed-busname ...) which sets
    the default naming (if the connection scanning code were run on bus pins).
    
    This commit lays some of the ground work for shared connection scanning
    code for determining the connectivity of buses and bus pins.

commit efb5dba68395549c7e970f3506148194eb4b30c6
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Jan 8 01:16:08 2009 +0000

    libgeda: Use strlen rather than strnlen, which is a GNU extension.
    
    Helps buy us some portabilty. In the case changed, the string is
    going to be NULL terminted, so the length cap doesn't buy us anything.

commit 330e6bc49a83a176c549644011d186dbc5e1d8b9
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jan 7 13:47:27 2009 +0000

    libgeda: Font-renderer-specific text bounds functions.
    
    When using arbitrary fonts, libgeda can't know the world extents of a
    TEXT object without reference to the font renderer.
    
    This patch adds a mechanism for applications (i.e. gschem) to register
    a callback to be used by libgeda for calculating the bounds of a TEXT
    object.

commit 600c870c0486edfe0afae031a6857ccddfec7e08
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Wed Dec 31 13:59:23 2008 +0100

    libgeda: access functions for filltype and linestyle
    
    Created the function o_get_fill_options and o_get_line_options to
    get the properties of an object.

commit 95432ccffdbb39434981f87050433c00f40125da
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 4 19:38:11 2009 +0000

    gschem: Revert change in cue size "fixed" when introducing bus pins.
    
    The old behaviour was intentional.. smaller cues were in fact supposed
    to be used for buses, so that the dot was contained inside the bus
    graphic.
    
    Rename the variables defining the sizes to be clear about their purpose.

commit ba15c06da1ec82e3ff063e211def6d8a983f1bde
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 4 18:44:00 2009 +0000

    libgeda: Fix hit-detection of arcs with negative end_angle

commit 975fc0827bf61e3e88ec374d3440b0887c2d5ef2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 4 18:43:27 2009 +0000

    libgeda: Fix calculation of arc bounds for arc with 360 degree sweep

commit 2874ca6c016115363ab9edb7809d5ca66509ca14
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 3 19:54:04 2009 +0000

    Move world <-> screen coordinate transformation functions into gschem
    
    Convert them and their callers to use a GSCHEM_TOPLEVEL as an arguemnt
    rather than TOPLEVEL.
    
    This commit moves most of libgeda/src/m_basic.c to a new file,
    gschem/src/m_basic.c

commit 4d79aa73981d6caa2c803250d1be266d7657f0c2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 3 19:54:03 2009 +0000

    Move o_line_visible() from libgeda into gschem
    
    This function relates to on-screen visibility, so should be in gschem.

commit f37c893edfeb016e57aae5e92f48093608e5cdfb
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 3 02:38:29 2009 +0000

    gschem: Add interface to toggle a pin between net pin and bus pin types.
    
    This allows schematic diagrams of hierarchical connections to include
    buses. Since gnetlist does not currently support buses, this feature is
    useful only for diagrams, or when used with a custom netlister.
    
    Since we don't want to mislead users into thinking bus pins netlist,
    the option to set pin type is only present on the page's popup menu,
    and is marked "(graphical)".

commit 7d01d4ae87fd329ffa3e93df9e286dd6e56e225c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jan 2 23:14:53 2009 +0000

    libgeda: Fix bus/net to bus/net pin connectivity checking rules
    
    Previously, the type of pin was not checked when computing connections,
    and buses were disallowed from connecting to any type of pin.
    
    Refactor s_conn_update_line_object() to concicely check the following:
    
      Allow connections between matching pin types only.
      Allow connections between nets, other nets and net pins.
      Allow connections between nets and the mid-points of a bus.
      Allow connections between buses, other buses and bus pins.

commit 998e8546754fe2ab41a57ce112c3966190c501df
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jan 2 23:14:52 2009 +0000

    gschem: Add support for rendering and adding pins with type PIN_TYPE_BUS
    
    Bus pins are rendered thicker, and with a bigger cue than standard pins
    of PIN_TYPE_NET.
    
    This commit also fixes a bug where the wrong sized cue circle was drawn
    for net-net interconnections.

commit 08db7a435330db92db7ce99267ca6c624481e053
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Dec 20 17:53:12 2008 +0100

    libgeda: check whether a attribute is attached to an object
    
    Simple test function added.

commit 48c35116377abd95e0914e6f28c00c9786392e70
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Dec 20 17:49:31 2008 +0100

    libgeda: functions to get the position of an object
    
    added a function o_get_position() to get the world position
    of an object.
    
    The returned position is dependant on the object type.
    For the box and picture object the lower left corner is used.
    For line, net, bus, path, the first point is used.
    For pin the whichend is used.
    For circle and arc the center is returned.
    Complex and text object return it's base coordinate.

commit 2ee50f8ed4a738880d3ca04fd5a27c66b89bc743
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Nov 16 12:50:17 2008 +0100

    libgeda: new snap state and snap cleanups
    
    Switched toplevel->snap into a enum type and use the newly added
    states.
    
    removed unused and broken function on_snap(). Removed misc
    wrong comments about the snapping mechanism.

commit 8a1b27af48d06ffe4fa2dc71a67810f7b4a71e32
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jan 2 14:17:31 2009 +0000

    Update en_GB translations for libgeda and gschem

commit 5d7b92b9f4cf9fb750c61b5b9124598692cbe6aa
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Fri Jan 2 14:13:28 2009 +0000

    Updated the Dutch translations for libgeda.
    
    (Patched PO file updated on 2009-01-02 by Peter Clifton)

commit d7b7b23721b4054172587c9961d4b87f47bee198
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 31 17:26:03 2008 +0000

    libgeda: Remove non-private access of PAGE->object_list
    
    This allows us to keep better track of where the PAGE must be updated
    should we have any spatially keyed data-structures in the future.
    
    Rename PAGE->object_list PAGE->_object_list to try and discorage any
    use of it outside libgeda (ideally, outside s_page.c) in the future.

commit ca6556ace0a06ec1dd697852f7a1f0ffb86bfb97
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 31 17:25:57 2008 +0000

    Add "const" to some places where we deal with GLists of OBJECTs.
    
    These GLists themselves are not (and shouldn't be) modified, although
    the OBJECTs they point at may well be.

commit 15ed098497ddac2bc671657c4d4347eb509f7449
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 31 17:25:50 2008 +0000

    Refactor o_complex_promote_attribs() not to link the promoted objects.
    
    By returning the GList of promoted attributes, we allow the caller to
    use whatever specialised linking procedures are appropriate for the
    list they are linking to. For example, linking objects into the PAGE's
    object_list might in future require calling notification functions.

commit 4971020530b55ac275cf30e48fd4c10cd6d8fb4c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 31 17:25:43 2008 +0000

    libgeda: Add new API for adding a GList of objects to the page
    
    s_page_append_list (PAGE *page, GList *obj_list) will take the GList
    passed as an argument and append it to the page's object list.
    
    The passed GList is not copied, so the caller must not free it after
    calling this function.

commit f013cb1d70d868093ad9aa3ae1e38a5c9079ecc9
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 25 22:08:49 2008 +0000

    gschem: Add a code to draw a mesh grid with major / minor lines.
    
    Adds new configuration option (mesh-grid-display-threshold {pixels}) which
    configures the minimum line pitch rendered before switching off the minor,
    then subsequently major grid lines.
    
    (NB: This grid mode is currently not accessible.)

commit 059f1be046494e1d1171953138f259b0af90409b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 25 21:25:16 2008 +0000

    gschem: Separate out dotted grid drawing and tidy up the code somewhat.
    
    Creates a separate static function for drawing the dotted style of grid,
    and a switch function to pick which grid drawing routine is in use, which
    is currently just dotted grids or nothing.
    
    Adds doxygen documentation for the grid drawing functions.
    
    Renames the "grid-color" colour map index and other dotted grid specific
    config parameters to prepend "dots-".

commit aa6e2f9f4eda4b6c3cd11eabd679c2a710b4f222
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 25 20:11:22 2008 +0000

    libgeda: Fix mis-matched default colour map definition
    
    Reorder the mapping in color-map.scm into strictly numerical order,
    and annotate the default color maps with their index numbers so this
    kind of mistake is less likely to reoccur.

commit 165de888d86506583241dab79573e81f2cf44dd7
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 25 15:46:09 2008 +0000

    Remove GSCHEM_TOPLEVEL and TOPLEVEL indirection for fixed colour indices
    
    Colour indices such as grid_colour and select_color are not changed at
    run-time since (by definition) those graphic elements are always drawn
    with the sepcified index. Remove the indirection through GSCHEM_TOPLEVEL
    or TOPLEVEL, and use the appropriate index constant instead.
    
    The background_color indirection remains, since swapping this is used
    to override the background to white when exporting black and white image.

commit 02c551b77e47fb0fbf2de3bfa62d43a095862a52
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Dec 23 09:30:01 2008 +0000

    libgeda: Update Guile 1.6 compatibility headers.
    
    Add scm_cdr() to Guile 1.6 compatibility checks, and remove uses of
    scm_is_null().

commit 0029ee5696a4f8c0fd2a0edb64c0096792e24912
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 23 03:46:50 2008 +0000

    Fix attribute colours for embedded objects [#2157598]
    
    Add an argument, "set_color" to o_attrib_attach[_list]() to specify
    whether the colour of the attribute should be reset to the default
    attribute colour when performing the attachment.
    
    We set this to true when promoting toplevel unattached attributes
    inside a symbol onto the schematic page, when the user explicitly
    attaches an attribute inside gschem. It is FALSE in other cases.
    
    In cases where we're creating new attributes, such as o_slot_end(),
    we specify the attribute colour we want to o_text_new().
    
    Remove colour setting from o_attrib_add(), since there is no point
    having this code in two places. o_attrib_add() just deals with the
    datastructures now.

commit eed07fa8c85fbeda15e974f186a69f546506fb12
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 21:16:36 2008 +0000

    libgeda: Only output PostScript color commands if color changes.

commit 736c635ef2f5bfb822169a8c024ebb92cdd17cf0
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 20:22:08 2008 +0000

    libgeda: Fix dark background lock color.
    
    Drawing of locked objects was accidentally disabled.

commit 5453f2680e45dd3f2ffde73f442ba18a6a180437
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 22 19:33:39 2008 +0000

    libgeda: Don't pro-actively calculate text bounds, wait until needed.

commit b43dd2d3dfa1f50c788c87215a3e080bdb4448ea
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 22 19:33:33 2008 +0000

    libgeda: Add missing case in o_recalc_single_object() for text OBJECTs

commit 96ac0c7622c909604f925ae2a5e242a46ed0b53a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 22 19:33:25 2008 +0000

    Use world_get_single_object_bounds() in s_page_get_objects_in_regions()
    
    This allows us to ensure the bounds are valid, and trigger a recalc as
    necessary.

commit 56985b0d059fc0487f7b8245cad7b468e737f2fe
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 22 19:33:18 2008 +0000

    Change s_page_get_objects_in_region[s]() to take a TOPLEVEL parameter
    
    This is needed in case we have to re-calculate the bounds of any object.

commit d63a40cef31791c8c5209f3695f14c3cdf29ba5d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 22 19:33:14 2008 +0000

    libgeda: Fix selection of non-filled paths along their closing edge.
    
    If the path is closed, we want to be able to select along the
    closing line.

commit e7fe069ae882f8c0d398cac1b426b8a7df6fff53
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 22 19:08:35 2008 +0000

    libgeda: Fix s_color_rgba_decode() to default the alpha channel
    
    Fixes cases where the colour map doesn't specify an alpha.
    
    Signed-off-by: Peter TB Brett <peter@peter-b.co.uk>

commit 2e4ec93e8689501983a891280d8b1869901113c9
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 16:38:38 2008 +0000

    Revert "Use light background color maps as the default."
    
    This reverts commit 01bd6420ecad411d804f4a1a3d41af67d901ce6a, and
    corrects the comments to refer to the dark background as the default.

commit 04e17b33aea43f01079d2a0fd1ac9457062aa392
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 15:43:55 2008 +0000

    libgeda: Load confd files as last action in system-gafrc.
    
    Without loading the configuration files from the confd last in the
    system-gafrc, it is impossible to override e.g. attribute promotion
    settings from confd scripts.

commit 01bd6420ecad411d804f4a1a3d41af67d901ce6a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 15:43:17 2008 +0000

    Use light background color maps as the default.
    
    The comments in the rc files have stated for a while that a light
    background is the default. Furthermore, all the cool CAD software uses
    light backgrounds these days.

commit 619aea627a81a5621036b0a2949e774bb5cb2e6e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 15:42:46 2008 +0000

    Separate display and print color map config files.
    
    We should be able to print in color using libgeda without needing
    gschem.

commit 12d9e2127329a880ed8532808635d3ffdbf46caa
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 15:29:51 2008 +0000

    Remove display colormaps from libgeda.
    
    Libgeda doesn't need to know about the color maps used by gschem at
    all. Add a generic function for initialising a color map to a built-in
    default, and get gschem to use it for its main and outline maps.

commit 9f5e54f022b73adb429633461ca88c81c394fd16
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 15:29:51 2008 +0000

    Remove (ab)use of "customary" colors.
    
    colors.h defines a number of color index index constants with color
    names (white, black, cyan, etc.) This is evil and bad, because the
    color map might actually be loaded with entirely different colors.
    
    This also adds a DEFAULT_COLOR macro, usable in most places the "evil"
    existing contacts are used.

commit a8b55895fd6833fa36ef92c6bc7c82490ea3a294
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 15:29:50 2008 +0000

    Remove legacy color Guile functions and variables.
    
    Remove the color-mapping functions and variables obsoleted by the new
    system.

commit 06449db86b91db91bf5d4551acc2794cf34c97f1
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 15:29:47 2008 +0000

    New Scheme colormap syntax.
    
    Add new color map functions for setting multiple colors at a time with
    a simple list-based structure. Use one per color map rather than one
    per color.
    
    Use a wrapper macro in Scheme to make it easier to construct Scheme
    color map structures by using symbols instead of indexes to specify
    map entries.

commit af4756b843d6da32b8355a50bf3bb1f2bee0a539
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 15:20:17 2008 +0000

    Store colors as components rather than as strings.
    
    Rather than storing colors in libgeda as strings or GdkColor
    structures, store them as a set of four 8-bit unsigned integers.
    
    Since the GdkColor structure is renderer-specific, remove all trace of
    it from libgeda -- only gschem needs to know about it.

commit 05c77c57cc78b0963e52a91e6f56e8005089690a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 15:20:14 2008 +0000

    Specify colors with RGB/RGBA hexadecimal notation only.
    
    Transparency (alpha channel) is used as follows for PostScript: if
    alpha is non-zero, objects are drawn fully opaque. If alpha is zero,
    objects are not drawn.
    
    The alpha channel is ignored for GDK drawing.

commit e2d6f2bfb1c24d5dfaf193dfae4aaa7cf4d0f236
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 22 00:36:27 2008 +0000

    Add explicit 'enabled' field to COLOR structure.
    
    Colors are implicitly 'enabled' by having values specified in the
    configuration file. Up until now, whether a given color is enabled has
    been checked by checking if the color name strings are NULL.
    
    This patch adds an explicit 'enabled' field to the COLOR structure. It
    is set TRUE when s_color_request() is called for that color index.

commit 3c49636e1a9e9e703fab4c6aafc69affb4fd2bab
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Dec 21 16:23:26 2008 -0500

    Updated ChangeLogs one more time.

commit e97e63ac7955c34f6fbd820cbdea9ea9b90e9ec9
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Sun Dec 21 22:16:33 2008 +0100

    Updated spanish translation for libgeda and gschem.

commit 2f3e07a1fa7fd92ab163d2cd966efd98ab306512
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Dec 21 14:40:21 2008 -0500

    Updated ChangeLogs again in prep for the 1.5.1 release

commit 76d02f7f935d930d8093bd49b7eb0836d3b1aa6e
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Dec 21 14:06:17 2008 -0500

    Updated all ChangeLogs in prep for the 1.5.1 release.
    
    The update was done by running:
    ./update-changelogs.sh 1.0-20070526..master

commit 84d3b0199bec40652b1381474f7f76d7b24a6ff7
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Dec 21 13:48:42 2008 -0500

    Manually ran make update-po in all the po directories
    
    This is in prep for the upcomging 1.5.1 release.

commit 680e08085d44c9876bdadef0ca7ef25b474c2006
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Dec 21 13:39:29 2008 -0500

    Updated all versions to 1.5.1 20081221 35:0:0
    
    Updated by running:
    ./update-versions.sh 1.5.1 20081221 35:0:0

commit c84879ae316698d0d1a85048cdc8417e71ec167e
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Dec 21 11:35:25 2008 -0500

    Added missing file (configure.ac) from maintainer-clean files
    
    configure.ac is generated from configure.ac.in and should not survive
    make maintainer-clean.

commit 2c1c7ff82e5ba02c432eb9e1e9fe44ac97e5ecc7
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Dec 21 11:24:43 2008 -0500

    Added libintl.rc to .gitignore to make git status less cluttered

commit 7289597377b3a0efd00c29b5da08956b25dffafc
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Dec 21 12:32:57 2008 +0100

    gschem/libgeda: updated german translation

commit 9e9b1ab60ff8740f4039471efaa5435193d83c14
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Dec 20 18:12:46 2008 -0500

    Manually ran make update-po in all the po directories
    
    make update-po was run in prep for an upcoming release.  It will probably
    have to be run one more time before the final release is done.

commit d8cc920d932f1557f3d93da6abd1d99e690f39ef
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Dec 20 21:47:12 2008 +0000

    gnetlist: Optimise connection traversal algorithm
    
    Increase performance for traversing schematic connections by
    optimising tracking of how many times objects have been visited.

commit 6329c5a7bdae9573f01f92403e4645e79e66aab5
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Dec 20 14:41:05 2008 +0000

    Update copyright header dates to 2008.
    
    (And I'll have to do this all again in a few days time).

commit 978a127bf1f7174fd5146371d0cbbfc6a8f2baf8
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Dec 20 08:25:06 2008 +0000

    Avoid and remove OBJECT variable draw_grips
    
    We can infer the required logic from OBJECT->selected, and the
    resulting code is cleaner.

commit 68f782583cc41b542dc237cb9173f64ffc01ce76
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Dec 20 08:09:57 2008 +0000

    gschem: Just redraw everything when we get an expose event
    
    Disable generation of our backing pixmap and remove o_invalidate_rect()
    calls from various drawing functions. The backingstore is straight to the
    screen, so there is no need to make that call (it causes a redraw loop).

commit 67daa4d705d62d16133feb2d9a3a77cacb9b34de
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Dec 20 05:49:39 2008 +0000

    Allow bounds of lines and arcs inside a COMPLEX to form a selectable box.
    
    This allows existing symbols, such as logic gates etc.. which have no
    outer box, nor yet make use of closed paths, to be easily selectable.

commit 94602fdc724dd31527c3ceed2092ddeee1d954e0
Author: Edward Hennessy <ehennes@sbcglobal.net>
Date:   Sat Dec 20 04:42:25 2008 +0000

    Symbols now selectable by clicking inside their shapes.
    
    This patch changes the selection behavior by allowing symbols to
    be selected by clicking inside any contained shape.  This behavior
    works for symbols with boxes, circles, and paths.
    
    Patch modified by Peter Clifton:
    
      Added m_line_shortest_distance(), (m_line.c) and make use of that
      in m_polygon_shortest_distance() rather than faking a line OBJECT.
    
      Change all o_*_shortest_distance() functions to take a parameter
      "force_solid" so we avoid having to use a specialised dispatch
      function to treat constituent primitive objects inside a COMPLEX
      as solid.

commit d785f7cf34f581bbb18fbc73dced8e44bc28ab90
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Dec 20 04:35:30 2008 +0000

    libgeda: Simplify shortest distance test for text
    
    Since we're always treating the text bouning box as a solid area,
    some of the conditionals can be simplified, as in the picture case.

commit 6e8f757d3aa23219bb0259064dbed5ffa64fb341
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Dec 19 00:59:52 2008 +0000

    Remove next/prev linking from the STRETCH structure. Use GLists instead.
    
    The PAGE now maintains a GList of STRETCH objects instead. This keeps the
    code a lot simpler and allows us to use more standard GList functions.

commit 5ac7d324af0630fc8ad6f8692bcd80fe3d7b81d1
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 18 23:01:16 2008 +0000

    libgeda: Fix memory leak in g_get_attrib_value_by_attrib_name()

commit ba936e6bb6c321b7c9d433a8276d7cccd17c9889
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 18 22:52:42 2008 +0000

    libgeda: Fix complex_parent for prim_objs of embedded objects
    
    When we read in the embedded objects for a complex, we need to
    set the complex_parent argument for each of them to point at the
    complex.
    
    This bug manifested in failed netlisting for embedded objects,
    and has been manifest since:
    commit f4dab83b1ca0e197f02f520a6ae525aeac5a252d
    gnetlist: Use the complex_parent property of an OBJECT, not the HEAD node.
    
    The omission which made this a latent bug was in:
    commit ec2e929742bb682be52d02818916b1f57c343e48
    libgeda: Set complex_parent on all prim objects, not just their HEAD node

commit 2aabf7fa7200f55b6bf3825cdf382af901484f0a
Author: Gabriel Paubert <paubert@iram.es>
Date:   Wed Dec 17 14:31:12 2008 +0000

    libgeda: Fix type parameter to s_basic_new_object, which should be an int
    
    The type parameter is stored as int in the OBJECT structure, so we should
    be careful that this function can accept any valid type number.

commit 645ddeba66b2bb589e6d5097dc8ead13529fd26f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 17 01:34:14 2008 +0000

    libgeda: Fix mistake leftover from cleaning up o_*_shortest_distance()
    
    m_polygon_shortest_distance() calls o_line_shortest_distance() (which I
    missed). It fills in geometry to a LINE structure, then calls the above
    function. Make up a fake OBJECT structure as well, since we changed it
    to take an OBEJCT * instead of a LINE *.

commit 1a38d368b89110372d311ddcd22a515b88d87ca0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 17 01:09:05 2008 +0000

    libgeda: Select text using the OBJECT's bounding box, not prim_objs
    
    Makes selection of text objects much easier, and will be needed when
    we use an external text rendering API rather than our own internal font.

commit abb681ddca37e729c3f17c48ca6d8d46e2f3dd2b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 17 00:29:41 2008 +0000

    libgeda: Clean up o_*_shortest_distance() functions
    
    Make all functions take an OBJECT * as their first argument, rather
    than a BOX, CIRCLE etc.. This keeps the function signature uniform
    and allows the routines full access to the whole OBJECT state.
    
    Also use g_return_val_if_fail() as elsewhere in the code. Favour
    primitive types such as double and int, rather than gdouble and gint
    to be consistent with the majority of the gEDA codebase.

commit 822d04bc29291979b91dd3222a27bbcb295e7b56
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 15 22:50:24 2008 +0000

    Delete references to the non-existent object type OBJ_HEAD. (CODE!)
    
    Ok, cleaned up some whitespace as well.. couldn't resist.

commit 07c7ea85f21c05b24513f1b087d839f098456408
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Dec 13 17:56:36 2008 +0000

    libgeda: Add function s_page_objects_in_region()
    
    s_page_objects_in_region() returns a GList of OBJECTs which are inside,
    or which intersect with the given region.

commit c24af025cba433db83db48d4b614632b2d5a517c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Dec 12 16:08:43 2008 +0000

    Replace calls to s_conn_return_complex_others() with s_conn_return_others()
    
    Teach s_conn_return_others() to understand COMPLEX objects.

commit 7f4ec05b6812bf412ad23da67b82c9378c57aa0c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Dec 12 15:28:07 2008 +0000

    Replace calls to s_conn_..._complex with a non-specialised version
    
    Renamed s_conn_remove() to s_conn_remove_object()
    s_conn_..._object() can then call s_conn_..._complex() as needed.

commit 136efaf13287e97165bf511f146714ec94796d9a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Dec 12 15:26:43 2008 +0000

    Replace calls to s_tile_add_line_object() with a non-specialised version
    
    s_tile_add_object() can then call s_tile_add_line_object() as needed.

commit 77541e1ec2efdc989b0a17864c1c0802080ff835
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Dec 12 14:03:27 2008 +0000

    Remove un-necessary copying of line end-points in o_..._copy()
    
    The end-points are already set when o_..._copy() calls o_..._new().

commit d2877ab739c26ed6330fdeac2711326442395640
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Dec 12 13:29:55 2008 +0000

    libgeda: Only add buses to the tile system if ADDING_SEL is FALSE
    
    No functional changes here, since s_tile_add_line_object() silently
    returns if ADDING_SEL is TRUE. To make the code similar to other
    OBEJCTs, don't call s_tile_add_line_object() in the first place.

commit eca34fca24e6d29a1b42c95daee0602c452fecd6
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 11 22:26:56 2008 +0000

    Revert "Remove unused "toplevel" argument to s_conn_* functions"
    
    This reverts commit b211658fcddb84828c437a65bf6bd73fcc4b1918.

commit 28e12a770b23ffbe08c994cbd98d21a581b2cd2d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 11 21:44:24 2008 +0000

    Add API s_page_delete_objects() to delete all OBJECTs on a page

commit 921a39edd130ed3bbfe83d9c39c3a9085c405d9a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 11 21:21:03 2008 +0000

    Remove function o_delete(), which just wraps o_delete_object()

commit b211658fcddb84828c437a65bf6bd73fcc4b1918
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 11 20:40:15 2008 +0000

    Remove unused "toplevel" argument to s_conn_* functions

commit c13d8d0cee5f8d6695b5a8a6592a144bbacf86a2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 11 14:23:55 2008 +0000

    libgeda: Minor edit to prototype for o_attrib_return_attribs()
    
    Use the same variable name in the prototype and the code.

commit 4c6af30bf52cfe9c25057eaca2cf3f2edd7e76c3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 11 13:25:25 2008 +0000

    libgeda: Tweak o_save_objects() so it can be used to save attributes
    
    This allows us to use o_save_objects() recursively for saving attributes,
    and remove o_save_attribs() which was otherwise almost identical.

commit 955a025379dae2a1c39b31a4653e7daa335013ad
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Dec 11 13:25:15 2008 +0000

    libgeda: Fixup doxygen comments for o_complex_get_toplevel_attribs()

commit beeb987b7d7858bbc4956f8f2d9a5fd4a894a158
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 9 19:28:34 2008 +0000

    libgeda: Check for NULL before updating slots after attaching attribs
    
    If reading a file which contains an illegal object type (which fails to
    read), then contains syntax attaching attributes to that object, we may
    attempt to update the slot on a NULL, or incorrect object.
    
    Updating slots on the wrong object is harmless, but causes a crash for
    NULL objects. Check for the NULL pointer before doing the update.
    
    Also check for NULL before handling embedded object data, and set
    new_obj to NULL when we read an invalid object.

commit 38ce8aae73beec00d603e4cda0ca5eee738a3cb8
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 9 19:23:22 2008 +0000

    libgeda: Abstract removing objects from the page with s_page_remove ()

commit 617797b5a47d370c4fee19110c826502b7e3082b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 9 16:19:09 2008 +0000

    Remove linkage between OBJECTs and use GList for OBJECTs on the page
    
    This affords quite a lot of code clean-up, since we no longer have to
    maintain two versions of each operation which works on lists.

commit 6e5b34f6b333158481c67a031353cb8a8b4ba7e3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 9 13:56:19 2008 +0000

    libgeda: Add doxygen comment for s_page_append()

commit 33b897881891a4a7bce7fab0db73f4923d701cbd
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 9 01:46:06 2008 +0000

    libgeda: Fix build error in s_page_append()

commit 9dd241d9f87ad78f27772e9490d3afa2a80621bf
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 9 01:38:21 2008 +0000

    libgeda: Add convenience function for adding objects to the page
    
    Adds s_page_append() which links the passed object to the end of the
    page's object list.

commit d089b532b3b5ca2b5e155a23994ed35fb85ec4a5
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 8 18:42:41 2008 +0000

    libgeda: Make box and circle hatching functions public
    
    Allows them to be used in the GUI for hatching these objects.

commit 2f5b7e9d890953680caa4fa111c31a0be4123d97
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 8 17:16:20 2008 +0000

    Adjust MINGW32 specific CFLAGS from the suite
    
    Console applications should not build with the -mwindows flag, otherwise
    output reach the console. Conversely, we should build the GUI apps, gschem
    and gattrib with -mwindows so they don't bring up a console window when
    running.

commit 7648acbe63cf2b12e9afd3dbb4456cb4ee02512e
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 8 16:44:42 2008 +0000

    Make functions in m_polygon.c public

commit 0542fb0af9756b35641b6683dc3301bda9e4d792
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 8 16:44:36 2008 +0000

    Revert change which moved sPOINT into a private header file
    
    This structure is needed in gschem for interacting with the
    polygon routines in m_polygon.c

commit c01757cd814e7c92cb4c64a6e134aa670b9750d1
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 8 16:29:11 2008 +0000

    Add rendering code to draw hatched fill in paths

commit 42b77331701214e518a9249e07b0e04c6c6d501b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 8 16:29:08 2008 +0000

    Better path printing support
    
    Allow printing of hatched paths thanks to Ed Hennessy's code to
    hatch arbitrary polygons.

commit 7ad1508b5dfa3a38f30176a72b288d5eb68f5050
Author: Edward Hennessy <ehennes@sbcglobal.net>
Date:   Mon Dec 8 16:29:05 2008 +0000

    Implemented distance selection mechaism for path objects
    
    This patch implements the distance calculation to path objects that may
    include both line segments and Bezier curves.  Also, the distance from
    a point to a line (o_line_shortest_distance()) is enhanced to handle the
    case where both endpoints are equal.
    
    Minor formatting edits by Peter Clifton

commit 53193798aec9d4f833126b3e7d7811511c8b2cf3
Author: Edward Hennessy <ehennes@sbcglobal.net>
Date:   Mon Dec 8 16:23:40 2008 +0000

    Path selection and hatching support
    
    Added utility functions for path selection and path hatching.
    
    Edited to s/POINT/sPOINT/ and other minor formatting mods by Peter Clifton

commit 2155126bafe11b36ca5dfaa1a9c0a06a63f136ee
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Dec 8 16:18:23 2008 +0000

    libgeda: Fix doxygen headers to start consistently
    
    Use the "Qt" style /*!  */ rather than the JavaDoc style /**  */

commit 0545db388236ea7a7aaa49d8911ad96481b4978e
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Dec 7 17:33:46 2008 +0000

    Remove some old comments better explained in commit history
    
    Comments annotated with a dates and developers initials clutter the
    code with historical details people may be reluctant to remove. Not
    all of these are still relevant, and those which are should probably
    could be kept in such a way as not to suggest code ownership. The
    commit revision log is a better place for determining authorship.
    
    Fix some whitespace in surrounding areas where I couldn't resist.

commit 27ce6d5531d9dac2bf6c1933df6ba6ff88c3d2ae
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Dec 7 17:13:04 2008 +0000

    o_..._read(): Remove redundant variable assignemnt and tidy whitespace.

commit ae116565a078a4f781ca5c32944d0b8193d1c3d2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Dec 7 16:59:02 2008 +0000

    libgeda: Consistent tab/spaces and sort order in Makefile.am

commit 31c00dd1779cfe122951c29b2632e2ad838d423a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Nov 24 14:59:55 2008 +0000

    libgeda: Don't prompt to run g{sch|sym}update on version 1 files
    
    These utilities were designed for upgrading files prior to the
    introduction of numbered versions, and running these utilities
    could be damaging to people's version 1 schematics.

commit 3f607ec3eefd9477d277747be089ac94e5afbd57
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Nov 24 01:35:02 2008 +0000

    Use g_get_home_dir() if we can't find the HOME environment variable.
    
    NB: We can't just use g_get_home_dir() on its own without changing
    semantics. g_get_home_dir() prefers the home directory specified
    in the passwd file, over $HOME, so we try looking for the HOME env.
    variable first.
    
    BUT: some places in gEDA do just call g_get_home_dir() directly.
    Ideally we should tidy these up to be consistent at some point.

commit 4e4ea9e5fae8436e6e830965fbb5f8b60f191d64
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Nov 23 14:24:20 2008 +0100

    doxygen: documentation for s_page, o_attrib and o_basic
    
    Added overview pictures for the page system the attribute object
    relation and some docs for the basic OBJECT.
    
    This commit aims to be an updated replacement for Stuarts
    great overview diagram: gEDA_Structures_20050108.pdf

commit d2ab7cfcc4dd21e06a3d2e9ac6d756b7968c0b7a
Author: Dan McMahill <dan@mcmahill.net>
Date:   Tue Nov 18 22:33:45 2008 -0500

    Use the SHELL variable to locate a shell for icon-theme-installer
    
    /bin/sh on some systems like SunOS (solaris) is too broken but in those
    cases SHELL is typically set to a functioning shell like /bin/ksh.  This
    repairs the install on "shell challenged" systems.

commit 626cf786f28b1c8f5f7727f30576947de1e30509
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Thu Nov 13 23:17:00 2008 +0100

    doxygen: libgeda text and and font documentation
    
    Added some more detailed description and pictures to the
    o_text_basic.c file.

commit 1d9a97190ebf91c11ae29bbab69c4871033f92bb
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Nov 9 18:23:04 2008 +0100

    libgeda: rewrote parts of o_text_create_string [#2247421]
    
    Fixed the text overbar issue if the negation line spans over
    more than one line:
      \_negation line
      with newline\_
    
    Rewrote the logic of the function, splitted it into a state
    machine part and an exectution part.
    
    It's much easier now to follow the meaning of the code, now.

commit 4cb7cfe82698bb20f0afc92bb354415143ec4a8c
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Nov 9 17:11:03 2008 +0100

    libgeda: fixed text read function for fileformat version 2
    
    Reading multiline text with file format 2 failed.
    This happend because the file format was checked for version 1.
    
    Let's check for a file format verion greater than 1 for the
    multiline text feature.
    
    The bug appears since the file format version bump in
    c2c94821ec6c9a83d0144adad7f6fa190f403af3

commit c2c94821ec6c9a83d0144adad7f6fa190f403af3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Nov 3 00:23:52 2008 +0000

    Bump fileformat verison to 2
    
    Since we've added path support, we need to bump the file-format
    version before any new release is made.

commit beae647a1e0217dc5802084a6e00522a59ad5a28
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Nov 2 20:20:32 2008 +0000

    libgeda: Emit each segment of paths on separate lines
    
    This allows greater redability of the path output, and simpler
    diffs when a single control point changes.
    
    Update the stock symbols which had paths emitted on a single line.
    Both read-back fine, but its best that we ship symbols in a state
    where a load / save cycle would not change the formatting.

commit b6f3379b8144b72492e3a9922939ba99ab4d4480
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Nov 2 19:47:37 2008 +0000

    libgeda: Attempt to fix f_nomalize_filename for win32 systems
    
    Patrick's re-written code for this made the assumption that the
    root portion of an absolute path in windows is 3 characters long,
    e.g. C:\. This is an invalid assumption to make.
    
    Unfortunatey, g_path_is_absolute() regards paths such as \foo as
    absolute, from which our code then assumed it could strip off the
    first 3 characters. There are also UNC paths such as \\server\share\
    where the root portion is an arbitrary length, which would not be
    handled correctly.
    
    g_path_skip_root() is aware of these details, and could be used to
    pick out the root portion of a path accurately, but it doesn't help
    in all cases. We could use it to determine that we need to add a
    current drive-letter to a "semi-absolute" path without one, however
    there is also the case with a path such as "C:foo", where we would
    need to insert the CWD from a particular drive.
    
    Path            ->  Root
    ----                ----
    \\srv\share\foo ->  \\serv\bar\  (fine, path is absolute)
    C:\foo          ->  C:\          (fine, path is absolute)
    C:foo           ->  C: (?)       (needs current directory from drive C)
    \foo            ->  \            (needs current working drive or UNC share)
    foo             ->               (needs current working drive and directory)
    
    Rather than trying to implement the logic to normalise paths on
    Windows, conditionally compile in usage of the Win32 API function
    GetFullPathName() when _WIN32 is defined. This implementation is
    slightly modified from the Windows portion of libiberty's lrealpath
    function. (GPL V2+).
    
    f_normalize_filename() now differs slightly in its sematics on Win32,
    as GetFullPathName() doesn't require or check that the file exists
    on disk. We could add this feature if it turns out to be required.

commit 35c1fad3cfab34053fcd850e2a0208db54558baf
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Nov 2 14:59:14 2008 +0100

    remove unused print functions from o_text_basic.c
    
    The following functions are obsolete:
      o_text_print_text_width,
      o_text_print_text_height
      o_text_print_text_height_full
    
    They are no longer used since the rework of the postscript code in the
    commit 1b6e818196f268a3ea1fca7135e413147a36ed6a by Mike Jarabek

commit a0bd1fa71f376b01212f655bfdcd9da4fb046868
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Nov 2 14:42:56 2008 +0100

    doxygen: documentation for libgeda o_text_basic.c

commit ad9d7ca705f1135a957d6e76244b164e94328ef1
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Nov 2 11:13:32 2008 +0100

    remove unused defines from o_text_basic.c ...
    
    and move some variables in front of all functions

commit 2f30918c3ae433204df9149e6b494b32e2db8559
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Tue Oct 28 22:20:36 2008 +0100

    doxygen: libgeda: fixed more warnings from the doxygen log
    
    added some documentation, too.

commit f470af7a28afe423ded6171ea3c8a2b31ff56f43
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Nov 1 20:47:41 2008 +0000

    Revert applying -Werror to compiler flags when linking with GCC (CODE!!)
    
    Depending on the gcc version, the original developers might not see the
    warning until the software gets into the end user's hands (and tries
    building it with an older/newer version of gcc).  Most warnings are
    not catastropic, but by using -Werror they are _all_ catastropic.
    
    If a developer wants to get rid of all warnings, they should either:
    
     1) run make -s and see/fix all the warnings, and/or
     2) modify the Makefile's themselves and add the -Werror flag temporarily.
    
    (Comments explaining rationale snipped out of an email from Ales).

commit 2c2bfc91b4cff115df6528d375042096d8046664
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Nov 1 16:09:26 2008 +0000

    Placeholders for fixing some warn-unused bugs in libgeda

commit 09eacbfb36e2b00758bce8d8add2f8f56cdcfdbb
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Nov 1 16:09:26 2008 +0000

    Use -Werror when building with gcc compilers.
    
    Hopefully this will help to ensure compiler
    warnings get noticed and fixed by developers.

commit f9f3eec945746a3f1ed6683fb861d21c4e8a2048
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Nov 1 15:47:01 2008 +0000

    libgeda: Remove obsolete bug comment from getcwd call.
    
    getcwd call was replaced with g_get_current_dir() call in
    commit cd70e88b8c7faa4beea8b13b846e92807a252e63

commit 01a544083a1161bfae9a976962823488e09b0ed7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Oct 27 00:19:19 2008 +0000

    libgeda: Split sPOINT definition into new struct_priv.h.
    
    sPOINT is unused outside libgeda itself, and is not a member of the
    public API, so hide its definition in a private header file. There are
    probably many other structure definitions which are also candidates
    for being moved into the newly-added struct_priv.h.

commit 3741fec77dde128ad41921926a1f5c26f8b32d9f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Oct 27 00:19:16 2008 +0000

    libgeda: Get rid of more unused color stuff.
    
    
    There are some completely unused externed declarations in libgeda
    relating to colors. Remove them.

commit 9cf8c8ac92c43eb50f2639c576722a287e73017f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Oct 26 20:07:12 2008 +0000

    Rename POINT to sPOINT (as used in m_basic.c), to avoid clash on win32.

commit f7b1d8d15b0e7679332f4ab3695676aba0f890fd
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Oct 26 18:06:10 2008 +0100

    doxygen: misc fixes of doxygen warnings

commit 8898cd06ea5e7faffe349fcf6cba4660f6557d18
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Oct 26 17:35:13 2008 +0100

    doxygen: documentation for libgeda o_complex_basic.c

commit bbb3342a28c451bc40b7fa5406e5698ee3433dcb
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Oct 26 15:12:38 2008 +0100

    libgeda: removed unused box macros in o_box_basic.c

commit d4c19f00f07050376c4ddac731d7569983a1817d
Author: Edward Hennessy <ehennes@sbcglobal.net>
Date:   Sun Oct 26 10:45:54 2008 +0000

    Changed postscript output functions to use generic hatch algorithms.
    
    Changed both box and circle postscript output functions to use the generic
    hatching algorithms.

commit 69cf1b86ca4c8e4011efdbdaab3b4f858980714b
Author: Edward Hennessy <ehennes@sbcglobal.net>
Date:   Sun Oct 26 10:45:28 2008 +0000

    Added functionality to hatch arbitrary polygons.
    
    Added functions to hatch arbitrary polygons.  This patch also includes functions
    with similar signatures to hatch boxes and circles.  This patch also includes
    geometric transformations, which is required by the hatching functions.

commit 49536f111d55100ea12574a445264074fee321e3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Oct 26 10:42:58 2008 +0000

    Add place-holders for printing paths with different line / fill styles
    
    Currently, paths are always drawn with a solid stroked outline, and
    only solid filling is implemented.

commit bcaf9f8dafcd25335b61b2ea80d071bde720bbd1
Author: Cesar Strauss <cestrauss@gmail.com>
Date:   Sun Oct 26 10:41:31 2008 +0000

    Use pkg-config support for Guile if present.
    
    Using pkg-config allows easier cross-compilation, since the build
    process can use a pkg-config binary native to the build machine with .pc
    files for the host machine.

commit 19765672b4293cae3cf7237a633f7741ce3e4883
Author: Cesar Strauss <cestrauss@gmail.com>
Date:   Sun Oct 26 10:41:30 2008 +0000

    libgeda: Conditionally include sys/wait.h depending on its presence.
    
    Some platforms (e.g. MinGW) do not have sys/wait.h. In those cases,
    define the WIFSIGNALED, WTERMSIG, WIFEXITED, WEXITSTATUS macros as
    constants, allowing us to use command backed symbol library sources,
    but with reduced error handling.

commit d322f0919b078b4ae553224477678008915dfb0c
Author: Cesar Strauss <cestrauss@gmail.com>
Date:   Sun Oct 26 10:41:27 2008 +0000

    Add configure test for platform's support of the getlogin() function.
    
    If the getlogin() function isn't present on the host platform (e.g.
    MinGW), don't emit the %%Author comment in libgeda's postscript output.

commit dbd70154fa54654121c200946c161839b28c349f
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Oct 25 22:10:57 2008 +0200

    doxygen: documentation for libgeda o_bus_basic.c ...
    
    and some file headers.

commit 15c0ec6270423dc3be610fff89c6e922e0e6975a
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Oct 25 21:11:56 2008 +0200

    libgeda: removed duplicate file format definition
    
    VERSION_20020825 was defined in o_basic, but it's allready defined in
    defines.h.

commit e8324b367c8bb23536e72593192b53723d22c3d4
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Oct 25 10:51:29 2008 +0200

    doxygen: documentation for libgeda o_pin_basic.c

commit 232b3fc9ddbfaa67bf2552c4cf6dc47a736fec3e
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Thu Oct 23 21:48:33 2008 +0200

    doxygen: documentation for libgeda o_net.c
    
    added function documentations to o_net.c
    small documentation fixes in s_tile.c

commit 4043c6326d7d56e01cd878a81d1e86c0fcb774b8
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Fri Oct 10 10:33:02 2008 +0200

    libgeda: apply GList usage of always-promote-attributes [#2072230]
    
    Changed all variables from char* to GList*.
    Changed initialisation of that variable.
    Use the GList in o_complex.c to check the list.

commit a4144872c28b3d4f8d192aa31f10e77eed811542
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Fri Oct 10 08:59:42 2008 +0200

    libgeda: always-promote-attributes: accept list and string [#2072230]
    
    The function g_rc_always_promote_attributes accepts list and strings
    now. The space separated attributes in a string are marked as
    deprecated. The user should use a scm list in future.

commit 2e83bf2b37e093578088eef616e15ee361e85199
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Oct 25 20:01:50 2008 +0100

    Remove legacy PNG color specifications.
    
    The configuration files provide a way of specifying colors for PNG
    output, but these are never used -- the PNG output just uses the same
    color map used for on-screen display. Remove the redundant
    specification and associated data structures completely.

commit ee89ff1fbf0364843861c0797bb4f0d3a425e5fe
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Oct 25 20:09:09 2008 +0100

    libgeda: Remove COLOR.image_color and two unused functions.
    
    The image_color member of the COLOR struct is never used. Remove it.
    Similarly, the s_color_get_name() and s_color_image_int() are unused
    and therefore removed by this patch.

commit bbe251bc64ed2db2976a26116d22a69fe678b9fd
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Oct 25 18:57:16 2008 +0100

    Get rid of s_color_get_index().
    
    This function is very clearly the Wrong Thing, and could potentially
    result in incorrect color indices ending up in schematic files if two
    or more color map entries have the same value.
    
    This patch removes the function entirely, and modifies the Scheme code
    which uses it to simply pass color indices around instead. Note that
    the results of s_color_get_index() were never actually *used* in the
    existing code.

commit 2a4fdb13021d0153e788fe3b2fc005f273dcdf4b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Oct 21 16:52:09 2008 +0100

    Validate calls to scm_c_eval_string(). [2105219]
    
    Because the reporter's version of Guile is broken, a lovely garbage
    collector segfault occurs if a null string is passed to
    scm_c_eval_string().
    
    For now, wrap all calls to scm_c_eval_string() with mutable arguments
    in g_scm_c_eval_string_protected(), and since the latter function
    seems to behave when passed a NULL string this bug should just go
    away.

commit 67b4f6d41a25e4847f0f611512c1c44887a18d49
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Oct 18 16:04:20 2008 +0200

    libgeda: memory leak fixes in s_clib.c and o_text_basic.c

commit cfd3bf75707dc8d031deb58d6edea3936384b027
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Oct 18 11:14:42 2008 +0200

    Makefile to convert svg images to png and pdf
    
    If inscape doesn't work, try convert.

commit e10b58d0b01553a1c600ef3a9532d1615171ff78
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Oct 18 10:44:46 2008 +0200

    doxygen documentation of st_tile and s_tile.c
    
    added svg images for s_conn and s_tile

commit 8731bb244e698f067ee18ad932240ba2b266a007
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Fri Oct 17 20:11:46 2008 +0200

    doxygen comments for the connection system st_conn and s_conn.c

commit 80ef18d6f79a12ba5a4d9269d0a77c0fa45217f4
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Tue Oct 14 19:36:03 2008 +0200

    doxygen: fixed UTF-8 encoding error
    
    generating libgeda pdf docs failed because of some non-UTF-8 characters.

commit f0a96de8b545dbd900e87db6abf54a0b6df830ab
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Oct 11 09:02:03 2008 +0200

    .gitignore: log files and source tagging files added
    
    Added the files of the "global" source tagging program
    and the logfiles of the gEDA programs to .gitignore.

commit 0a823197e4d511cc5fdfb38013808847781dd2f5
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Fri Oct 10 18:15:06 2008 +0200

    libgeda: changed object adding flag for embeded symbols [#1692626]
    
    Copying embeded symbols in gschem had ghost connections. When copying
    objects into the place buffer, the ADDING_SEL flag has to be set.

commit 92f154a486073fe0a0b224469d7e17a680985283
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Oct 8 23:12:05 2008 +0100

    Fix memory leak introduced in o_complex_get_promotable()
    
    Need to free the GList of attributes returned from
    o_complex_get_toplevel_attribs().

commit 9c79c0782ad64813a6a302f185299403853d1386
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Oct 8 22:05:13 2008 +0100

    Clean up o_complex_get_promotable and o_complex_is_eligible_attribute
    
    Use a helper function to get the list of toplevel attributes, then filter
    down.

commit d8c1f320b40451a1a83b7c442c8dc376d3d0f4e1
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Wed Oct 8 22:01:10 2008 +0100

    libgeda: function to get all unattached attributes
    
    New function o_complex_get_toplevel_attribs() that returns
    a GList of all text objects that are not attached to other objects
    like pins, nets.
    
    It will be use to get all attributes from a symbol.
    
    (Slightly modified due to merge conflict by Peter Clifton)

commit bd149a6b4797272b362ecf48a7044f0bfbf0f4bf
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Oct 8 21:57:47 2008 +0100

    Remove un-necessary "attribute" flag of OBJECT structure.
    
    Attributes can be detected just as well by looking at the
    OBJECT->attached_to pointer.

commit 47bc5e1dcd9ed7e47c600567afe1862fa8c2a63d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Oct 8 21:55:47 2008 +0100

    libgeda: o_save_objects(): Don't make un-needed casts of return values
    
    Casting just hides real bugs. The return values, and the type being
    assigned are the same - no need to cast.

commit 7188a0ad5b8ab28a5dd8c60141b5e5b36d1b0690
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Oct 8 21:30:05 2008 +0100

    When copying text in o_list_copy_to(), there is no need to set visibility.
    
    o_text_copy() copies the visibility of the object being copied, so the code
    following the call to o_text_copy() was a NOP:
    
      if (selected->attribute &&
          selected->visibility == INVISIBLE) {
        new_obj->visibility = INVISIBLE;
      }

commit 2b36577f5634ff99e919773c4e34aa2e39dbce51
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Sep 28 14:09:50 2008 -0400

    Added code to do something more sane when trying to print tabs
    
    Previously if a tab character was encountered in a text string, the
    postscript output code would output a Y with a dot on top.  This is
    clearly not a tab character.  The patch adds explict handling of the tab
    character to output 8 spaces instead.  Not perfect, but better behavior
    than before.

commit fa9ee5f3a5776cda1df419457864c0e51d8585b4
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 28 18:58:53 2008 +0100

    libgeda: Add scm_c_define for "OBJ_PATH" type for consistency. (CODE)
    
    This was missed when path support was introduced.

commit 900274f0d6b08031f7cfc18a332da6b1939a44d1
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 28 18:40:55 2008 +0100

    Fix non-literal format strings which cause compiler warnings.
    
    We should be careful to avoid passing arbitrary strings into functions
    which take printf style arguments. In that case, always use the construct
    ("%s", string) rather than passing string as the format argument.
    
    Some cases were fixed by using g_strdup instead of g_strdup_printf(),
    some simply replace printf() for puts().

commit 3f780a7f86e4c994c108146898419f4708e7fc48
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 28 18:40:54 2008 +0100

    libgeda: Fix object fill breakage caused when making o_..._new()
    
    Ensure we call o_set_line_options() and o_set_fill_options() on the new
    object directly. In a couple of places, "object_list" was used, but the
    code in commit #2550db8e1d981ccab55b7f2ae6e9932198a53b59 meant that the
    new object wasn't yet linked into that list.

commit d424abcf4e93934fd6268d9cb186f7415e0e83c2
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Sep 28 13:21:42 2008 -0400

    Removed unused OBJ_ROUTE and OBJ_THRU_HOLE object types

commit 635d287d3d0d41d431a88d7164c2de2b536c241a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 28 14:28:05 2008 +0100

    Fix path printing to obey the (output-color "enabled|disabled") setting
    
    Bug noted by Ales during testing. Thanks!

commit 53439f075b0be1edd2ae18e34f8a0f8f4d503e08
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 28 14:27:59 2008 +0100

    Rename "path" object identifier in the fileformat from "p" to "H"
    
    All other OBJECT type identifiers are upper case, and for consistency,
    now patHs are too.
    
    NB: No releases have been made since path support was added, so this
        change is still permissable.

commit b7f477143e79138c4d5d33e1dec1421b8419791c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 28 01:03:12 2008 +0100

    Make o_..._copy () return the new OBJECT without linking it into any list.
    
    Allows cleaner use of objects where we might want to insert the copied
    object into a GList rather than a self-linked list of OBJECTs.

commit 2550db8e1d981ccab55b7f2ae6e9932198a53b59
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 28 01:03:06 2008 +0100

    Make o_..._add() into o_..._new() which don't link the new OBJECT.
    
    Allows cleaner use of objects where we might want to insert the object
    into a GList rather than a self-linked list of OBJECTs.

commit 70e6c7c4e5c765a30137c0f93b4ec08fd5802030
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 28 01:02:59 2008 +0100

    Add critical warning for unknown object types in o_list_copy_to ()
    
    This makes the switch on object->type consistent with many of the other
    functions which use this construct.

commit 46b923ea26b1732c757267e77c514d15912a1514
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Sep 26 01:26:27 2008 +0100

    Fixup copy-paste comments in o_path_basic.c

commit 1fffc27a3b62cc32a70edcc1ee89ff458318c6bc
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Sep 26 00:57:52 2008 +0100

    Add support for arbitrary paths (filled and unfilled)
    
    The data-structures and on-disk format (which utiliseSVG style path
    strings) support stright line and bezier curve segments. Paths can be
    closed or open, and store line style and fill information in common with
    other geda objects.
    
    The path string parser is based on (slightly modified) code from librsvg
    version 2.22.2 (LGPL). Code from rsvg-path.c and rsvg-bpath-util.c
    (Copyright (C) 2000 Eazel, Inc.) was combined to form libgeda/src/s_path.c.
    These have been modified to use gEDA defined path data structures.
    
    The rendering implementation is based upon a small porion of the function
    rsvg_cairo_render_path (..) from rsvg-cairo-draw.c
    
    The parser still retains support the full richness of SVG path strings,
    although all instructions are subsequently normalised on to move, line, bezier
    and "close path" records. This support retained for convenience when entering
    artwork (which can be copied from an SVG editor). When saved, normalised paths
    are written out.
    
    The current rendering and shortest-distance computations are limited to
    straight line segments. Bezier segments, where encountered are treated
    as a straight line between their two endpoints.

commit 699f46d8a598c1cfa972f0ddf80e39d18c907ece
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Sep 26 00:57:37 2008 +0100

    Fix f_print_set_line_width() to emit valid postscript
    
    Previously this function emitted "%d mils setlinewidth\n". The "mils"
    portion seems to be left over from previous printing code, as "mils"
    isn't defined to be anything in prolog.ps, nor in the headers we emit.
    Our units are scaled to mils, so we can just emit "%d setlinewidth\n".

commit ec2e929742bb682be52d02818916b1f57c343e48
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 24 01:07:37 2008 +0100

    libgeda: Set complex_parent on all prim objects, not just their HEAD node
    
    Allows a primitive object inside a COMPLEX to be linked back to the
    COMPLEX without traversing to the HEAD node of the prim_objs list.

commit 45efb32383b15576cc98a95e1d93d44793e6f2e8
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 22 01:54:24 2008 +0100

    Move calls to attribute promotion code from inside o_complex_add()
    
    Previously o_complex_add() would perform attribute promotion or delete /
    hide eligible attributes depending on the "attribute_promotion" argument
    passed to o_complex_add(). Break these into separate operations:
    
    1. Get / add to OBJECT list, a single complex object with o_complex_add().
       This object has its prim_objs exactly as the symbol exists on disk.
    2. EITHER:
         Promote the eligible attribtues with o_complex_promote_attribs().
         (For GList based processing use o_complex_get_promotable(), attach
          the returned objects as attribs and place in the appropriate GList.)
       OR:
         Delete / hide eligible attributes with
         o_complex_remove_promotable_attribs()
    
    All behaviour relating to attribute promotion should be identical after
    this commit. If not, it is a bug should be reported. (This includes the
    insertion order of the OBJECT and it's attributes into the object list).

commit 806065ae428b105340fc6380918514bfe9746d86
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 17 19:34:14 2008 +0100

    libgeda: Remove unused function o_list_search()

commit 9993a0c13cc1b1aa5bb0c61a7355e89cd8f37fca
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 17 19:33:03 2008 +0100

    Remove un-necessary use of o_list_search()
    
    g_make_attrib_smob_list() and o_attrib_return_attribs() are passed the
    object they are operating on directly. There is no need to prove it can
    be found in the object list as well.

commit 52fe25b3614b70a3ab059ecd1f980ddde447d108
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 17 19:32:53 2008 +0100

    libgeda: Remove unused function o_list_delete()

commit 0090ef6ff6e9adfc8ab48d7d7aa110dbab1bed79
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 17 19:25:00 2008 +0100

    libgeda: Add convenience function o_attrib_attach_list()
    
    Calls o_attrib_attach() for each item in the passed GList

commit 68e398b00526dacc4ce1d610af192d4a2977db4d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 17 19:24:59 2008 +0100

    libgeda: Tidy / simplify o_glist_copy_all_to_glist()
    
    Since we no longer have to pass o_attrib_attach() a linked object list
    for it to find the attrib to attach, we don't have to link the objects
    up as we copy them, and can call o_glist_relink_objects() at the end.

commit 1745bca0359488bb6f8bd06d84f7ae952e48d665
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 17 19:24:59 2008 +0100

    Remove unused TOPLEVEL variable object_parent

commit 7baf5c629eb620e7db9b3fa5837cc07bdfe29f4f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Sep 11 21:36:35 2008 +0100

    libgeda: Tidy o_attrib_attach() harder
    
    Remove searching in parent_list for the attribute we're about to attach.
    This check isn't needed, we were passed the attribute as an argument.
    Let the caller be responsible for making sure it is linked into the
    appropriate object list.

commit 6b78047686ad919b90b8119250acde3f50bd3dc8
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Sep 11 21:33:09 2008 +0100

    libgeda: Remove assertion buffer != NULL in o_read().
    
    buffer should never _be_ NULL since we catch errors from
    g_file_get_contents(), but if somehow it was, the error is
    caught more gracefully in o_read_buffer().

commit 78224abe91c881df499244aff2691432f0e61b55
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Sep 11 21:31:30 2008 +0100

    Change f_open_flags to only return FALSE when the return GError is set.
    
    Callers assuming the GError is set when we return FALSE may crash
    if we return FALSE without setting it. Such a crash was noticed with
    development code where o_read() returned NULL without setting the GError.
    
    In the current code, o_read() should never return FALSE without setting
    the GError, and those cases where it could potentially in the future are
    g_return_val_if_fail() constructs used to detect programming errors.
    Programming errors are NOT meant to be reported via the GError mechanism.
    
    Call o_read() with a temporary GError, so we can still return FALSE from
    f_open_flags() if we encounter a problem and the user has passed
    err = NULL, disabling detailed error reporting.
    
    Don't test for NULL returns from o_read(), continue as if the page loaded
    was empty. If o_read() were to return a GList in the future, these errors
    become indistinguishable from an empty list. Tests returning NULL
    should log appropriate error messages via g_return_val_if_fail().
    
    Since we don't test it, don't assign the return value of o_read() to the
    page's object_tail. We already re-assign object_tail based on walking the
    linked list from its head anyway, so there is no need.

commit eb77a42fd47ae8dfd8218fadca1eb1ab6fd6b8e0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Sep 9 01:23:03 2008 +0100

    Fix error message given when file cannot be found.
    
    The codes used in the GError are not the same as those returned in errno.
    Construct our message using the string from the GError, rather than
    incorrectly using the GError's code with g_strerror.

commit 0726171f20b716c9de69d0ae843b338d78ac22ad
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 7 23:37:45 2008 +0100

    Add comment in s_page_delete() regarding toplevel->page_current
    
    The page being deleted still has to be made current because of
    assumptions made in s_delete_object()

commit 3f6f9afbb9eb6770520f785e094169d9f2b164dc
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 7 23:37:45 2008 +0100

    Re-add wanted portions of #95923f7de815ec58819eaf94ab9332d51a28fbb9
    
    Simplify prototype of s_tile_remove_object().
    
    Don't pass TOPLEVEL and PAGE arguments which aren't needed.

commit e350d47b39bd358f55949e787511eab54b0048be
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 7 23:37:45 2008 +0100

    Revert commit #95923f7de815ec58819eaf94ab9332d51a28fbb9
    
    This commit, "Simplify prototype of s_tile_remove_object()."
    removed code to make a page being deleted the current page.
    
    This change introduced a crash when closing gschem with multiple
    pages open. We shouldn't really need a page to be current to delete
    it's objects, but this is an underlying bug which should be fixed
    before this part of the patch is re-applied.

commit b4ed5e92d203c7449b7d33e924a41b093e1de930
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Aug 26 12:55:07 2008 +0100

    Remove duplicate definitions of do_logging.
    
    Also sets the default in libgeda to TRUE.

commit 24ca3cf1c066ae4b21d4834ae0d0210fb7a78f91
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Aug 25 02:02:30 2008 +0100

    libgeda: Tidy implementation of o_attrib_attach()
    
    Various cleanup and restructuring of the code. Should be identical
    in functionality, but with an extra g_critical warning instead of
    a silent return in the case attrib is not found in parent_list.
    
    Changed printf to the console for g_warning or g_critical messages.
    Some of these cases where we can't attach an attribute probably ought
    to be caught in gschem, in which case we could make these warnings a
    higher severity, such as g_critical.

commit e9a15f504113e61933fc8ffadc4941b976dabfbb
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Aug 25 01:03:55 2008 +0100

    libgeda: Make o_list_search() emit warnings if passed NULL pointers

commit 4c335d84aed6c972899de27c7d9d4249aec6761d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 22:27:29 2008 +0100

    libgeda: Tidy implementation of o_complex_is_eligible_attribute()
    
    Don't pass promote_invisible as an argument, it can be retrieved from
    the TOPLEVEL * passed instead. Since we have one caller, remove the
    public prototype and make the function static in o_complex_basic.c

commit a767fbe5a20ef936f98dc91deeb8349e37bb5b94
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 22:27:29 2008 +0100

    libgeda: Add convenience function o_glist_relink_objects()
    
    This function is used to walk a GList of OBJECTs and ensure that their
    next / prev pointers chain up to the same objects as in the GList.
    
    Make use of this function to make o_complex_add() more readable.

commit 50396f1fecc6f26fc9b8b62fd8e8abef88e4fdee
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 22:27:29 2008 +0100

    libgeda: Change "C" attribute promotion defaults to match shipped config

commit c95bd0a1f21be899510e07af28d0190fc09dc469
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 22:27:29 2008 +0100

    Remove unused #define DEFAULT_SERIES_NAME ... defines

commit 1ffd8a568339d23a3fe6c17fbb698b455e288805
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 20:41:21 2008 +0100

    libgeda: Fixup some comments about attribute promotion / hiding / removal

commit c8fffac5b00946ae8d709e7947c62893615e1263
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 20:12:08 2008 +0100

    Remove unused toplevel variable "series_name"

commit 04d0eb73a3324d1383ba14bc3ab2834972e041b2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 15:01:15 2008 +0100

    Restore comment about returned strings in o_attrib_get_name_value()
    
    Restores a useful comment about string ownership which was removed in
    commit 872287f23b4880b01babed777efe7976783feab2.

commit 17a95f57912f9ee5ac63044188054948e58332ca
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 14:57:04 2008 +0100

    Restore o_attrib_get_name_value() returning NULL strings on failure
    
    Revert removal of this behaviour in
    commit 872287f23b4880b01babed777efe7976783feab2.
    
    If passed a location to return strings, set the pointer to NULL
    before returning FALSE for an invalid attribute. It provides a
    potentially convenient means to catch the invalid attribute.

commit 7de36c95b7b8d465024b2767466ed246e5591dc2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 14:56:28 2008 +0100

    Revert allowing attributes with empty value in o_attrib_get_name_value()
    
    Another un-wanted change in 872287f23b4880b01babed777efe7976783feab2.
    Attributes are not legal if they have an empty ("") value part.

commit 70590a2312e2650f61a220980f9cf58bdad88987
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 24 14:47:05 2008 +0100

    Revert "name = value" space handling in o_attrib_get_name_value()
    
    commit 872287f23b4880b01babed777efe7976783feab2 re-wrote this function
    using UTF-8 string manipulation functions, and changed a test for " "
    characters either side of the attribute's "=" to use g_unichar_isspace().
    
    This g_unichar_isspace() also tests positive for tabs and newline
    characters, making previously legal attributes illegal after this commit.
    Revert usage of g_unichar_isspace() in favour of single byte tests.
    
    An important property of UTF8 encoding is that the 7-bit ASCII codes are
    not used within bytes of a multi-byte character. Given the start of a
    chacacter in UTF8, testing if the first byte compares to the 7-bit ASCII
    code we want is a sufficient test.

commit 71607a1b433a12192039cb4a0edf62b95c63440c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Aug 19 19:23:05 2008 +0100

    libgeda: Provide definition for do_logging.
    
    This allows libgeda to build on systems where shared libraries are not
    permitted to export symbols that are only resolved at link time.

commit b215d134d1271c6a1723e406f1a0b67be8f59bc6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Aug 17 02:36:35 2008 +0100

    libgeda: Clean PostScript strings.
    
    Tools like PSTricks override the PostScript 'show' command to do
    magic. The existing text code only called 'show' for one character at
    a time, making such tools very hard to use.
    
    This patch draws the overbars for each line, and then calls show for
    the line as a whole. It also lets overbars be applied over multiple
    lines of text.

commit 6e8e2e48d54fa3e121d540d86ba1aabf322d3d95
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Aug 17 02:36:35 2008 +0100

    libgeda: Unbreak text accessors.
    
    Tests added in 4ad986d333e12980f92325d1a66884bc5b5388fe should have
    had opposite logic.

commit 908ea935a7bb807927402eb8f5aa6c6a703e1792
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 17 01:34:11 2008 +0100

    Add libgeda/po/POTFILES.skip for intl/plural.c
    
    Fixes make distcheck.

commit 3ac41f06858892ececf94264b0f6b6cacfd168a5
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Aug 16 22:28:52 2008 +0100

    libgeda: Add bounds validity flag.
    
    Adds a flag to OBJECT marking whether they are valid (i.e. whether
    they've been updated since the last operation which modified it). Each
    of the per-type recalc functions is updated to set the flag, although
    nothing clears it yet (this will be in a later patch).
    
    When world_get_single_object_bounds() is called, it checks the flag,
    and if not set it calls the appropriate recalc function. If the flag
    is -still- not set, it fails.

commit 4ad986d333e12980f92325d1a66884bc5b5388fe
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Aug 16 22:28:52 2008 +0100

    libgeda: Use g_return_val_if_fail in text accessors.
    
    Almost as good, and improves readability.

commit 1fa51c0ccf1cf09ba184493e9b9aa7670f0752a3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Aug 16 19:59:57 2008 +0100

    o_complex_add: Remove un-needed save/restore of PAGE->object_tail (CODE!)
    
    (* FOR GOODNESS SAKE PETER, TRY TO COMMIT THE CODE WITH THE COMMIT!)
    
    toplevel->page_current->object_tail was saved and restored around
    symbol data loading and subsequent attribute promotion.
    
    The PAGE->object_tail is not altered during this block of code.
    This was experimentally verified during significant "real work"
    usage conducted with a g_assert() prior to the restore step.

commit 1a1460c65a9d4e0aee35e39fff0f083c95bd380d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Aug 16 19:18:24 2008 +0100

    Remove the ATTRIB struct as it only contained one variable.
    
    The OBJECT.attribs GList now points directly at the text objects which
    hold and display the attribute name and value.

commit df8478a9706694220919f3e3f6304a351a7eca68
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Aug 16 18:10:21 2008 +0100

    libgeda: Add static update_disp_string() function.
    
    Adds update_disp_string() to o_text_basic.c, to reduce code
    duplication between o_text_recreate() and o_text_add().

commit e44826c49a0db40b0c5e981431fd005b6e8d9048
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Aug 16 18:08:31 2008 +0100

    libgeda: Add field to TEXT for storing displayed string.
    
    Sometimes, the string to be displayed is different from the whole
    string contained by a TEXT object (for instance, when an attribute has
    either its name or value unshown). When using "real" fonts we don't
    want to fix this up each and every time the string is rendered, so
    it needs to be stashed somewhere.

commit 89c9af836536c13d97fde7d8b408e084f4b0e1d5
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Aug 16 18:04:22 2008 +0100

    libgeda: Add accessors to get/set a text object's string.
    
    In later commits, direct application accesses to the string in the
    TEXT structure will be removed.

commit efedc62995467645feb5800485783c677730cc40
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Aug 16 16:05:07 2008 +0100

    libgeda: Remove deprecated include <guile/gh.h> from o_picture.c (CODE!)

commit 288d9e67af83f03534398319d0e8ad16fa631fb0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Aug 16 15:48:00 2008 +0100

    Move gschem defines from libgeda into gschem/include/gschem_defines.h
    
    Whilst we're at it, remove some unused definitions.

commit 51843b80f3ab5b2d5f0a3cb52bb09b9001ae80ae
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Aug 16 15:48:00 2008 +0100

    libgeda: Delete unused #define's from libgeda/include/defines.h

commit 692a7d38eac4800e355623fe9cbbbf4ffb7c412d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Aug 16 15:47:59 2008 +0100

    libgeda: Remove gtk header includes from libgeda.h and libgeda_priv.h
    
    Libgeda doesn't use Gtk, only a small spattering of Gdk. Improve
    cleanliness and compilation time by removing those header includes.

commit 2e87904a34cd5ad58bc8a9511dd5915adf9df405
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Aug 16 15:47:58 2008 +0100

    libgeda: Rename gtk_[outline_]color variables gdk_... to their types
    
    Also added NULL initaliser for gdk_outline_color which was missing.

commit 11a2692a1ab8bcee14178286fd719d1ec39e6b9a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Aug 16 15:24:16 2008 +0100

    Draw func cleanup.
    
    Rather than having libgeda require other applications to provide the
    *_draw_func symbols, libgeda should provide them itself. Other
    applications should then override them as required near their call to
    libgeda_init().

commit 938cdb93795422fceb56ee3b88bffd1602f8cdf4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Aug 16 14:09:03 2008 +0100

    libgeda: Only update bounds in o_*_recalc()
    
    Some constructors & modification functions were updating directly
    rather than calling the appropriate recalc function to do it.

commit 62a38eefd8d3d9f84d8aeb78e2a1e365080d819c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Aug 15 22:48:11 2008 +0100

    Make some string arguments const.
    
    In a few places, strings are being passed into functions and no
    changes are made to them. Mark these arguments as const.

commit b47f576ff69476362941eaa7ad592e6d98ec233f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Aug 15 18:46:20 2008 +0100

    libgeda: Tidy up o_text_recreate() a bit.
    
    Mostly by adding a local variable with a pointer to the current
    OBJECT's TEXT struct.

commit 675738b3b7a0c37e3511297040c3abc59619dd0c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 14 23:27:12 2008 +0100

    libgeda: Hide o_*_recalc() from public API.
    
    Applications which wish to force recalculation of an OBJECT's bounds
    should use o_recalc_single_object().

commit 8f1a084c1e26cc08cdab08a1c44e7e802cbdbec8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 14 23:27:12 2008 +0100

    libgeda: Hide world_get_*_bounds() from public API.
    
    Applications which wish to retrieve an OBJECT's bounds should use
    world_get_single_object_bounds().

commit 3c4ccd08c2f08e37cd7b3894a073e2ae4787420a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 14 23:27:11 2008 +0100

    libgeda: Fix unused variable warning.
    
    Left over from 7fcd7db7e5b191a0d5024b129ee2c1cda64a82d7.

commit 4c15bbcf06a1840b410f33645d658322c5a38253
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 14 18:55:55 2008 +0100

    Don't crash on zero snap grid spacing [2026598]
    
    If snap grid spacing is set to zero, behave the same as if snap is
    disabled.

commit 7fcd7db7e5b191a0d5024b129ee2c1cda64a82d7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Aug 14 07:16:54 2008 +0100

    libgeda: More follow_symlinks() fixes.
    
    Make sure that follow_symlinks() plays nicely with files in the root
    directory, and also with relative paths to symlinks.

commit cfefe89a2b974b9aaa7ff13cb054565c11045b34
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Aug 13 19:42:06 2008 +0100

    libgeda: Make follow_symlinks() actually use its GError.

commit 16a171a9e37c2234d83fb3c6800370be2dd50ed0
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Aug 13 17:14:44 2008 +0100

    libgeda: Make sure GError properly freed in f_open_flags().
    
    There was a corner case where a GError used internally to
    f_open_flags() wasn't getting freed correctly.

commit 57815bd72e62999193641f301af9184c0d524cf6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Aug 13 23:30:35 2008 +0100

    Print command is a gschem setting.
    
    Move print command from TOPLEVEL to GSCHEM_TOPLEVEL, and move static
    defaults too.

commit 46eda8a55b9197f7a24d5b04ff94cedc1abc74fe
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Aug 13 23:06:03 2008 +0100

    Name i_vars_... functions consistently.
    
    Apps should use i_vars_blah(), libgeda uses i_vars_libgeda_blah().

commit 7522ef33777ed3f6cec8dbe8b16620657c3edcce
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Aug 13 19:53:05 2008 +0100

    libgeda: Declare static variables privately.
    
    Libgeda shouldn't expose its static variables via its installed
    headers.

commit 0db6ea2341ce7cc8c631df75c4d3c30390590b29
Author: Bernd Jendrissek <bernd.jendrissek@gmail.com>
Date:   Wed Aug 13 01:55:59 2008 +0100

    Split OBJECT allocation from its initialization.
    
    Split memory allocation for OBJECTs out of s_basic_init_object(). Add a
    new helper function s_basic_new_object() which allocates memory for the
    OBJECT structure, then calls s_basic_init_object().
    
    These changes make it possible to embed an OBJECT structure within
    another struct, or to initialise an OBJECT in static memory.
    
    (Patch modified by Peter Clifton)

commit 6cf89af1dc94790e8671a2c5d760a47a31d3a6eb
Author: Bernd Jendrissek <bernd.jendrissek@gmail.com>
Date:   Wed Aug 13 01:42:06 2008 +0100

    o_*_translate_world(): Rename x1 and y1 parameters to dx and dy
    
    Makes the purpose of these variables more obvious.

commit 02da9f9d11cc04eae292a868172033e3eb6c8147
Author: Bernd Jendrissek <bernd.jendrissek@gmail.com>
Date:   Wed Aug 13 01:40:56 2008 +0100

    o_{rotate,mirror}_world(): Make error message mention the right function.

commit deca0be214ca709ffd2cedeb75919ffdb1dd232a
Author: Bernd Jendrissek <bernd.jendrissek@gmail.com>
Date:   Wed Aug 13 01:40:55 2008 +0100

    s_delete(): Delete code with no effect.
    
    If a pointer is already NULL, there's no point setting it to NULL.

commit 17c64b764cb42afc8d5b80a66361029655dd644b
Author: Bernd Jendrissek <bernd.jendrissek@gmail.com>
Date:   Tue Aug 12 23:36:35 2008 +0100

    s_basic_init_object(): Set OBJECT type according to new parameter.

commit ff25b0c07dcd59e23721cbf9d09ec2a9f41a935a
Author: Bernd Jendrissek <bernd.jendrissek@gmail.com>
Date:   Tue Aug 12 23:36:35 2008 +0100

    s_basic_init_object(): Constify argument.

commit 123f5742e323b35169479f0884a66b75104a53ff
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Aug 12 23:14:50 2008 +0100

    libgeda: Remove empty 'scripts' directory.
    
    libgeda's 'scripts' directory contains nothing (apart from a
    Makefile), so get rid of it.

commit 4ef611b6e1cc6eb47538148ce1d196d495313969
Author: Edward Hennessy <ehennes@sbcglobal.net>
Date:   Fri Jul 18 20:24:46 2008 -0700

    Altered point selection mechanism to use distance instead of just a bounding box.
    
    This patch improves the mechanism used to select objects when using a single
    point.  In addition to using the bounding box, this patch calculates the
    distance between the selection point and the object itself.  This calculated
    distance provides a more accurate means to determine the actual object the user
    selected.
    
    Signed-off-by: Peter TB Brett <peter@peter-b.co.uk>

commit 5d15eddd3e197b2cbc0bc00f9a4c02bc719aa014
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jul 29 03:42:48 2008 +0100

    Clarify temporary assigment of TOPLEVEL->complex_parent in o_complex_add()
    
    Move the save/restore of the TOPLEVEL->complex_parent variable in
    o_complex_add to be closely placed around the call to o_read_buffer,
    the function affected by this assignemnt. In the previous locations,
    the scope of influence of adjusting this variable was not clear.

commit c2b96c33851322c236d4582d6bc5d31a3485a7c1
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jul 29 03:29:24 2008 +0100

    Remove some redundant instances where TOPLEVEL->object_parent was used.

commit a90588ec6566f944756800f38f74a02f867dca87
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jul 29 03:18:39 2008 +0100

    Remove the TOPLEVEL variable internal_symbol_name which is now redundant.
    
    Also removes functions which set and free'd this variable:
      o_complex_set_filename()
      o_complex_free_filename().

commit d1ff81f8d8a1d18781f8cb7c4476417947a61cec
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jul 29 03:18:38 2008 +0100

    Remove the TOPLEVEL variable current_attribute which is now redundant.
    
    Also removes functions which set and free'd this variable:
      o_attrib_set_string()
      o_attrib_free_current().

commit e931091e28f90e7bd0f755ee30665cc5b7461b74
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jul 29 03:00:59 2008 +0100

    gschem: Combine code for operations which handle placement of OBJECTs.
    
    Replaces duplicated code related to component / text placement, copying /
    multi-copying objects and pasting from buffers with a common set of
    routines in the new file, gschem/src/o_place.c
    
    This refactoring lays the foundation to allow rotatation / mirroring whilst
    performing any kind of place action, without extensive duplicate code.
    
    All of the above operations now use a new PAGE variable, "place_list",
    rather than previous specialised variants complex_place_list, and
    attrib_place_list. Paste-buffer contents are copied into the place list,
    rather than placing directly from the paste-buffer, ensuring that any
    rotation / mirroring of the place-buffer does not change the paste-buffer.
    
    Helper functions, o_text_prepare_place() and o_complex_prepare_place() are
    added to load the place list with appropriate text, or a symbol. These are
    passed as arguments to the respective functions, avoiding the use of state
    stored in toplevel->current_attribute and toplevel->internal_symbol_name.

commit cc5ea879b0ccfc7815b43b30ddfae13941aff4eb
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jul 29 01:20:04 2008 +0100

    Add OBJECT flag "dont_redraw", to skip drawing individual objects.
    
    This flag is to be useful when handling move operations which hide
    rubberbanded objects on the page whilst a temporary copy is manipulated
    on screen.

commit 3e08939b12e6298029a9387299dcdf7a9d6db6a6
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Jul 28 00:40:11 2008 +0100

    o_glist_copy_all_to_glist(): Only deselect / reselect selected objects
    
    Objects are deselected prior to being copied, then re-selected. Check
    if the object being copied is selected before we try this, as we may
    want to copy unselected objects.

commit 95923f7de815ec58819eaf94ab9332d51a28fbb9
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 25 17:52:39 2008 +0200

    Simplify prototype of s_tile_remove_object().

commit ac56af89f55594a3739c16692bec4e5974848dc1
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 25 17:52:38 2008 +0200

    Replace TILE_LOC structure with list of references to TILEs.
    
    Removed structure TILE_LOC: now objects have a list of references to
    TILE structures.

commit 1cc266bbe45846030205aa8931cea40fe2dbdf3b
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 25 17:52:37 2008 +0200

    Rename s_tile_add_object() to s_tile_add_line_object() and simplify prototype.

commit 7e4d443eea54c8fc19833aa67ae64ed1ffba0e80
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 25 17:52:36 2008 +0200

    Rename s_tile_remove_object_all() to s_tile_remove_object().

commit e2278f9ed3c49d6226e3e721e55a940cbaed53f3
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 25 17:52:35 2008 +0200

    Remove unused function s_tile_remove_object_all_crude().

commit 83de2270e9d0f159975e833e1fec213f952c7315
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 25 17:52:25 2008 +0200

    Remove o_complex_delete().
    
    Removed function as s_delete() does the same thing.

commit b86ffc45f699781c220153e2390a54f8b823a930
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:16 2008 +0200

    Refactor hierarchy function searching for parent page.
    
    Renamed s_hierarchy_up() to s_hierarchy_find_up_page() for consistency
    and modified it to return a pointer on the page found (as other
    hierarchy find functions) instead of changing the current
    page. Added description. And finally adapted gschem for this
    refactoring.

commit 06dc1e65b688f88695e47dd38cd9022eb67bbb7c
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:15 2008 +0200

    Simplify prototype of functions for searching pages in hierarchy.
    
    Removed 3rd parameter to s_hierarchy_find_[next|prev]_page(): now
    explicitly search for sibling page of page in 2nd parameter. Also
    added description for functions.

commit 6b15947087caebaa4c85805799362c169e09adba
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:14 2008 +0200

    Rename s_hierarchy_find_page() to s_page_search_by_page_id().
    
    Moved s_hierarchy_find_page() to libgeda s_page.c and renamed to
    s_page_search_by_page_id(). Also added description.

commit d5b7c5788b0498155b583c40caf7615347e88641
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:13 2008 +0200

    Remove unused function s_hierarchy_down_schematic_multiple() from libgeda.

commit 57a4fd272e10a68e05051a9ab9309e252e2103f7
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:12 2008 +0200

    Purge AC_CHECK_FUNCS() in configure.ac in each package of unused functions.

commit 8626a1ed43da05d1b7499c4816eb372f614c0cc5
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:11 2008 +0200

    Remove unused function vsnprintf() from libgeda.

commit c50ba14cea1d60e21d587164612b1866d8e58bba
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:10 2008 +0200

    Replace case conversion functions with GLib functions.
    
    Now use GLib case conversion functions, with the added benefit of UTF8
    support, instead of libgeda string_tolower() and
    string_toupper(). Consequently these two functions have been removed.

commit a083568359e721485ddeec74fc7a870dc51a9b58
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:09 2008 +0200

    Remove unused color stuff from libgeda.
    
    Remove unused function colornametovalue(), and unused color related
    structure and macro from libgeda s_basic.c.

commit 099ece1d2669a2455501b5ee706df3016653da8c
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:07 2008 +0200

    Cleanup verification of attribute string in libgeda.
    
    Modified the test on attribute string in libgeda
    o_complex_is_eligible_attribute() to use o_attrib_get_name_value().

commit 872287f23b4880b01babed777efe7976783feab2
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:05 2008 +0200

    Cleanup of libgeda o_attrib_get_name_value().
    
    Rewrote o_attrib_get_name_value(): it now has support for UTF-8
    attribute strings ; plus it can return only the name or the value or
    both name and value.
    
    Finally adapted code wherever it can benefits this new feature.

commit 9014bf8d0a429713b642912cddcc29e1c39b9068
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:04 2008 +0200

    Remove unused function u_basic_count_char().

commit 25a40b882113ba6b710b58ad85e7cf7804d3a4ac
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:02 2008 +0200

    Remove unused functions u_basic_strip_trailing() and u_basic_has_trailing().

commit a76cf5cdda91c7070f4765107d3f8be89bbd05b6
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:01 2008 +0200

    Remove unnecessary strippings of trailing directory separator.
    
    These strippings is no more necessary as GLib functions for building
    filenames (in particular g_build_filename()) takes care of any
    trailing directory separator for us.

commit cd70e88b8c7faa4beea8b13b846e92807a252e63
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:03:00 2008 +0200

    Replace getcwd() with g_get_current_dir().

commit 90b0ece453efc80490c6c277386f4f5f7bfdc4af
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:02:59 2008 +0200

    Simplify build of filenames with g_build_filename() (!).
    
    Modified code where possible to use preferably g_build_filename()
    instead of g_build_path(), or g_strconcat() and friends.

commit 19d6d561eb5aea8e580d6ecf72d20bdfc3180ace
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:02:58 2008 +0200

    Remove unnecessary check following memory allocation with GLib g_malloc().
    
    There is no need to check g_malloc() returned value as when the
    function fails to allocate memory, it terminates the application.

commit a3513b7e6dc7bf6c36d95d4da86082beeb79831d
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:02:57 2008 +0200

    Replace standard string manipulations with GLib string utility functions.

commit da1d2e7b304f9d832bdee9c8dfb9fe4604e19cc9
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:02:56 2008 +0200

    Remove tests for NULL prior to freeing with g_free().
    
    Testing if pointer on memory to free is not NULL is unnecessary
    since g_free() does the test itself.

commit ac84ca9171138a0774b4314fd8d8ee148d109474
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:02:55 2008 +0200

    Rewrite f_normalize_filename().
    
    Modifies f_normalize_filename() to avoid using realpath() and
    resolving symlinks. It is derived from the GNU Lib C implementation of
    realpath() with glib GString and glib portable file-related functions.

commit 2800c05634d2c66f586adc1dd0430b0d069686de
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:02:54 2008 +0200

    Rewrite s_expand_env_variables() with glib GString.

commit c1b6775eb651c3e576eb50d9d676cf179e0b2b21
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Fri Jul 11 16:02:53 2008 +0200

    Rename expand_env_variables() to s_expand_env_variables().

commit 8479d01b6a4a819ae105659a9b9f1e6ab2d85136
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jul 6 22:03:02 2008 -0400

    Updated all ChangeLogs by running ./update-changelogs.sh 1.0-20070526..master

commit 8773525a45c1e33a2f020ac511f628e04ff373b9
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jul 6 22:01:37 2008 -0400

    Ran make update-po in all po directories (in prep for a new release)

commit 8d5bf82866455f9a03ec311ba4b64f3ec48f7f4c
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jul 6 21:52:34 2008 -0400

    Added file which was being "recommended" by running make distdir

commit 97c1b01e1c95d2f8a334d916ffc60d35797782c2
Author: Ales Hvezda <ahvezda@-e false.(none)>
Date:   Sun Jul 6 09:34:01 2008 -0400

    Fixed up all icon-theme-installer files to work with non-bash
    
    Grabbed the latest icon-theme-installer files from the pcb repository
    since they have been fully patched to work with non-bash shells.  On
    my ubuntu system, /bin/sh is linked to dash which prevented me from
    running the previous version of icon-theme-installer.  This commit
    is related to a7e7a28613abe4705ec01011d0f4308ff024251b

commit 7ae9572f269c8b973bb4a38014e28dbc10cdcb32
Author: Ales Hvezda <ahvezda@-e false.(none)>
Date:   Sun Jul 6 08:38:24 2008 -0400

    Bumped versions to 1.5.0/20080706/34:0:0 for the next development release

commit e5d57e6811046c1899dd32d5c705accfe1857574
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Wed Jul 2 15:32:27 2008 +0200

    Protects menu items from garbage collector. [#2001303]
    
    Fix for Bug #2001303, "segfault with local gschemrc". Protects the
    scheme menu_items in structure st_menu for the time the C code use
    them.

commit 2c5dfb6823faeb76004c8b6afdcb2ed3cdf483c5
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Wed Jul 2 15:32:17 2008 +0200

    Add support for mirror flag when adding embedded components. [#1977778]
    
    Fix for Bug #197778, "gschem: embed-unembed breaks with mirrored
    symbols". Adds a missing 'mirror' parameter to
    o_complex_add_embedded(). The mirror flag read from a schematic file
    for an embedded component was silently discarded.

commit eb0846161bf916d68280bddf2d7dd244e0fe6002
Author: Patrick Bernaud <b-patrick@wanadoo.fr>
Date:   Wed Jul 2 15:32:07 2008 +0200

    Improve the search for already opened page in s_hierarchy_down_schematic_single(). [#1909932]
    
    Fix for Bug #1909932, "gschem: page manager confused about hierarchy".
    
    When looking for a sub sheet in s_hierarchy_down_schematic_single(),
    the filename may not have been suitable for comparison to opened page
    filenames. It then failed to identify a sub sheet as already opened
    and opened it again. Adds normalization to filename prior to
    comparison.

commit a7e7a28613abe4705ec01011d0f4308ff024251b
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Sun Jun 29 19:00:10 2008 +0200

    Changed shell from bash to sh in icon-theme-installer
    
    Changed shell from bash to sh in icon-theme-installer.
    This commit is still not tested in non-bash systems.
    
    Applied partially geda patch #1978537 (only bash to sh
    change, not removal of $INSTALL_DATA_EXEC check) from
    anonymous contributor and Dan McMahill's test case
    change in line 103 from:
    
    http://pcb.cvs.sourceforge.net/pcb/pcb/icon-theme-installer?r1=1.1&r2=1.2

commit 0a770cff6b42dd3ba80215482ee7c4f230b3cf0f
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Jun 14 19:41:03 2008 +0200

    libgeda: fixed EOL handling for mixed windows/linux usage
    
    A file that is created on windows with windows EOL characters
    may not be read into gschem without errors on Linux. This fix
    strips off leading and trailing CR characters when reading a
    single line from the textbuffer.
    Bug reported by Thomas Arndt [#1993952]
    The bug was introduced with commit 40833189228f8edeff

commit 199743d5ae8e89fa4065e544d998ebaeab1c1cd6
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Jun 15 09:51:17 2008 +0200

    libgeda: fix memory leak introduced with the last commit.
    
    The function g_path_get_basename returns a newly allocated string.
    This string has to be freed after usage. Thanks to Peter C. for the
    hint.

commit eaa61c6968d3e17d0525cc476bf4c6d54ebd494d
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Jun 14 11:04:52 2008 +0200

    libgeda: mingw fix for basename
    
    Replace the basename() function by the glib function g_path_get_basename().
    Patch written by Thomas Arndt

commit 3db78903fb7bd41a0f2d8b4022c2afa18055a54a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat May 10 01:49:22 2008 +0100

    Calculate bounds of new object when copying an embedded complex.
    
    Adds call to o_complex_recalc() in o_complex_copy_embedded().

commit ffa5323869c37b16634f03f41896fb9df6e5f7ad
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Apr 20 22:30:25 2008 +0200

    libgeda: removed fix_x, fix_y functions
    
    This functions are no longer uses after switching to world coords.

commit b4aade65f2488b4a7fd74f34a90225c0da7ec9f3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Apr 18 14:11:07 2008 +0100

    libgeda: Remove unused function i_vars_setnames

commit af0d9f2e8825f7d23c691deec0e70f1eaaac0e38
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Wed Mar 5 05:27:41 2008 -0500

    Updated version to 1.5.0 to mark the start of the next development cycle

commit ffd2298ca90e9e8616a2804c5708cb3d2ccb0a83
Merge: b62e017 1a49d46
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Mar 1 09:43:53 2008 +0100

    Merge branch 'magneticnet'

commit d68fe1307f4f98aa51844bbf378d5d0a9467b8b2
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sun Feb 24 10:24:13 2008 +0100

    libgeda: bugfix for bounding box calculation of mirrored arcs
    
    A mirrored arc has a negative sweep angle (called end_angle).
    This wasn't properly catched in the bounding box calculation.
    Bug reported by Kai-Martin Knaak on geda-user mailing list.

commit 855f29d44df73caef03ee49bd58f19897f31b69d
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Fri Feb 22 21:46:21 2008 +0100

    use tiles to find connections for magnetic net mode
    
    This commit changes the magnetic net code to use the tiles.  This
    reduces the load when checking all the possible connections for every
    mouse movement. The patch adds a library function to get object lists
    which may contain objects in the region of the magnetic reach. In
    o_net.c the object iterator code has been changed to use the new library
    function.

commit 4d441af32c63bb847ba62b4fb502fd1ed2d39c7c
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Fri Feb 8 20:47:52 2008 +0100

    Fix missing %s in two strings.
    
    Two strings missed %s. Thanks to Peter Clifton for reporting.

commit 5757ce41ac1846814b0e96885942f2e011f2d3b7
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Feb 1 13:06:15 2008 +0000

    Rename translations to drop un-needed ISO-3166 country codes.
    
    From Debian bug #336796:
    
    Using a country part in a translation file is a discouraged practice
    except in very few cases (such as pt_BR).
    
    Using a fr_FR.po file instead of a fr.po file prevents users of fr_CA,
    fr_BE, fr_LU, fr_CH and all other existing and future locales for
    French to benefit from the French translation of the program.
    
    In general PO files should only be named after the
    ISO_639 code of the given language and should not use a country part
    with a ISO-3166 code. The only accepted expcetions to this are:
    
    -pt_BR for Brazilian Portuguese and pt alone for "standard Portuguese"
    -zh_CN for "Simplified Chinese" use in mailand China and Singapore
    -zh_TW for "Traditional Chinese" used in Taiwan

commit 5768fbf65867a586c5f5eb2ac0dba573d1c9912e
Author: Dan McMahill <dan@mcmahill.net>
Date:   Fri Feb 1 00:25:52 2008 +0000

    Add missing libgen.h
    
    Add a check for libgen.h and if found, include it.  This provides
    the basename() prototype.

commit d848ac7f515187a536f10f9e246c1234f648d723
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Wed Jan 30 22:25:46 2008 +0100

    Applied Dutch libgeda translation patches from the mailing list

commit 22396b286d50c454287ff94a3c3de414b3f9a08a
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Jan 26 19:27:15 2008 +0100

    update the pinnumbers if a slot attribute is deleted
    
    Update the slots whenever a text line that is attached to an object
    gets deleted. The update checks the slotting even if there's no slot
    attribut. This catches the case when the user deletes a slot attribute
    and the current displayed pinnumbers are not the ones defined in the
    symbol. This commit fixes [#1880221]

commit b202ee510fb90cedd038ce5ec41cc6de453dbeea
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jan 27 11:47:13 2008 -0500

    Updated ChangeLogs for the 1.4.0 release

commit 5e4ee69035885d76fba09aa453789be68481c69a
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jan 27 11:46:06 2008 -0500

    Ran make update-po one more time before the 1.4.0 release

commit 464f7c5fadc97f0ca5cd80ed343ec9f427938265
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Sun Jan 27 10:54:27 2008 +0100

    Applied Dutch libgeda translation patches from the mailing list

commit 3d43c5d642ebe12a69380e8accf5533d338ee5e5
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Jan 26 20:07:45 2008 -0500

    Bumped versions to 1.4.0/20080127/33:0:0 for the next stable release

commit 9a4bbc16c5c0e408aabbc69c1c1cc10cb4b7675f
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Jan 26 19:48:29 2008 -0500

    Manually ran make update-po in all po dirs in prep for the 1.4.0 release

commit 0f8f2cb351e6f594b8a00f2cd447562574f1c0d2
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Jan 12 18:37:27 2008 +0100

    forward status messages from the library command to the log
    
    The list and get command read data from stdout, thus the stderr can
    be used to catch the status messages from the library command.

commit 082c6d6778d218aabd6df20a955d211335c2f43c
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Sat Jan 12 18:08:53 2008 +0100

    fixed error handling bug in run_source_command() [#1869941]
    
    WIFEXITED returns 1 if the command has exited normaly. Well
    an error is also a normal exit. A kill would be not be normal.
    Thus we need to check WIFEXITED and WEXITSTATUS.

commit ec4b6287bbb4f709a7d3258a7474ec716933ca4b
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Fri Jan 11 01:23:39 2008 -0500

    Manually ran make update-po in all po directories in prep for the 1.3.1 release

commit d2047bc2a06e6534ff32464d36f8a95aec11b9d7
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Fri Jan 11 01:11:12 2008 -0500

    Updated all ChangeLogs for this release (1.3.1)

commit 8502202774e3fd9abe63b24cc88ab1ec8491a3b9
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Fri Jan 11 01:09:02 2008 -0500

    Updated the revision of libgeda for the 1.3.1 release.
    
    1.3.1 libgeda should be completely backwards compatible with 1.3.0 libgeda.

commit 6ac1f25c4a2d88c1e5825aac74265cf442680954
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jan 11 04:44:32 2008 +0000

    Fix invalid memory access with auto-save filename being used after free.
    
    Use the "full_filename" variable in f_open_flags() as a base for the
    auto-save filename. Previous code uses the passed in "filename" argument,
    however in some cases this argument points to memory which is free'd in
    f_open_flags() after determining "full_filename".

commit 24c736f9502e1cbeac78c69310e9a900e334900a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Jan 10 01:52:41 2008 +0000

    Remove unused code to shift pinseq attributes when changing slots.
    
    Code was commented as it broke pinnumber= updating, and is no longer
    required now spice-sdb slot handling is fixed.

commit 588809da98f738e6c64c2ec064f0dc2fb12dbd51
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Mon Jan 7 20:21:31 2008 +0100

    Updated libgeda's spanish (Spain) translation.

commit 1dc4ba8a72a5d6f596fd48088d42e755164e25b5
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Mon Jan 7 18:45:53 2008 +0100

    updated german translation of libgeda

commit d6e64f7b3b2ed73fda88462e3bfc5acebba3ac2b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 6 21:13:19 2008 +0000

    libgeda: Mark more translatable strings with _()

commit 1556ae85b049e89d77507a636dc42c726bcd328d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 6 21:00:40 2008 +0000

    Set encoding for translations in libgeda to UTF-8

commit 048bd6f8e2fc1c5f5b01ff3f1cad3a7c9bf43f3e
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Jan 6 20:36:52 2008 +0000

    Allow configuration of the scroll wheel's action to match GTK app. norms
    
    Adds configuration parameter (scroll-wheel ...) which takes either
    "classic" or "gtk" as a string argument. "classic" remains the default.
    
    Tidies x_event_scroll() to deal with the various options in a neater way.

commit 0a6a005daec93dff34c41a53815d9ff10c1be20b
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jan 6 02:04:26 2008 -0500

    Oops, added forgotten and important file to EXTRA_DIST

commit 624c7a0c95509cda1a118503077979421c93bb0f
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Jan 5 21:21:06 2008 -0500

    Added libgeda*.pot files to ignore this machine generated file

commit e800618afe70c93c3739d725172dfdba95386232
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Jan 5 21:14:51 2008 -0500

    Manually ran make update-po in all directories

commit b2380c0f70344117be7045a5fc1483698fdf4358
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Jan 5 20:57:51 2008 -0500

    Bumped versions to 1.3.1/20080110/32:0:0 for the next development snapshot
    
    Note, libgeda's so did not change at this time.

commit 6b36311d3be00d9b4901a876f5f4da4f892e3bce
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jan 5 22:10:31 2008 +0000

    Remove extraneous printf where they duplicate log messages.

commit 9aca06cdb70c3fc9595beb82713eedd90a7e1d16
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Fri Jan 4 12:57:58 2008 -0500

    Added checks at the autogen.sh stage for missing m4 macros
    
    This commit adds a autoconf friendly m4 macro to check for undefined
    macros (originally written by Peter Brett).  This macro is used in
    configure.ac.in to check for a few troublesome macros (guile, nls,
    gettext, intltool) that are usually missing because a required -dev
    package is not installed/missing.

commit 72581a91da08c9d69593c24756144fc18940992e
Author: Werner Hoch <werner.ho@gmx.de>
Date:   Thu Jan 3 13:05:57 2008 +0100

    libgeda: initial german translation de_DE
    
    translated all message strings
    added de_DE to the LINGUAS file

commit 1697a90e5465dde296199745991e76df8f68c3be
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Jan 2 15:41:07 2008 +0000

    Changed --with-xdgdir to --with-xdgdatadir for consistency

commit c4c409c1cf46a55b74017872d15b6f48d51ce521
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Jan 2 15:35:02 2008 +0000

    Change --with-kdedir to --with-kdedatadir
    
    This allows greater similarity with the --with-xdgdir paths, by moving the
    "/share" portion of the KDE mime install paths out of the Makefile.am and
    into the "kdedatadir" expansion.

commit ee47fc5fa6d418a54af62a55a78e508d95a0f913
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Jan 2 02:46:14 2008 +0000

    Change usage of ${datarootdir} to ${datadir} for autoconf compatibility.

commit d81a0717852c1b6da5b99f6cf0dc93f6ddcdc87f
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Tue Jan 1 14:37:12 2008 -0500

    Added configure.ac into libgeda's .gitignore file

commit 1a1cbb29f5d1ff118fb91235463e57a48ba81054
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Tue Jan 1 14:29:27 2008 -0500

    Changed libgeda's configure mechanism to be similar to gschem's configure.ac.in
    
    In order to allow a wide range of gettext versions to be used, gschem has
    a configure hack that dynamically figures out the gettext version and creates
    configure.ac from configure.ac.in.  This hack is now in libgeda with the
    additional improvement that if configure.ac.in changes, configure.ac and
    configure are automatically recreated.  Added a special mode to autogen.sh
    (recreate_configure_only) to support this improvement.

commit 5f3cde4f20975275cb38b52cd3155fda41201209
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 1 17:24:18 2008 +0000

    Fix configure checks for Guile (again).
    
    The previous patch missed changing the gschem configure script
    (generated from configure.ac.in), and got the logic wrong anyway.

commit b9ffb4675fbca6e92a4f713c28486e74dcbbeef4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Jan 1 15:42:13 2008 +0000

    Fix configure checks for Guile.
    
    Quote variables to protect them and alter version test logic so that
    it doesn't think version 2.1 is older than 1.8.

commit 2f7e3ae60480743a8268d392272d05bd77dd75c8
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Mon Dec 31 20:43:08 2007 -0500

    Updated all ChangeLogs for the past development release (1.3.0)
    
    This step was supposed to happen before the 1.3.0 tarballs were released.
    These changes will be picked up in a subsequent release.

commit ac4f29f0711a3e612fa5d94d1e3d771852bf42bb
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 30 23:54:25 2007 +0000

    libgeda: Unbreak g_scm_c_eval_string_protected()
    
    Fix bad macro definition introduced in commit
    8575431a17efb7a753649ae16087dc8f203981ce by turning it into a proper
    function.

commit 0525e60123ab47ff62c9c30f4a3159ca75bbb456
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 30 20:15:19 2007 +0000

    Add TAGS to some .gitignore files.

commit 38c3ac02492a441782e030162cfacf745c1521ad
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Sat Dec 29 16:05:29 2007 +0100

    Updated Dutch translation for libgeda.
    
    Minor changes on four translations.
    Changed the header of the file for a meaningfull
    description and copyright notice.

commit ba474af87840a0d49e04a00de96b7df2944c09bd
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Dec 29 09:57:43 2007 -0500

    Bumped versions to 1.3.0/20071229/32:0:0 for the next development snapshot

commit 5852e531717ba947b7acca39e50f71edd5921f06
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Dec 29 09:49:46 2007 -0500

    Fix problem where changing slot= would not update pins
    
    Known to break spice-sdb's slotted component handling, however users
    are much more likely to encounter the former breakage.  Original patch
    removed the offending code, but this patch just #if's it out for now.

commit 7c82238f3b2433607f8af6c873af99a642f05409
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Dec 29 09:22:38 2007 -0500

    Ran make update-po in all po directories in prep for a new release.

commit fe7d974a8c2dd0a5b96bbd41b2691cfd5c8a7ecb
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Dec 29 11:25:17 2007 +0000

    libgeda: Update English (British) translation.

commit 27d11542d45423d0febb0f7ef95c8aaf2e96a7a1
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Dec 29 00:02:06 2007 -0500

    Added new i18n files to .gitignore to be ignored

commit 91726e0964602983e8f896be86aa056afc96baff
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Dec 29 01:41:14 2007 +0000

    Change image embedding format to base64 encode the original files
    
    Previously, the format was a base64 encoding of serialised output from
    the gdk_pixbuf used to store the image internally. Due to another bug
    (now fixed) it is known that no official gEDA release could re-load
    the embedded images that it saved. This hopefully provides some
    justification as to why its OK to change the embedding format here.

commit 70293381f5af9957afbd3e3fd0614d838738c7a7
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Dec 29 01:37:02 2007 +0000

    Compute picture aspect ratio in double arithmetic, not integer.
    
    Avoids a nasty bug where coordinates would overflow when attempting to
    grip-adjust the picture size due to this ratio being incorrect.

commit bebdeefaf0f8421fa106151f36c63e7f3a69a17b
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Fri Dec 28 19:14:36 2007 +0000

    Add Spanish translation for libgeda

commit d197bd400dd217aba91e9b72a9b1ce8bd4c387ec
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Dec 28 18:57:09 2007 +0000

    Move picture embedding code from o_embed.c into o_picture.c

commit 9eed09a311e2289740feb635f1344835a8f86cde
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 26 21:35:02 2007 +0000

    Fix spelling mistake in libgeda

commit 03ac3e16fec8b35e8e1d453d6504bd963bf43149
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 26 00:37:18 2007 +0000

    Fix make distcheck broken when adding KDE mime registration files
    
    Add .desktop.in files to EXTRA_DIST and the output to DISTCLEANFILES.

commit 127cff28ce52f41ce0972e8109049ecb78b09cc3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 25 23:09:28 2007 +0000

    Add English (British) translations for libgeda and gschem

commit dbb2a46a6ddba05cc5f71f735a6049b830eeda0d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 25 22:58:28 2007 +0000

    Fix spelling mistake in libgeda

commit 1aec0fd150a5a73d4bb7bbdd4b058e04819b9a21
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Tue Dec 25 21:47:10 2007 +0000

    Add Dutch translation for libgeda

commit de9efa23180c88bfd2e0949a2e41f0d861b36486
Author: Bert Timmerman <bert.timmerman@xs4all.nl>
Date:   Tue Dec 25 21:39:58 2007 +0000

    Fix spelling mistake in libgeda

commit 71c7d0b680117dfb51760f1523aa5293a56ea0d9
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 25 05:25:16 2007 +0000

    Add .gitignore files in libgeda/m4/ and libgeda/intl/

commit 44310ac20e15d28122eed9f6f532dc68bcf3c26b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 25 05:23:12 2007 +0000

    Fix .gitignore entries for generated KDE mime .desktop files

commit b9f741e0906295754fa5e1301cf3079aee88ff55
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 25 05:12:40 2007 +0000

    Remove intltool-*.in files during make maintainer-clean

commit d7840241c1c8adba3ada978ac1f42b5b2f5b87bc
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 24 17:18:37 2007 +0000

    libgeda: Use gettext to translate messages.

commit 45f02d40b7654a787589707f087ab33aea581787
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Dec 24 12:25:53 2007 +0000

    libgeda: Wrap translatable strings in dummy _() macro.

commit 7589460bcbd8ba7683645b9b5aecd5e0b14ad6d2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Dec 23 23:31:38 2007 +0000

    KDE mime registrations use title-case

commit 5218cee423a077d46e2ba02b5697f9058944c2a8
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Dec 23 23:29:46 2007 +0000

    Fix typo in icon name for gsch2pcb project KDE mime registration

commit 2cbbfb530707d215d81dd876afcc8e78beec646c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Dec 23 23:08:57 2007 +0000

    Add .desktop versions of MIME registrations for older KDE desktops
    
    Adds new ./configure option to libgeda, --with-kdedir=PATH. For system
    wide installs, this should be left to its default, ${prefix}. If
    installing in a home-directory, it should be set to /home/<USERID>/.kde

commit a4b3077e848339d9db363d89b4714e09228b3297
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 23 15:22:53 2007 +0000

    libgeda: Load gafrc.d scripts with protected eval.
    
    Stops one bad gafrc.d script blocking system-gafrc from loading
    completely.

commit cf220890a4f70ba16fbe3fc5c76e6e371720c5cb
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 23 15:22:53 2007 +0000

    libgeda: Make protected evaluators available from Scheme.

commit 8575431a17efb7a753649ae16087dc8f203981ce
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 23 15:22:53 2007 +0000

    libgeda: Add protected string evaluation functions.
    
    Add a protected equivalents to scm_eval_string_in_module() and
    scm_c_eval_string().

commit 9b1b44f0268271fc167ba5040ab3086cd2901706
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 23 15:22:53 2007 +0000

    libgeda: Add g_scm_eval_protected()
    
    Add a function that allows evaluation of a Guile expression safely,
    catching any exceptions and logging error messages.
    
    Modify the rc file helper function g_read_file() to use this new
    infrastructure.

commit eb82d0c6a2a3ae3eb6023375c4db10e0eaf9fb91
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 23 15:22:53 2007 +0000

    libgeda: Set Guile debug flags to aid debugging rc files

commit f3be59545162de9a575cdb3d7bc9953377bdc74d
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sun Dec 23 15:22:47 2007 +0000

    libgeda: Use a dedicated header for Guile 1.6 compatibility.
    
    Also adds some more useful checks & definitions for 1.8 functions
    missing from 1.6.

commit eaa1db9f3913126b157cdc283b34250d5497530f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Dec 23 06:13:15 2007 +0000

    Fix $(DESTDIR) prefix for MIME database update in libgeda

commit 375e53fc26a8e6f8f13f3f188b50987290525467
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Nov 18 22:55:34 2007 +0000

    Add desktop mime integration and icons to libgeda
    
    The schematic and symbol mimetype icons and registration data were
    contrinuted by Tomaz Solc, and subsequently modified by Peter Clifton,
    including creation of a gsch2pcb icon in a simlar style. The page outline
    is from the GNOME icon theme's text-x-generic icon by Jakub Steiner.
    
    Uses the intltool framework to translate the mime registration file.

commit fdfaaf2d4a7a92eaeb9b4a212a075c639bc9a022
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Dec 23 05:30:21 2007 +0000

    libgeda: Add missing noinst_HEADER prototype_priv.h to pass distcheck

commit f1d4aeb308de9b805ff0b21d7e94b09bc01dc569
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Dec 22 21:01:35 2007 +0000

    libgeda: Use goto to tidy some error handling in f_print.c

commit 091c7484296176f9364ed5663e7a2db4b2920f4b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 21 17:44:15 2007 +0000

    libgeda: Split out private prototypes to new header file.
    
    Split out function declarations for functions intended for libgeda
    internal use only into a new prototype_priv.h.

commit 52bb24c3868d14b12480037dc8f0b1450cc78d7f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 21 17:26:30 2007 +0000

    libgeda: Make sure that Guile smobs are initialised.
    
    Rather than initialising them in gschem, which is a WTF.

commit 8fd1e724fbb7f9b2e109a829c700daf11521c08a
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 21 17:26:30 2007 +0000

    libgeda: Now we assume GLib 2.4+, use g_setenv().

commit 39454be8d19bc73e3fb4b4a688a93ddc411d01c0
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 21 17:26:29 2007 +0000

    libgeda: Compile C files in alphabetical order.
    
    Purely because it looks nicer.

commit 559caed6b573a19f287fb0f1b35e46726acf9631
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 21 17:26:29 2007 +0000

    libgeda: Add a private counterpart to libgeda.h for internal use
    
    Provide a single header file, libgeda_priv.h, which includes all
    libgeda headers and their dependency headers in the correct order.
    Change libgeda C files to include just this header rather than all the
    individual headers explicitly.  This will make it easier to split out
    the libgeda headers into public and private declarations.

commit 3b040cf8d60a8fbe45f6e7c5f3d71a3dea119357
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Dec 19 17:48:57 2007 +0000

    Add intltoolize to the build infrastructure
    
    Provide intltoolize infrastructure for translating .desktop and MIME
    XML files. Run gettextize after intltoolize if required, so that the
    infrastructure for providing libintl on a non GNU system still works.

commit eae5c4643691bf4a675f6df0d31d671715089939
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Dec 18 14:39:34 2007 +0000

    Fix resolution of printed images to match that of the original data.

commit a146b68dfbffe227f3ab89af2beefb7627e26daa
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Dec 8 14:57:33 2007 +0000

    libgeda: Clean g_assert() usage.
    
    g_assert() is a heavy-handed approach to sanity checking because it
    kills the user application on failure.  It's better to use
    less-destructive methods.

commit 405e7a33706d1e82d53c8d607aad11f9be8ad559
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 7 21:48:43 2007 +0000

    General log handler improvements
    
    - Handle all messages above "debug" level
    - Send all messages which are neither "message" nor "warning" levels
      to console using default log handler
    - Don't print to console from the gschem log handler

commit 668ada22ec0f2a48adffcc62daacc6876108ee71
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 7 21:48:17 2007 +0000

    Pass all log info to x_log_update_func
    
    In order to enable applications to do interesting things with log
    messages, they need to have all of the log info (including severity
    and log domain).

commit c8a8611f87b3031e5fe1abb1a8602401ed459c97
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 29 16:55:39 2007 +0000

    libgeda: define s_log_message -> g_message
    
    s_log_message was a verbatim copy of the definition of the g_message
    macro from GLib's gmessages.h.  However, we're actually always going
    to include that header anyway -- this patch removes the unnecessary
    duplication of code.

commit be301530f468e4d0057b3be68e218ac444c2d2be
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 7 17:20:55 2007 +0000

    Make libgeda's f_open() & f_open_flags use GError.
    
    This patch actually *removes* error message output from file loading
    errors is some cases.  This is for the sake of keeping the patch
    concise, and will be addressed in later patches.

commit 9998632193573058a18c9dc96c7e9a3b1aa0dcc3
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Dec 7 17:19:57 2007 +0000

    libgeda: Make o_read() use GError.

commit 2d60c8fd165dbfd577199c2237d44e33655eb8c1
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Dec 6 21:08:32 2007 +0000

    libgeda: Add f_has_active_autosave()
    
    Add a helper function for checking if a file has an unresolved
    autosave file.

commit 3dc89aa9635b6eac150e837f24b51811c7504e88
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Dec 4 23:00:35 2007 +0000

    libgeda: Add f_get_autosave_filename()
    
    Add helper function for getting the autosave filename for a given file.

commit 53cbd813e6d601f86618aa083d656d7aeccb7705
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Dec 4 22:56:01 2007 +0000

    clib: Speed up caching by using pointer rather than string keys.
    
    The initial version of the symbol cache used the symbol name as a
    string as the key, mostly because of the obnoxious 'const' keywords I
    had put in the definition of s_clib_symbol_get_data().  Having found a
    way around that, using a pointer to the symbol structure as the key is
    much faster as it avoids costly string comparisons and allocation of
    heap memory (as well as being slightly more elegant).

commit 9d2d7b0042a75f0494a240ceb79e60173d2e55d7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Dec 4 16:17:59 2007 +0000

    Fix messages when parsing rc paths.
    
    Often, the full path to an rc file was being output twice in the log
    message given when parsing rc files.

commit d3d40d46285c5d0e75be9052d9f23480f9e8bff5
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 28 23:20:44 2007 +0000

    clib: Cache symbol data between library refreshes
    
    Adds a cache for symbol data, which is flushed whenever the available
    component libraries are changed or rescanned.  This should speed up
    large component copying operations.

commit 3106000f091b02eb199826c0a0d74a1407f883b0
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 29 12:58:17 2007 +0000

    libgeda: Correct header guards for defines.h

commit 0c2871d04305a0fcaf3b6b45a1317a491594a3f4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 29 01:29:18 2007 +0000

    clib: Clarify naming for search cache

commit 7a2ad70e9880b77957dd44d850ae85a08d615640
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Nov 29 01:29:18 2007 +0000

    libgeda: Clean g_assert usage in s_clib.c

commit 019d53dce27bdbbb9871510ce34bb995664290c2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Nov 28 17:24:27 2007 +0000

    Simplify o_mirror_complex() coordinate calculation.
    
    No mathematical changes, just consolidate x and y coordinate
    expressions onto one line each, and avoid using temporary variables.

commit 0312f7d113e616b0bb55880aa9d23a5197e821a5
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Nov 28 17:24:27 2007 +0000

    Fix bug introduced with refactoring of object mirroring API to libgeda.
    
    When reading a complex object from file, the mirror property of the
    complex is set to the desired value and later code then mirrors the
    prim_objs which make up the complex. o_complex_mirror_world() was used
    by mistake, where o_list_mirror_world() should have been used.
    
    This could be refactored so that complex creation uses higher level
    o_complex_{rotate,mirror}_world(), rather than setting the variables
    holding rotation / mirroring state, then manipulating the prim_objs.

commit ad5dcb91b8299dfbcda2e7507d4a42a6b6c0e9b0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Nov 28 17:24:27 2007 +0000

    Fix Bug #1838164. Initialise copied_to pointer in objects to NULL.
    
    Without explicitly initialising OBJECTs to have a copied_to pointer of
    NULL, copying a selection containing an attribute but not it's parent
    object could cause a segfault. The code checks to see where the parent
    object has been copied for correct attachemnt of the new attrib. If
    the parent object wasn't copied, this pointer should be NULL.

commit 193e2d4b748bc88d504abfa5b3cfba2382193d02
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 28 16:27:08 2007 +0000

    libgeda: Don't use assert.h (use Glib's g_assert instead)

commit d64878d06d87592e3fa4a0a478eacff5ea105253
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Nov 28 16:27:05 2007 +0000

    libgeda: Correct func name in SCM_ASSERT call

commit ae225157603f063747709fa3d639ed8cdf63f6b1
Merge: 1abfd25 43b5713
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Tue Nov 27 07:53:37 2007 +0000

    Merge with Cesar's mingw/pu branch
    
    Merge commit 'cesar/mingw/pu' into premerge

commit 1abfd25bf917ee4e90ccdbbbe9921db6ff46c49f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Nov 24 08:34:13 2007 +0000

    gschem: Fix NULL pointer risk in x_image.c [1802087]
    
    x_image_update_dialog_filename may attempt to deference a NULL
    pointer.

commit 6831e3cbfbd23964ceb42f294075053899a9bcad
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 23 21:44:18 2007 +0000

    libgeda: Update some component library doc comments.

commit 8b490a404e682ac4f1e4cbd46e22c92f58b2ae76
Author: Tomaž Šolc <tomaz.solc@tablix.org>
Date:   Fri Nov 23 21:42:50 2007 +0000

    Compilation fixes for Mac OS X 10.5 [1832417]
    
    This patch contains changes to gEDA source tree that were necessary to
    compile on Mac OS X (10.5 Leopard, PPC).

commit 537fc4784a25756d7c38b4fbbcc1059b41f5664b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 23 21:42:47 2007 +0000

    libgeda: Add the ability to save into a buffer.

commit 493fef662fb68301ad786fcbf3cf5cdbcb1078d1
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Nov 23 21:42:37 2007 +0000

    libgeda: Refactor file header string generation.
    
    Replace function for writing file header out to file with one which
    just returns a string containing the header.

commit 0b0d1259692ffe36e3bbc617af78bbf8a1c8f716
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Nov 18 21:34:57 2007 +0000

    Improve object mirroring API in libgeda + gschem
    
    Implements the o_mirror_world() function which rotates any object, and
    o_{glist,list}_mirror_world() functions which mirror lists of objects.
    
    Moves o_complex_mirror_world() from gschem into libgeda, and modifies
    appropriate places in libgeda + gschem to use the new API. The old
    gschem function o_mirror_world() becomes o_mirror_world_update(), a
    convenience function calling o_glist_mirror_world() and ensuring all
    necessary drawing and connection updates are made.
    
    Removes the o_complex_mirror_lowlevel() function which is made redundant
    by the above changes.

commit 21a8790b0540c374b00cfc45ad79ab474a4655b0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Nov 18 21:34:35 2007 +0000

    Improve object rotation API in libgeda + gschem
    
    Implements the o_rotate_world() function which rotates any object, and
    o_{glist,list}_rotate_world() functions which rotate lists of objects.
    
    Moves o_complex_rotate_world() from gschem into libgeda, and modifies
    appropriate places in libgeda + gschem to use this new API. The gschem
    function o_rotate_90_world() is greatly simplified, becoming a
    convenience function calling o_glist_rotate_world() and ensuring all
    necessary drawing and connection updates are made. This function is
    renamed o_rotate_world_update().
    
    Removes the o_{complex,text}_rotate_lowlevel() functions which are made
    redundant with the above changes.

commit 8d60088eafd1a1447db10e14436e9bbc3a5a28ce
Author: Cesar Strauss <cestrauss@gmail.com>
Date:   Sun Nov 11 14:37:53 2007 -0200

    MinGW does not have symlinks.

commit 40c0582e39d6a7ed0a41e0e5deedc0bfd03bbddc
Author: Cesar Strauss <cestrauss@gmail.com>
Date:   Thu Nov 15 19:11:12 2007 -0200

    Use forward slashes as path separators on MinGW.
    
    They are also acceptable as path separators on MinGW.

commit 4698fd163892243b931fbd7795ad9443f5b2fe58
Author: Cesar Strauss <cestrauss@gmail.com>
Date:   Sun Nov 11 13:38:26 2007 -0200

    Remove uneeded MinGW-only libraries.

commit ce2255f2633c9bb14dcd3813e019a84d8acce3a3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Oct 4 21:24:15 2007 +0100

    Alter system-gafrc to process .scm files in $GEDA_DATA_DIR/gafrc.d/
    
    This change allows each symbol package (e.g. geda-symbols) to install a
    scheme config file under this dir to load its contents. This allows
    additional symbol packages to be installed globally without needing to edit
    either geda-clib.scm or system-gafrc.
    
    Also moves the installation of geda-clib.scm into this directory.

commit 23ead18086e59aab22945c37ff95f49e5747f277
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Oct 17 04:50:39 2007 +0100

    Remove the ATTRIB linked list in favour of a GList
    
    The ATTRIB.copied_to pointer is moved from the ATTRIB struct to reside in
    the source OBJECT being copied.
    
    The ATTRIB *attached_to pointer of an attribute's text OBJECT is changed
    to OBJECT *attached_to, pointing directly at the OBJECT to which that
    attribute is attached. This avoids the need to traverse the ATTRIB list
    and retrieve this pointer from the HEAD attribute node. (A HEAD node is
    not used in the GList of ATTRIBs).
    
    The ATTRIB structure now only contains one element, OBJECT *object. This
    points to the text OBJECT holding and displaying that attribute's
    "name=value".

commit 88cdb643a1304cd283a2f2ad95993f237e81248b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Oct 17 03:53:38 2007 +0100

    Remove unused code from libgeda

commit 903db04d2174415fcc6ec6c0e7321d914a25b259
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Oct 9 22:28:54 2007 +0100

    Tidy implementation of o_list_copy_all() to be more concise.

commit f914d437f4a76df5ba28e80e7dab6f55996a8b59
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Oct 9 22:05:21 2007 +0100

    Split out gschem specific TOPLEVEL variables into a new GSCHEM_TOPLEVEL
    
    GSCHEM_TOPLEVEL has a TOPLEVEL *toplevel pointer as its first elelment,
    gschem uses this to call libgeda functions. (Almost) all gschem functions
    now take the GSCHEM_TOPLEVEL as their first argument.

commit 3da83d39b58ab2cb642b93b798ec31be0a725d81
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Oct 9 20:08:26 2007 +0100

    Move o_redraw_single() from libgeda to gschem

commit fe4375d7185c0d5f7cc8186c1a214981fb6d0edd
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Oct 9 20:08:26 2007 +0100

    Move libgeda's o_selection_unselect_list() into gschem.
    
    The function calls o_redraw_single(), so should be in gschem.
    It is now named o_select_unselect_list().

commit fd28531b8e88ced997b0269fd31cdb23abf3936d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Oct 9 20:08:23 2007 +0100

    Fix a bug in o_attrib_search_name_single() were it might return NULL.
    
    If o_attrib_search_name_single() doesn't find an attribute attached to
    the passed OBJECT, it checks if the passed OBJECT is itsself an attribute.
    In this case, it would return NULL (the result from the preceeding search).
    
    The bug might not actually be triggered in normal usage, as most callers
    don't pass a variable to recieve the OBJECT pointer.

commit 185958029cb58e26d37854c7580bef1b0869a7c9
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Oct 4 19:42:01 2007 +0100

    Use GLists to store OBJECTs in the "object_buffers[]" paste buffers.
    
    Replaces o_list_copy_all_selection2() with o_glist_copy_all_to_glist().

commit 38d3c48fd5a2ea57af5d772854393b39fd3b7e78
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Oct 4 19:42:00 2007 +0100

    Make attribute / text placing use a new attrib_place_list GList.

commit d1e77cc6b87f6bd78cfc38630c292ac2c0f1f09b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Oct 4 02:44:18 2007 +0100

    Remove the redundant toplevel variables current_{show,visible}.
    
    These variables were previously used for an interactive method of attrib
    placement which has since been removed. The current_visible variable was
    also tested during non-attribute text placement, but to no effect.
    
    Whilst the file-format does technically allow invisible text, gschem's UI
    pesesnts no way to achieve it, so removing this variable does no harm. The
    ability to correctly load schematics with invisible text remains.

commit 4595948e41b2d195eb78a820fc15d0d8596067a4
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Oct 4 02:34:50 2007 +0100

    Avoid accessing (GList)->{next|priv} directly to aid debugging.
    
    Instead use g_list_{next|previous}, allowing us to catch errors where
    changing from gEDA structures which had their own next and prev pointers.
    
    To debug, edit the glist.h include file from glib, renaming the next and
    prev elements in the GList structure and macros. Recompile gEDA to see any
    bad accesses such as those where the HEAD nodes were previously skipped.

commit e84c1d4ba2ad15e18f94346389d2671eb49d0cf5
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Tue Sep 11 22:37:55 2007 -0400

    Fixed a whole bunch of gtk+ 2.4.x and misc issues building on an older box
    
    This is a fix for (Patch#) 1789290 libgeda-1.2.0 fprintf which supplied a
    similar patch which fixes the issues in libgeda/src/s_clib.c and
    libgeda/src/s_textbuffer.c.  In the future, all releases will be built with
    gtk+ 2.4.x so that these sorts of problems do not get released.

commit 201b6aecab7f3f0f86b6d89479e7c229d4e6fb30
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 9 12:51:00 2007 +0100

    Remove unused TOPLEVEL variables display_{width,height}

commit 2e3c06cbcdce8254f70162ecebd650980cf70ee9
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 9 00:18:34 2007 +0100

    Remove the globally exported variable_set_func.
    
    Only gattrib provided a non-NULL export of this symbol, and such imports
    into libgeda prevent libgeda being dynamically linked on some platforms.
    
    To better match the other tools in the suite, gattrib's i_vars_set() and
    i_window_vars_set() functions were combined into a single i_vars_set().

commit 8952ec9bd4f4985fae8aadd6c4103b933464152a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Sep 9 00:01:14 2007 +0100

    Remove unused extern variables from libgeda, gnetlist and utils.

commit f94d63a9a9f73e70b51c16b1e9f337bfa26b0de2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Sep 8 23:26:47 2007 +0100

    Use o_translate_world() to tidy up o_complex_translate_world()
    
    Removed o_complex_world_translate_toplevel(), and changed all useage of
    o_complex_translate_world() for generic lists of objects to instead use
    the new o_list_translate_world(). o_glist_translate_world() is also added.

commit 03896ea02c444e5889d98953f6a7f5988253cc40
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Sep 8 23:24:33 2007 +0100

    Add new function o_translate_world() which will translate any object.

commit 36dc96b81aadceb9bb6e4c3d8b59939a2dc240e0
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Sep 8 23:24:27 2007 +0100

    Rename o_complex_world_translate() to o_complex_translate_world()
    
    The function name now matches the pattern for other objects types.

commit 7018461cf5f5f011f3b59a711c4817752099a534
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Sep 8 15:49:02 2007 +0100

    Remove unused function o_attrib_search_special().

commit 5a1c7855c84f3d9b6a439e529b6c147f943e3b95
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Sep 8 15:26:33 2007 +0100

    Remove unused function o_attrib_count_toplevel().

commit b363eb966b6ec92cfc4337cef15cf04839a7939b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Sep 8 15:26:32 2007 +0100

    Remove empty functions o_attrib_{edit,select_draw,unselect_draw}().

commit d0d00ac3599befcfcf25ae498dc17f6cc241b7da
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Sep 8 13:13:38 2007 +0100

    Remove auto-uref code which was #ifdef'd out. its no longer used.

commit 8b6effd2eb18816e62b3a19a532d6c308ee3fdd2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Sep 8 00:30:49 2007 +0100

    Remove unused OBJECT *object_selected from PAGE structure.

commit 08ac872c975a587cf4125c6468c79c453661ee8f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Sep 7 23:58:51 2007 +0100

    Removed unused angle parameter to o_complex_rotate_lowlevel().

commit c66d009979f49bd7ac8ba0641a6974be9e6a82d5
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Sep 7 23:57:38 2007 +0100

    Removed unused angle parameter to o_text_rotate_world().
    
    From an old unmerged patch by Patrick Bernaud.

commit 1f336cc81195dadaffd4bbec17e8a40950b7935b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 18:47:23 2007 +0100

    Simplify test to call gdk_init() in o_read_picture()
    
    Avoids testing a GtkWidget pointer in TOPLEVEL variable setup by gschem or
    gattrib. Instead, just ensure we call gdk_init() at least once. If gschem
    or gattrib already did, its not a problem as repeated calls aren't harmful.

commit f60cb40a3c47595d1931540508e89643fdcece07
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 18:47:23 2007 +0100

    Tidy o_picture_copy(), avoiding use of some TOPLEVEL variables

commit 23953797984fda7cb62dceef38ac26da25c2dcd2
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 18:39:55 2007 +0100

    Fix loading of embedded images.
    
    Various bugs in the base64 decoding function were preventing the correct
    decoding of the embedded image. In addition, it was possible for this code
    to access invalid memory - possibly leading to a crash.
    
    Additionally removes extra \n inserted between lines of the base64 input.

commit bd101aa36356082f479e1bd4970ea93b01bbfa5d
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:38:02 2007 +0100

    Remove the un-needed TOPLEVEL variable: DONT_RECALC, and its usage.

commit 5e9f49ed25bf87783207906daaf915714f43259c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:37:56 2007 +0100

    Remove the redundant TOPLEVEL variable: DONT_RESIZE

commit 863d3c63667dc1a106b21758f957d810ee6f5583
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:37:49 2007 +0100

    Remove the redundant TOPLEVEL variable: DONT_DRAW_CONN

commit bf3a364ed474ce6f5824a5f3fe94a3c17ce8bc28
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:37:41 2007 +0100

    Remove unused variables from the TOPLEVEL structure

commit 615d03958528afabaf94eb95199aa434d5c5d667
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:34:11 2007 +0100

    Use o_attrib_print() in libgeda/src/s_basic.c avoiding code duplication.
    
    Printed output will be slightly different, but this is just debug code.

commit 7f8f105c3fb9945ee02a4cf35a3cd762b0c6804c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:19:25 2007 +0100

    Remove unused function o_attrib_reattach()

commit f8680ea938936bfd59c1c0f699c437de870a09eb
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:19:19 2007 +0100

    Remove unused functions o_attrib_copy() and o_attrib_copy_all().

commit a0d45936373d8c5e2f887f1330cbbc3b691e13cb
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:19:05 2007 +0100

    Remove unused function o_attrib_test_detach()

commit f376f300980a0a4734e00d4c776bb829f9c36b96
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:19:00 2007 +0100

    Remove unused, empty function o_attrib_detach_all()

commit e9ac00da9b2c75b3ccef3e729e43bb105d3e6e4a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 14:18:50 2007 +0100

    Remove unused function o_attrib_print_reverse()

commit 96495b7a87701b2ea8d7eb6b4da206d6c169a85c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Sep 5 13:46:57 2007 +0100

    Fix memory corruption and possible segfault copying attributes
    
    If an object (but not all its attributes) was selected and copied, dangling
    pointers were left in the un-copied attributes. A subsequent copy operation
    containing those missed attributes would attempt to reattach them to the
    copy of their parent. If this had been deleted in the mean time, memory
    corruption and a possible segfault would occur.
    
    Consolidates the duplicated code which sets the ATTRIB property "copied_to"
    into a helper function, o_attrib_list_copied_to(). This is also used to
    clean up after copy operations.

commit 5b2cb25e06604a8d31dff974f323477a78f02f46
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 16:48:32 2007 +0100

    Move o_picture_set_pixbuf() from libgeda to gschem

commit 07d5a095c313e031b939d45f89afcd1c0ca9bc97
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 16:48:09 2007 +0100

    Remove unused TOPLEVEL variable REMOVING_SEL.

commit 70d8cc898e42b95a7ac463d9e879c959690fbd5c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 16:47:22 2007 +0100

    Remove unused dialog pointers from TOPLEVEL

commit 2854af88bf7d4d45cec1a8cc4046e0e3da5f1339
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 16:46:55 2007 +0100

    Remove unneeded functions in libgeda/o_attrib.c
    
    Removes:
      o_attrib_set_show(TOPLEVEL *toplevel, int flag)
      o_attrib_set_visible(TOPLEVEL *toplevel, int flag)

commit 093e83672310917f56b66a4f2189cb8e9baae903
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 16:46:20 2007 +0100

    Remove un-needed redraw in o_scale() and generally tidied the function up

commit 3e56c88e89c6b03c402a97d0a225302f6d000458
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 16:46:09 2007 +0100

    Remove ineffective redraw in o_complex_world_translate()

commit 9044d41a2305c97522bc70cfd7945f9d843482ae
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 16:41:28 2007 +0100

    Removes the linking between TOPLEVELs, instead uses a GList in gschem

commit 4a24abed55b95bd50cb0351ca25c37f6758e8e89
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 16:38:53 2007 +0100

    libgeda: Rename all w_current variables to toplevel

commit 63ee20a80cd42e1af745f9a52cd1d632c1bc345a
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 12:17:25 2007 +0100

    Avoid using s_hierarchy_up() for traversal when we know where we're going.
    
    When trying to reach a specific parent we've come from before, we can use
    s_page_goto() and avoid the search through the page list.

commit adca8b7d5897b11331c6a20392d22ad1e58ee572
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Sep 3 12:15:43 2007 +0100

    Replace the linked list of PAGEs with a GedaList (typecast to GedaPageList)

commit 086908ed44c9abc6d5907888695933b59ead4684
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Sep 2 22:48:59 2007 -0400

    Last minute updates to the READMEs for all projects
    
    Cherry picked from stable-1.2 branch, since these changes apply to master
    too.
    (cherry picked from commit 88fcb8d1bcdaa1436572d6a0ebe86f4df242a8d6)

commit 6056ef48272778419d39e0233f395bfd60019ab9
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Aug 19 22:40:19 2007 -0400

    Update ChangeLogs using: ./update-changelogs.sh 1.0-20070526..master

commit 19aacfff985ee9b478c4c50dfeeb1a8af5957c3a
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Aug 18 16:41:24 2007 -0400

    Added undo-panzoom keyword to control if pan/zoom cmds are undoable
    
    The default is to still store the pan/zoom info when panning or zooming,
    but now the user has a choice.

commit 92b3b65d0cec286b0ce59fc43cc07dcb60c39fa1
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Aug 18 16:14:30 2007 -0400

    Bumped versions to 1.1.2/20070818/30:2:0 for the next development snapshot

commit 4a505b751224b1e6cca84090ee088b4d690e8aa3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Aug 18 14:20:46 2007 -0400

    Fix memory leak where GLists weren't free'd properly after use.

commit 72c4db8aa20c22baa4243a0d27b3bb3f32f3ef64
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Tue Aug 14 07:46:06 2007 -0400

    Moved 3 rc promotion keywords from gschem into libgeda (fix for bug#1748143)
    
    All the promotion keywords were moved from gschem into libgeda to fix:
    [ 1748143 ] gschlas causes duplicate prompted attributes   The primary
    cause of this bug was that the promotion variables within TOPLEVEL were
    not being setup by gschlas and so duplicate refdes attributes were
    showing up in the schematic.  The three rc keywords that were moved are:
    
    (attribute-promotion ... )
    (promote-invisible ... )
    (keep-invisible ... )

commit 6482c39d6983f7505b49068466feaea6c06cb50f
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Fri Aug 10 21:57:30 2007 -0400

    Fixed a nasty bug that was causing gsymcheck's make check to randomly fail

commit 703151a94b0eece6b24b3b18ce2465eeae068814
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Aug 9 12:36:17 2007 +0100

    Remove old prototypes from various prototype.h where no function exists.

commit 71600215311af0a98ed371ab750b09182de139a1
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Aug 11 00:52:25 2007 +0100

    Revert inadvertent commits:
    
      dbfe00a20de3f875e519ef60629b968977fc5db8 (commit)
      f1451161914a0ed0bb43123279906d82cb7d5b49 (commit)
      2ad315fc0badd16a9614d1107b22c973908893d5 (commit)
      d8844bb48969aa45a05cbe6836fc96c198e88c19 (commit)
      ee1b64a1ae07eb99eae5d63307e9fe23f9604662 (commit)

commit dbfe00a20de3f875e519ef60629b968977fc5db8
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Aug 10 22:52:18 2007 +0100

    Avoid using s_hierarchy_up() for traversal when we know where we're going.
    
    When trying to reach a specific parent we've come from before, we can use
    s_page_goto() and avoid the search through the page list.

commit d8844bb48969aa45a05cbe6836fc96c198e88c19
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Aug 10 21:26:10 2007 +0100

    Replace the linked list of PAGEs with a GedaList (typecast to GedaPageList)

commit 0f5c72daacfa7d78666769e4063122934861da5c
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sun Aug 5 22:36:56 2007 +0100

    Alter guile 1.6 compat tests to work with older autoconf versions
    
    Don't use AC_DEFINE to define function like macros, instead use
    AC_CHECK_DECLS to set a HAVE_DECL_..., then use AH_VERBATIM to
    insert a test which defines a replacement if necessary.

commit 5c098070b87709540345afb1b3b79d9db470ed53
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Aug 2 22:09:52 2007 +0100

    Fix configure checks enabling guile 1.6.x compatability routines.

commit 512561395fb348a0fb71625edb4fe1ec96553c3f
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Aug 2 13:17:58 2007 +0100

    Fix to allow automatic loading of untitled backup files

commit aec624dc87dc204b399b0e070f8fcfce8e3edbc6
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Aug 2 13:07:23 2007 +0100

    Remove old code commented out in o_net_consolidate_segments()

commit c31bd4adb677d671af8bdf5aed71f96a4995f9b1
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Tue Jul 31 20:03:51 2007 +0100

    Changed configure.ac(.in) to allow guile-1.6
    
    Introduces compatibility #defines where guile 1.8 funcs are missing in
    guile 1.6. Also adds missing configure.ac checks for guile in packages
    gattrib, gnetlist, gsymcheck and utils.

commit a3facd9b5fc1a252ef18a7b5a3fca6b1c80cbb01
Author: Bernd Jendrisse <bernd.jendrissek@gmail.com>
Date:   Sun Jul 29 10:20:11 2007 -0400

    Added doxygen comment to o_text_add()

commit 3d86fb3270138d59f0f443efb3cd4f6efb9f3990
Author: Bernd Jendrisse <bernd.jendrissek@gmail.com>
Date:   Sun Jul 29 10:18:22 2007 -0400

    Fixed transpositions, typos, and random spelling errors.

commit af8d5893e54ef929851011911167bdb4df826431
Author: Bernd Jendrisse <bernd.jendrissek@gmail.com>
Date:   Sun Jul 29 10:01:53 2007 -0400

    Removed spurious whitespace from header file.

commit ac47f97389af58e730dce5da19897cd0d3d152e3
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Fri Jul 27 23:44:23 2007 +0100

    Fix unselect code to only update colors etc. when the object was selected.
    
    Fixes a regression introduced with the GedaList based selection code. When
    asked to remove an object from the selection, we must check its actually
    selected before calling o_selection_unselect() to re-color the object.

commit 31f65059cf1ce5be9b8a0987d4538fed075a6805
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Jul 25 02:09:15 2007 +0100

    Fixed two calls to free() where g_free() should have been used.
    
    Updated Doxygen comments to note where memory should be freed with g_free()
    rather than free(). Commented three instances where free() is correct.

commit 305c10f50464f02e32d84140db69f158da6e4c47
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Wed Jul 25 00:52:36 2007 +0100

    Free strings from scm_to_locale_string() with free(), not g_free()
    
    NB: All other code in geda uses g_strdup (SCM_STRING_CHARS (...)) to
    convert strings from guile, so is not affected.

commit f6e43346086f118dbae33e7cb650c4eef90ee3aa
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Mon Jul 23 23:38:37 2007 +0100

    Add call to g_type_init() in libgeda_init() as libgeda now uses GObject

commit cb9c4ee19ca58158308a234782fdad6fb60257da
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Jul 19 15:09:56 2007 +0100

    Change selection code to use a generic GedaList typecast to SELECTION.
    
    GedaList allows various parts of the program to keep track of changes
    to the selection via callbacks attached to the GedaList object.

commit 10e79873064a096f8af4b0b6dcb9f957be0f6859
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Thu Jul 19 15:06:57 2007 +0100

    Added new GedaList class derived from GObject
    
    This abstracts a GList with API for write access. Its main use is in list
    change notification, as it emits a "changed" g_signal when modified.
    Read only access to the underlying GList is provided by an accessor,
    currenly implemented as a macro.

commit e978b9098c7567ad3b9c834a5e4914de3bc039ec
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jul 8 18:18:39 2007 -0400

    Updated ChangeLogs using ./update-changelogs.sh 1.0-20070526..master

commit d7e8f5abc35644e90bfabf84396023cab09f2968
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sun Jul 8 16:18:57 2007 -0400

    Updated configure.ac[.in] and Makefile versions in prep for a release.
    
    The update was done by running ./update-versions.sh 1.1.1 20070708 30:1
    at the toplevel.  libgeda's shared library version is now 30:1:0

commit 3f3505662fe4bb8c585aea0ea965296bd923956c
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Sun Jul 8 21:16:17 2007 +0200

    Added *~ to .gitignore files.

commit b6f9ed0ba8af7ed6e380bb6752bc553240f1b04c
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Sun Jul 8 20:57:30 2007 +0200

    Added string != NULL check in u_basic_breakup_string.
    
    The lack of this check can be the cause of a segfault (bug #1748153).
    Programs shouldn't pass NULL strings to this function.

commit 841ecec5509d214e633a984124ab33f35d55021e
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Fri Jul 6 23:35:59 2007 +0200

    Added new scheme function: get-line-width .
    
    Added new scheme function, get-line-width, which returns the line
    width used to draw a given object.

commit 22d475b9beb10be2aa27197d6ad59f728a1f034f
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jul 5 07:55:43 2007 +0100

    libgeda: Handle multiple libraries with the same name nicely.
    
    If a component library is added which has the same name as an existing library,
    rewrites the name in the form "name<number>".

commit dd995d808b9f4440db48d2daa2473a9d9cfd88ef
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Thu Jul 5 01:36:31 2007 -0400

    Updated ChangeLogs using ./update-changelogs.sh 1.0-20070526..master

commit 0484a4d7c925af33d18f5d9bfdeca240b735a9bb
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Thu Jul 5 00:18:27 2007 -0400

    Oops, incorrectly specified libgeda's shared library version.
    
    The format for this version is X:Y:Z and for the most part the major
    number just increments every release if there aren't any changes to
    any interfaces.  For detailed information on how to change this number
    see:
    http://www.gnu.org/software/libtool/manual.html#Updating-version-info

commit 099c49e5689afda4b8a5221dde73f9fdf1972ce7
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Thu Jul 5 00:11:45 2007 -0400

    Updated all version strings to 1.1.0 and 20070705

commit 87731dda219b0986fed0d1a7789e17678dd79d8c
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Wed Jul 4 23:55:07 2007 -0400

    Removed AM_MAINTAINER_MODE from all configure.ac[.in] files.
    
    Maintainer mode is no longer needed or desired now that we are no longer
    using CVS.  Hopefully this will prevent some of the odd problems that were
    observed during the last release when the Makefile's didn't get auto
    regenerated.

commit e4e105b3309dcbc0b598318e1b24591dec39422a
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Wed Jul 4 23:52:58 2007 -0400

    Provided an alternative implementation to glib 2.12.x only function

commit dc7b8c53f4bc94626634887e46167a367a91f707
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Wed Jul 4 23:32:15 2007 -0400

    Changed gEDA/gaf's version mechanism to use new dotted X.Y.Z convention
    
    Added DOTTED_VERSION and DATE_VERSION variables to all configure.ac[.in]
    files.  Changed all version related output to be DOTTED_VERSION.DATE_VERSION.
    Updated the configure.ac[.in] files to have consistent top sections.
    Updated code and various scheme files to use the new DOTTED_VERSION
    and DATE_VERSION variables available via config.h.  Stopped using
    PREPEND_VERSION_STRING as the mechanism for doing the dotted versions
    (not intended for that use).  Updated update-versions.sh script to set the
    version in all the configure.ac[.in] files and the toplevel Makefile.
    Went through all the g_rc.c files and make the handling of rc file
    mismatch handling consistent.

commit dbf600e34e2284fe1ec59242d541334bc27d3d49
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Wed Jul 4 16:51:32 2007 -0400

    Implemented the ability to change the color of junctions (code for #1746675).
    
    The filled circles (at the junction of nets) and filled boxes (at the
    end of unconnected nets) were the same color and it was hard to tell the
    difference from a distance.  This patch addes (junction-color ...) rc
    keyword and allows the user to change the junction color.  The default
    color for the dark color scheme is yellow and the default color for the
    light color scheme is purple.

commit ca4571b1a6a49c97feb8fc6cc8cb926acc287ece
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jul 4 18:03:53 2007 +0100

    libgeda: s_clib_toplevel_get_symbol_names() is poorly named.
    
    s_clib_toplevel_get_symbol_names() returns symbols, not names of
    symbols, so rename it to s_clib_toplevel_get_symbols().

commit ab0fef1d36d05088f3891397103ebb15b3e3c2d0
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jul 4 18:03:53 2007 +0100

    libgeda: Make command-backed component sources more flexible.
    
    Allow different commands to be specified for 'list' and 'get' with
    custom command-line arguments.

commit 62e7775f82d947efb1515ef8f9f776da88de62b4
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 28 18:36:42 2007 +0100

    libgeda: Add a newline to a component library log message

commit c144221daf8ef133f39e14c76447a1b556c54853
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Thu Jun 28 15:50:31 2007 +0100

    libgeda: Add fine-grained control over f_open() behaviour.
    
    Add a function f_open_flags() which takes an extra argument which is a
    set of flags controlling actions taking while opening a file. f_open()
    wraps this with a default set of flags.
    
    Coincidentally, this also leads to a trivial fix for the file open
    dialog backup-message bug.

commit 301614ec1f0e97de952f071d5f40f885ca7484ce
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jun 27 19:48:04 2007 +0100

    libgeda: Add function which retrieves a list of symbols in use.
    
    Add the s_toplevel_get_symbol_names() function, which scans a TOPLEVEL
    structure to obtain a list of all symbols used in open
    schematics.

commit c7f1e67533518517f310fd037c7e24cb248a4f23
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Wed Jun 27 19:48:04 2007 +0100

    libgeda: Make s_page_new() use g_new0() for a blank page.

commit 57b2848a7e69d19e18ac03a1264cb55d41c65d0e
Author: Ales Hvezda <ahvezda@laptop.ales.net>
Date:   Mon Jun 25 22:31:07 2007 -0400

    Changed/updated the #define mechanism for creating custom gEDA/gaf versions.
    
    Previously this mechanism was used to create custom versions of gEDA/gaf.
    With the coming of stable and development versions of gEDA/gaf, this
    mechanism was changed so that end users can tell the difference between
    a stable release vs a development release (by looking at the version string).
    The CUSTOM_VERSION #define was changed PREPEND_VERSION_STRING and is now
    prepended to any strings that output the VERSION string.

commit 0ed9cf080cfc8509cb29cbe4e976f86b2821c407
Author: Ales Hvezda <ahvezda@laptop.ales.net>
Date:   Sun Jun 24 23:48:51 2007 -0400

    Updated copyright text/header in most source files.
    
    Updated all copyright text dates that have my name (Ales) associated
    with them.  Added gEDA contributer copyright text where appropriate.
    Fixed a bunch of GNU text typos (these should have been either GPL
    or gEDA).  Removed some $Id$ tags which are no longer used/needed.
    Fixed a few file header that were just plain incorrect.

commit a4e956c6272ea982ec54327dcc5e3aa528ac8c99
Author: Ales Hvezda <ahvezda@laptop.ales.net>
Date:   Sun Jun 24 22:22:32 2007 -0400

    Added *.o (all object files) to all src .gitignore files.

commit 1c76ee9d84ea4fcdc924d992ecc3a828887eff4f
Author: Ales Hvezda <ahvezda@laptop.ales.net>
Date:   Sun Jun 24 22:17:03 2007 -0400

    Removed all trace of libgd usage and removed some old ps printing routines.
    
    All trace of libgd and HAS_LIBGD has been removed.  Some obsoleted and

commit 868d31c36736b1ceebdd9a7cea6d12d12ecf89a9
Author: Ales Hvezda <ahvezda@laptop.ales.net>
Date:   Sun Jun 24 15:46:46 2007 -0400

    Removed libgd and indent tests from configure scripts.
    
    indent is no longer use since noweb was removed a long time ago.
    libgd is no longer used since libgeda/gschem uses mage export support in gdk.

commit edff766e8b15c311505810241528026f722e30b6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 23 18:19:11 2007 +0100

    Make sure various files are installed.
    
    Several new files were not being distributed. This patch addresses the
    problem by adding files to EXTRA_DIST in automake input files.

commit e57c37a66edc1c4d4e4d7160001749df51b96c4b
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date:   Sat Jun 23 18:17:29 2007 +0100

    Move all .cvsignore files to .gitignore files

commit 065595ccd8b5e77616c29a37742357cfab0ae7f7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 23 16:11:44 2007 +0100

    Changes to ChangeLog usage.
    
    With actual changes this time.  Old-style changelogs as of gaf 1.0
    (release of 26th June 2007) are moved to ChangeLog-1.0; new (blank)
    ChangeLogs replace them.  A script has been added to the gaf top level
    to allow maintainers to update all the ChangeLog files immediately
    prior to making out a release.

commit 1f1c7f4d9ab541454d39a4ec770f6e9bdd9bfa16
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 23 14:01:30 2007 +0100

    Re-enable s_clib_refresh().
    
    Now that OBJECT and TOPLEVEL no longer store pointers to CLibSymbol
    structures, calling s_clib_refresh() is no longer likely to cause a
    segfault.

commit 67038ed9bece3a1317757b58a982ed29af2831c6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 23 13:50:57 2007 +0100

    Don't cache symbol pointers in persistent structures.
    
    Several persistent structures, including TOPLEVEL and OBJECT, cache
    pointers to CLibSymbols.  This is bad, because it makes removing
    component sources or rescanning them likely to cause stale pointers
    around the place.
    
    With fast hashtable-cached searches in place, this is no longer
    necessary.  This patch ensures that only symbol names are stored
    persistently.
    
    This patch also enables descending into embedded symbols using a
    component library lookup on the embedded symbol's name.

commit 1c226a4ebe5f297460cccf8568b7d7b7b2179253
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 23 13:32:45 2007 +0100

    Factor out TOPLEVEL.current_clib.

commit fe621022acfbe69688878b70d4c40883f8f2a3df
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 22 08:34:33 2007 +0100

    Add s_clib_get_symbol_by_name().
    
    Add a new function which returns the first exact match for a given
    symbol name, printing log messages if either there are more than one
    match or no matches are found at all.  Also update
    s_clib_symbol_get_data_by_name() to use new function and remove
    o_complex_add_by_name() as more or less redundant.

commit 01fd87d78aa26d3c29b4141878b5f48edab264ec
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 15 09:05:53 2007 +0100

    Make comp. library search faster and more flexible
    
    Replace s_clib_glob() with s_clib_search(), which can operate in
    either exact matching or glob matching mode.  Use a hashtable to cache
    the results of library searches. The hashtable is cleared every time
    it is invalidated (for instance if a component source is added or
    removed, or the component sources are rescanned).

commit 9dde0233ebed32065511b567445f9f34d4b3bea1
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 15 09:06:56 2007 +0100

    Refactor system RC files
    
    Moved system-gafrc into the libgeda package, where it belongs.
    Removed all environment and configure substitutions.  Created separate
    font and component library setup scripts in the symbols package,
    automatically loaded by system-gafrc if they exist.  Updated
    system-gschemrc to use new infrastructure.

commit 041fa3eedf71df34cdd04bad4c2cd5b08cff7232
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 15 09:06:55 2007 +0100

    Add infrastructure for installing Scheme files with libgeda.

commit 10f0c8203b1fa9c87d09f1aeb4da28a0e5599ea8
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Fri Jun 15 09:06:55 2007 +0100

    Make libgeda define Guile variables for the gEDA data paths.
    
    Add three variables from libgeda to the Guile environment:
    geda-rc-path, geda-data-path, and path-sep.

commit 2a2fa60eee536f48cc27c16f2577106e78250ed6
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 9 20:30:14 2007 +0000

    Fix gschem's sort-component-library option
    
    In the last release, the sort-component-library gschemrc option did
    nothing.  This patch corrects the issue, by adding an argument to
    s_clib_get_sources which enables or disables sorting the list of
    component sources.

commit eed0be648afd9bc421a8d0059de621df778c5fbe
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Sat Jun 9 16:09:36 2007 +0000

    Avoid writting '\r' to files on MinGW.
    
    Applied patch #1733826 from Cesar Strauss. Thanks.
    When using the "w" mode in fopen, MinGW translates LF into CR-LF.
    This creates havoc when reading the same file again, when sharing
    schematics files with other systems, and when placing them in a VCS.
    
    This can be avoided by using the "wb" mode. The "b" is ignored on
    all POSIX conforming systems, according to these sources:
    
    http://www.die.net/doc/linux/man/man3/fopen.3.html
    http://www.opengroup.org/onlinepubs/009695399/functions/fopen.html
    
    There are other ways, however. Adding
    
    #include <fcntl.h>
    int _fmode = _O_BINARY;
    
    on some source file should work as well. Another way is linking
    against the MinGW supplied binmode.o, which does exactly that.

commit f1ba0fe139afec11f50fee01e92e5a727456bcce
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Sat Jun 9 15:38:36 2007 +0000

    Fix for lack of permission-related file attributes on MinGW.
    
    Applied patch #1733728, with some tweaks, from Cesar Strauss. Thanks.
    Define some file permissions as 0 if they are not defined.
    Don't use chown if it is not available.

commit 419b4d152b0b2ae6546052ccb8d87ef26fa83752
Author: Carlos Nieves Onega <cnieves@iespana.es>
Date:   Sat Jun 9 14:59:01 2007 +0000

    Added EPS support.
    
    Applied patch #1713747 (with minor tweaks) from Wojciech Kazubski
    adding support for EPS when writing an image. Thanks.

commit ef0ca7042e49ed3f26ec61c71085378ab04fef6e
Author: Ales Hvezda <ahvezda@seul.org>
Date:   Sat Jun 9 14:44:27 2007 +0000

    Applied patch from Ivan Stankovic that displays entered characters in
    the status bar

commit 3d58ffc27e6d915c4b1ebbd6f6b96d98d6126b7b
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon Jun 4 16:15:37 2007 +0000

    Replace deprecated Guile functions & macros.
    
    Replace deprecated SCM_STRINGP, SCM_INUM, SXM_INUMP & SCM_MAKINUM with
    recommended equivalents for Guile 1.8.

commit 66fb25858496cdf33e1456b835d68a16bb7ccdcd
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Sat Jun 2 16:33:34 2007 +0000

    Improve Guile configure checks & remove 1.4 compat. code.
    
    Removes compatibility code for Guile 1.4, and makes configure scripts
    check for actual Guile version.

commit cd3149619aac30cb158a13733c76fad9c98faaee
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 21:24:19 2007 +0000

    Require Guile 1.8.x
    
    Guile 1.8.x is the current stable series, and 1.6.x is getting old.
    Require 1.8.x for libgeda.

commit b3cacc6ddb4135c63057b1856a0693fd7f1043ba
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 08:13:50 2007 +0000

    Component library documentation updates.
    
    Various changes to update & improve component library documentation.

commit ac91166a7d5fe429d28e96cc7bc3adec724faa7e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:59:41 2007 +0000

    Match .sym suffix case-insensively when building component library.
    
    When building symbol lists for directory-based component sources,
    match the ".sym" filename suffix case-insensitively.  Note that for
    backward- compatibility (and sanity on systems with case-sensitive
    filenames) searching for symbols does match symbols
    case-sensitively ("plug.SYM" will not satisfy a search for
    "plug.sym").

commit 361853bdb0e60db2ea121ec2dd49341ce0b4a2e7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:56:47 2007 +0000

    Add component sources based on Scheme procedures.
    
    Add the ability to use a set of Scheme procedures which list and
    return component symbols as the backend of a component library.  Adds
    the g_rc_component_library_funcs() and s_clib_add_scm() functions to
    libgeda, as well as the component-library-funcs rc file function.

commit 51141f6de037902bef8870f473ae4ce3836b758e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:53:25 2007 +0000

    Change way that component source conflicts are checked.
    
    Allow the same component source to be added more than once, but only
    if it has a unique name.  Also adds s_clib_get_source_by_name().

commit ef835e4c2be6f907c0f743a989be6a33f740071e
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:50:39 2007 +0000

    Sort lists of component sources and symbols.
    
    Adds functions to compare sources and symbols by name
    case-insensitively, and makes the both s_clib_source_get_symbols() and
    s_clib_get_sources() return lists sorted by name.

commit a0038f45b535b7a4e48d491e0a44bf222c790208
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:48:31 2007 +0000

    Add & update Scheme callbacks for new component library.
    
    Add the (component-library-command) function, and make
    (component-library) take an optional second argument for the
    directory's source name.

commit 2a1ac73a53cdde48883d77ff6d90b51e5a19c561
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:46:11 2007 +0000

    Provide better names for component sources.
    
    Full pathnames aren't very user-friendly in the component
    browser, and sometimes the name you want for your
    component source isn't the same as the directory name. This
    patch provides an infrastructure for better source naming,
    while falling back to the "classic" behaviour if necessary.

commit 32254c4c57c9f7450d31b61a98368e56769d33ab
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:37:49 2007 +0000

    Implement new component library system in libgeda.
    
    A new component library model is needed to allow gschem etc.
    to work well with part database systems.  This patch
    provides the necessary infrastructure in libgeda, without
    the frontend Guile commands required to make use of the new
    features.  In particular, it abstracts the component
    library into the concepts of "Component Sources" and
    "Symbols", and allows external "Library Commands" to
    provide symbol data in addition to the traditional directory
    libraries.
    
    In order to allow the new system to work, there are major
    changes in all code which manipulates COMPLEX objects; in
    particular, the magic "EMBEDDED" string is now only used
    in the on-disc representation.

commit 40833189228f8edeffce6eeb1bbdcdb1c0c64b2c
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:31:36 2007 +0000

    Add new file omitted in previous commit.

commit 022421c35c53cbfe4ea936cc1d31b192cfd34ab7
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:30:31 2007 +0000

    Make libgeda parse schematics from buffered data.
    
    In order to support more complex methods of acquiring symbol
    data, libgeda needs to be able to load schematics and symbols
    directly from a memory buffer as well as from files.

commit 2f30fb34dbbeb61650d69737913e80daa75dc172
Author: Peter TB Brett <peter@peter-b.co.uk>
Date:   Mon May 28 07:27:23 2007 +0000

    Add managed text buffers to libgeda.
    
    In order to facilitate loading symbols & schematics from
    memory without an extensive rewrite, this patch adds an API
    for reading memory arrays a bit like a file.
    
    Using memory streams & fgets would be nicer, but unfortunately
    memory streams are a GNU libc extension.
