[brasero] Try to fix a couple of problems between libisofs and symlinks



commit f609343d3a5478b0511176a44382ebfa76644dcf
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date:   Thu Jul 2 11:24:47 2009 +0200

    Try to fix a couple of problems between libisofs and symlinks
    when 2 symlinks in a directory point to the same target there is an error since mkisofs uses the target name and not the symlink name to check whether the name already exists

 plugins/libburnia/burn-libisofs.c |   24 +++++++++++-------------
 src/brasero-video-disc.c          |    3 ++-
 2 files changed, 13 insertions(+), 14 deletions(-)
---
diff --git a/plugins/libburnia/burn-libisofs.c b/plugins/libburnia/burn-libisofs.c
index e9c5f8e..c8ff8ca 100644
--- a/plugins/libburnia/burn-libisofs.c
+++ b/plugins/libburnia/burn-libisofs.c
@@ -1,3 +1,5 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+
 /***************************************************************************
  *            burn-libisofs.c
  *
@@ -674,24 +676,19 @@ brasero_libisofs_create_volume_thread (gpointer data)
 			 * children of the parent directory. If there is a
 			 * sibling destroy it. */
 			sibling = NULL;
-			iso_dir_find_children (ISO_DIR (parent),
-					       iso_new_find_conditions_name (path_name),
-					       &sibling);
-			if (sibling) {
-				IsoNode *node;
+			iso_dir_get_children (ISO_DIR (parent), &sibling);
 
-				BRASERO_JOB_LOG (self,
-						 "Looking for sibling for %s",
-						 path_name);
+			IsoNode *node;
+			while (iso_dir_iter_next (sibling, &node) == 1) {
+				const gchar *iso_name;
 
-				while (iso_dir_iter_next (sibling, &node) == 1) {
+				/* check if it has the same name */
+				iso_name = iso_node_get_name (node);
+				if (iso_name && !strcmp (iso_name, path_name))
 					BRASERO_JOB_LOG (self,
 							 "Found sibling for %s: removing %x",
 							 path_name,
 							 iso_dir_iter_remove (sibling));
-				}
-
-				iso_dir_iter_free (sibling);
 			}
 
 			if  (is_directory) {
@@ -733,8 +730,9 @@ brasero_libisofs_create_volume_thread (gpointer data)
 				IsoNode *node;
 				int err;
 
-				err = iso_tree_add_node (image,
+				err = iso_tree_add_new_node (image,
 							 ISO_DIR (parent),
+				                         path_name,
 							 local_path,
 							 &node);
 				if (err < 0) {
diff --git a/src/brasero-video-disc.c b/src/brasero-video-disc.c
index 5fca219..a571e66 100644
--- a/src/brasero-video-disc.c
+++ b/src/brasero-video-disc.c
@@ -46,6 +46,7 @@
 #include "brasero-song-properties.h"
 #include "brasero-session-cfg.h"
 #include "brasero-track-stream.h"
+#include "brasero-video-options.h"
 
 typedef struct _BraseroVideoDiscPrivate BraseroVideoDiscPrivate;
 struct _BraseroVideoDiscPrivate
@@ -1146,7 +1147,7 @@ brasero_video_disc_init (BraseroVideoDisc *object)
 
 	priv = BRASERO_VIDEO_DISC_PRIVATE (object);
 
-	mainbox = gtk_vbox_new (FALSE, 12);
+	mainbox = gtk_vbox_new (FALSE, 0);
 	gtk_widget_show (mainbox);
 	gtk_box_pack_start (GTK_BOX (object), mainbox, TRUE, TRUE, 0);
 



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