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.
---
 libgeda/include/prototype.h   |    2 +-
 libgeda/src/o_complex_basic.c |    7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

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 */
-- 
1.5.6




_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to