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

gEDA-cvs: branch: master updated (1.4.0-20080127-103-ge5d57e6)



The branch, master has been updated
       via  e5d57e6811046c1899dd32d5c705accfe1857574 (commit)
       via  2c5dfb6823faeb76004c8b6afdcb2ed3cdf483c5 (commit)
       via  eb0846161bf916d68280bddf2d7dd244e0fe6002 (commit)
      from  a7e7a28613abe4705ec01011d0f4308ff024251b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


=========
 Summary
=========

 libgeda/include/prototype.h   |    2 +-
 libgeda/src/o_complex_basic.c |    7 ++++---
 libgeda/src/s_hierarchy.c     |    4 +++-
 libgeda/src/s_menu.c          |    2 ++
 4 files changed, 10 insertions(+), 5 deletions(-)


=================
 Commit Messages
=================

commit e5d57e6811046c1899dd32d5c705accfe1857574
Author: Patrick Bernaud <b-patrick@xxxxxxxxxx>
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.

:100644 100644 3bc3974... f0f316f... M	libgeda/src/s_menu.c

commit 2c5dfb6823faeb76004c8b6afdcb2ed3cdf483c5
Author: Patrick Bernaud <b-patrick@xxxxxxxxxx>
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.

:100644 100644 3c9f9f2... bbd3c68... M	libgeda/include/prototype.h
:100644 100644 ccc64ab... 7b8f673... M	libgeda/src/o_complex_basic.c

commit eb0846161bf916d68280bddf2d7dd244e0fe6002
Author: Patrick Bernaud <b-patrick@xxxxxxxxxx>
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.

:100644 100644 83b3baf... 116b652... M	libgeda/src/s_hierarchy.c

=========
 Changes
=========

commit e5d57e6811046c1899dd32d5c705accfe1857574
Author: Patrick Bernaud <b-patrick@xxxxxxxxxx>
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.

diff --git a/libgeda/src/s_menu.c b/libgeda/src/s_menu.c
index 3bc3974..f0f316f 100644
--- a/libgeda/src/s_menu.c
+++ b/libgeda/src/s_menu.c
@@ -97,6 +97,7 @@ int s_menu_add_entry(char *new_menu, SCM menu_items)
   }
 
   menu[menu_index].menu_name = g_strdup (new_menu);
+  scm_gc_protect_object (menu_items);
   menu[menu_index].menu_items = menu_items;
   menu_index++;
   
@@ -132,6 +133,7 @@ void s_menu_free()
     if (menu[i].menu_name) {
       g_free(menu[i].menu_name);
       menu[i].menu_name = NULL;
+      scm_gc_unprotect_object (menu[i].menu_items);
     }		
   }
 

commit 2c5dfb6823faeb76004c8b6afdcb2ed3cdf483c5
Author: Patrick Bernaud <b-patrick@xxxxxxxxxx>
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.

diff --git a/libgeda/include/prototype.h b/libgeda/include/prototype.h
index 3c9f9f2..bbd3c68 100644
--- a/libgeda/include/prototype.h
+++ b/libgeda/include/prototype.h
@@ -194,7 +194,7 @@ OBJECT *o_complex_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		      int x, int y, int angle, int mirror, 
 		      const CLibSymbol *clib_sym, const gchar *basename,
 		      int selectable, int attribute_promotion);
-OBJECT *o_complex_add_embedded(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int angle, const gchar *basename, int selectable);
+OBJECT *o_complex_add_embedded(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int angle, int mirror, const gchar *basename, int selectable);
 void o_complex_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
 void o_complex_set_filename(TOPLEVEL *toplevel, const char *basename);
 void o_complex_free_filename(TOPLEVEL *toplevel);
diff --git a/libgeda/src/o_complex_basic.c b/libgeda/src/o_complex_basic.c
index ccc64ab..7b8f673 100644
--- a/libgeda/src/o_complex_basic.c
+++ b/libgeda/src/o_complex_basic.c
@@ -615,7 +615,7 @@ OBJECT *o_complex_add(TOPLEVEL *toplevel, OBJECT *object_list,
  *
  */
 OBJECT *o_complex_add_embedded(TOPLEVEL *toplevel, OBJECT *object_list,
-			       char type, int color, int x, int y, int angle,
+			       char type, int color, int x, int y, int angle, int mirror,
 			       const gchar *basename, int selectable)
 {
   OBJECT *prim_objs=NULL;
@@ -629,7 +629,7 @@ OBJECT *o_complex_add_embedded(TOPLEVEL *toplevel, OBJECT *object_list,
   new_node->complex->y = y;
 
   new_node->complex->angle = angle;
-  new_node->complex->mirror = 0;
+  new_node->complex->mirror = mirror;
 	
   new_node->complex_basename = g_strdup(basename);
 
@@ -732,7 +732,7 @@ OBJECT *o_complex_read(TOPLEVEL *toplevel, OBJECT *object_list,
     
   object_list = o_complex_add_embedded(toplevel,
                                        object_list, type, 
-                                       WHITE, x1, y1, angle,
+                                       WHITE, x1, y1, angle, mirror,
                                        basename + 8, 
                                        selectable);
   } else {
@@ -908,6 +908,7 @@ OBJECT *o_complex_copy_embedded(TOPLEVEL *toplevel, OBJECT *list_tail,
                                    color,
                                    o_current->complex->x, o_current->complex->y, 
                                    o_current->complex->angle, 
+                                   o_current->complex->mirror,
                                    o_current->complex_basename, 
                                    selectable); 
   /* deal with stuff that has changed */

commit eb0846161bf916d68280bddf2d7dd244e0fe6002
Author: Patrick Bernaud <b-patrick@xxxxxxxxxx>
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.

diff --git a/libgeda/src/s_hierarchy.c b/libgeda/src/s_hierarchy.c
index 83b3baf..116b652 100644
--- a/libgeda/src/s_hierarchy.c
+++ b/libgeda/src/s_hierarchy.c
@@ -75,7 +75,9 @@ int s_hierarchy_down_schematic_single(TOPLEVEL *toplevel,
   switch (flag) {
     case HIERARCHY_NORMAL_LOAD:
     {
-      found = s_page_search (toplevel, string);
+      gchar *filename = f_normalize_filename (string);
+      found = s_page_search (toplevel, filename);
+      g_free (filename);
       
       if (found) {
 	/* check whether this page is in the parents list */




_______________________________________________
geda-cvs mailing list
geda-cvs@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-cvs