brasero r1843 - in trunk: . src src/plugins/cdrdao
- From: philippr svn gnome org
- To: svn-commits-list gnome org
- Subject: brasero r1843 - in trunk: . src src/plugins/cdrdao
- Date: Thu, 29 Jan 2009 15:20:50 +0000 (UTC)
Author: philippr
Date: Thu Jan 29 15:20:50 2009
New Revision: 1843
URL: http://svn.gnome.org/viewvc/brasero?rev=1843&view=rev
Log:
2009-01-29 Philippe Rouquier <ykw localhost localdomain>
Try to fix #563204 â .CUE image path handling
and #555829 â Brasero doesn't set working directory properly when launched from Nautilus; fails with "cue file appears to be invalid"
Start cdrdao in the directory where the cue file is
* src/burn-process.c (brasero_process_start),
(brasero_process_set_working_directory),
(brasero_process_finalize):
* src/burn-process.h:
* src/plugins/cdrdao/burn-cdrdao.c
(brasero_cdrdao_set_argv_record):
Modified:
trunk/ChangeLog
trunk/src/burn-process.c
trunk/src/burn-process.h
trunk/src/plugins/cdrdao/burn-cdrdao.c
Modified: trunk/src/burn-process.c
==============================================================================
--- trunk/src/burn-process.c (original)
+++ trunk/src/burn-process.c Thu Jan 29 15:20:50 2009
@@ -75,6 +75,8 @@
GIOChannel *std_error;
GString *err_buffer;
+ gchar *working_directory;
+
GPid pid;
gint io_out;
gint io_err;
@@ -597,7 +599,12 @@
if (result != BRASERO_BURN_OK)
return result;
- BRASERO_JOB_LOG (process, "launching command");
+ if (priv->working_directory) {
+ BRASERO_JOB_LOG (process, "Launching command in %s", priv->working_directory);
+ }
+ else {
+ BRASERO_JOB_LOG (process, "Launching command");
+ }
klass = BRASERO_PROCESS_GET_CLASS (process);
@@ -606,7 +613,7 @@
brasero_job_get_fd_out (BRASERO_JOB (process), NULL) != BRASERO_BURN_OK);
priv->return_status = 0;
- if (!g_spawn_async_with_pipes (NULL,
+ if (!g_spawn_async_with_pipes (priv->working_directory,
(gchar **) priv->argv->pdata,
(gchar **) envp,
G_SPAWN_SEARCH_PATH|
@@ -769,6 +776,20 @@
return result;
}
+void
+brasero_process_set_working_directory (BraseroProcess *process,
+ const gchar *directory)
+{
+ BraseroProcessPrivate *priv = BRASERO_PROCESS_PRIVATE (process);
+
+ if (priv->working_directory) {
+ g_free (priv->working_directory);
+ priv->working_directory = NULL;
+ }
+
+ priv->working_directory = g_strdup (directory);
+}
+
static void
brasero_process_finalize (GObject *object)
{
@@ -825,6 +846,11 @@
priv->error = NULL;
}
+ if (priv->working_directory) {
+ g_free (priv->working_directory);
+ priv->working_directory = NULL;
+ }
+
G_OBJECT_CLASS (parent_class)->finalize (object);
}
Modified: trunk/src/burn-process.h
==============================================================================
--- trunk/src/burn-process.h (original)
+++ trunk/src/burn-process.h Thu Jan 29 15:20:50 2009
@@ -81,4 +81,8 @@
brasero_process_check_path (const gchar *name,
gchar **error);
+void
+brasero_process_set_working_directory (BraseroProcess *process,
+ const gchar *directory);
+
#endif /* PROCESS_H */
Modified: trunk/src/plugins/cdrdao/burn-cdrdao.c
==============================================================================
--- trunk/src/plugins/cdrdao/burn-cdrdao.c (original)
+++ trunk/src/plugins/cdrdao/burn-cdrdao.c Thu Jan 29 15:20:50 2009
@@ -352,8 +352,14 @@
brasero_job_get_current_track (BRASERO_JOB (cdrdao), &track);
- if (type.subtype.img_format == BRASERO_IMAGE_FORMAT_CUE)
+ if (type.subtype.img_format == BRASERO_IMAGE_FORMAT_CUE) {
+ gchar *parent;
+
cuepath = brasero_track_get_toc_source (track, FALSE);
+ parent = g_path_get_dirname (cuepath);
+ brasero_process_set_working_directory (BRASERO_PROCESS (cdrdao), parent);
+ g_free (parent);
+ }
else if (type.subtype.img_format == BRASERO_IMAGE_FORMAT_CDRDAO)
cuepath = brasero_track_get_toc_source (track, FALSE);
else
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]