Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 173967 Details for
Bug 249485
gnome-extra/nautilus-cd-burner-2.24.0 - support for iso level 4 request
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
nautilus-isolevel4.patch
nautilus-isolevel4.patch (text/plain), 11.51 KB, created by
Jimmy.Jazz
on 2008-12-01 14:12:42 UTC
(
hide
)
Description:
nautilus-isolevel4.patch
Filename:
MIME Type:
Creator:
Jimmy.Jazz
Created:
2008-12-01 14:12:42 UTC
Size:
11.51 KB
patch
obsolete
>--- ./src/make-iso.c.orig 2008-10-16 20:13:44.000000000 +0200 >+++ ./src/make-iso.c 2008-10-17 13:34:38.000000000 +0200 >@@ -313,6 +313,26 @@ > return (res == GTK_RESPONSE_OK); > } > >+static gboolean >+ask_enable_isolevel4 (GtkWindow *parent) >+{ >+ GtkWidget *dialog; >+ int res; >+ >+ dialog = gtk_message_dialog_new (parent, >+ GTK_DIALOG_DESTROY_WITH_PARENT, >+ GTK_MESSAGE_QUESTION, >+ GTK_BUTTONS_OK_CANCEL, >+ _("Enable iso level 4?")); >+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), >+ "%s", >+ _("Some files don't have a suitable name for a iso9660 level 3 compatible CD.\nDo you want to continue with an iso level 4 CD format ?")); >+ gtk_window_set_title (GTK_WINDOW (dialog), _("ISO level 4 compatibility")); >+ res = gtk_dialog_run (GTK_DIALOG (dialog)); >+ gtk_widget_destroy (dialog); >+ return (res == GTK_RESPONSE_OK); >+} >+ > struct graft_state { > GPtrArray *graft_list; > char *emptydir; >@@ -851,7 +871,7 @@ > } > g_free (standard_error); > } >- >+ supported = FALSE; > return supported; > } > >@@ -949,6 +969,7 @@ > guint64 *size, > gboolean *use_joliet_out, > gboolean *use_udf, >+ gboolean *use_isolevel4, > GError **error) > { > GPtrArray *argv; >@@ -962,6 +983,7 @@ > gboolean result; > > use_joliet = TRUE; >+ use_isolevel4 = FALSE; > argv = NULL; > filelist = create_temp_graft_file (graft); > iso_size = 0; >@@ -974,8 +996,16 @@ > > g_ptr_array_add (argv, "mkisofs"); > g_ptr_array_add (argv, "-r"); >+ g_ptr_array_add (argv, "-hide-rr-moved"); >+ g_ptr_array_add (argv, "-l"); >+ if (use_isolevel4) { >+ g_ptr_array_add (argv, "-iso-level"); >+ g_ptr_array_add (argv, "4"); >+ g_ptr_array_add (argv, "-gui"); >+ } > if (use_joliet) { > g_ptr_array_add (argv, "-J"); >+ g_ptr_array_add (argv, "-joliet-long"); > } > if (use_udf) { > g_ptr_array_add (argv, "-udf"); >@@ -1043,6 +1073,26 @@ > } > } > >+ if (exit_status != 0 && !use_isolevel4) { >+ if (strstr (stderr_data, "iso level 3 format failed.") != NULL) { >+ g_free (stdout_data); >+ g_free (stderr_data); >+ stdout_data = NULL; >+ stderr_data = NULL; >+ if (ask_enable_isolevel4 (NULL)) { >+ use_isolevel4 = TRUE; >+ goto retry; >+ } else { >+ g_set_error (error, >+ NAUTILUS_BURN_ISO_ERROR, >+ NAUTILUS_BURN_ISO_ERROR_GENERAL, >+ _("The operation was cancelled by the user.")); >+ result = FALSE; >+ goto done; >+ } >+ } >+ } >+ > iso_size = (guint64)atol (stdout_data) * 2048 ; /* mkisofs reports blocks of 2048 bytes */ > > result = TRUE; >@@ -1191,6 +1241,7 @@ > guint64 iso_size; > goffset size; > gboolean use_joliet; >+ gboolean use_isolevel4; > gboolean use_udf = FALSE; > int result = NAUTILUS_BURN_ISO_RESULT_ERROR; > char *dirname; >@@ -1201,6 +1252,7 @@ > filelist = create_temp_graft_file (graft); > > use_joliet = (flags & NAUTILUS_BURN_IMAGE_CREATE_JOLIET); >+ use_isolevel4 = (flags & NAUTILUS_BURN_IMAGE_CREATE_ISOLEVEL4); > > use_udf = (flags & NAUTILUS_BURN_IMAGE_CREATE_UDF); > >@@ -1220,7 +1272,7 @@ > iso->priv->filename = g_strdup (filename); > > sub_error = NULL; >- if (! nautilus_burn_iso_graft_get_info (graft, &iso_size, &use_joliet, &use_udf, &sub_error)) { >+ if (! nautilus_burn_iso_graft_get_info (graft, &iso_size, &use_joliet, &use_udf, &use_isolevel4, &sub_error)) { > g_propagate_error (error, sub_error); > return NAUTILUS_BURN_ISO_RESULT_ERROR; > } >@@ -1255,6 +1307,11 @@ > argv = g_ptr_array_new (); > g_ptr_array_add (argv, "mkisofs"); > g_ptr_array_add (argv, "-r"); >+ >+ if (use_isolevel4) { >+ g_ptr_array_add (argv, "-iso-level"); >+ g_ptr_array_add (argv, "4"); >+ } > if (use_joliet) { > g_ptr_array_add (argv, "-J"); > } >--- ./src/make-iso.h.orig 2008-10-16 20:13:44.000000000 +0200 >+++ ./src/make-iso.h 2008-10-16 20:17:58.000000000 +0200 >@@ -61,7 +61,8 @@ > * the Joliet structures, so there are many pitfalls with the current > * implementation. There is no UID/GID support, there is no POSIX > * permission support, there is no support for symlinks. */ >- NAUTILUS_BURN_IMAGE_CREATE_UDF = 1 << 3 >+ NAUTILUS_BURN_IMAGE_CREATE_UDF = 1 << 3, >+ NAUTILUS_BURN_IMAGE_CREATE_ISOLEVEL4 = 1 << 4 > } NautilusBurnImageCreateFlags; > > typedef enum { >@@ -111,6 +112,7 @@ > guint64 *size, > gboolean *use_joliet, > gboolean *use_udf, >+ gboolean *use_isolevel4, > GError **error); > > NautilusBurnIso * nautilus_burn_iso_new (void); >--- ./src/nautilus-burn-recorder.c.orig 2008-10-16 20:13:44.000000000 +0200 >+++ ./src/nautilus-burn-recorder.c 2008-10-17 13:34:18.000000000 +0200 >@@ -1074,7 +1074,7 @@ > } > g_free (standard_error); > } >- >+ supported = FALSE; > return supported; > } > >@@ -1142,14 +1142,6 @@ > g_ptr_array_add (argv, "-use-the-force-luke=tty"); > } > >- filelist = NULL; >- if (t->type == NAUTILUS_BURN_RECORDER_TRACK_TYPE_GRAFT_LIST) { >- filelist = create_temp_graft_file (t->contents.graft_list.entries); >- >- g_ptr_array_add (argv, "-graft-points"); >- g_ptr_array_add (argv, "-path-list"); >- g_ptr_array_add (argv, filelist); >- } > > g_ptr_array_add (argv, "-Z"); > >@@ -1164,19 +1156,40 @@ > if (ncb_mkisofs_supports_utf8 ()) { > g_ptr_array_add (argv, "-input-charset"); > g_ptr_array_add (argv, "utf8"); >+ > } > > g_ptr_array_add (argv, "-r"); >+ g_ptr_array_add (argv, "-hide-rr-moved"); >+ g_ptr_array_add (argv, "-l"); >+ >+ if (flags & NAUTILUS_BURN_RECORDER_WRITE_ISOLEVEL4) { >+ g_ptr_array_add (argv, "-iso-level"); >+ g_ptr_array_add (argv, "4"); >+ g_ptr_array_add (argv, "-gui"); >+ } > > if (flags & NAUTILUS_BURN_RECORDER_WRITE_JOLIET) { > g_ptr_array_add (argv, "-J"); >+ g_ptr_array_add (argv, "-joliet-long"); > } > if (flags & NAUTILUS_BURN_RECORDER_WRITE_UDF) { > g_ptr_array_add (argv, "-udf"); > } > >- g_ptr_array_add (argv, "-V"); >- g_ptr_array_add (argv, (char *) t->contents.graft_list.label); >+ if (t->contents.graft_list.label) { >+ g_ptr_array_add (argv, "-V"); >+ g_ptr_array_add (argv, (char *) t->contents.graft_list.label); >+ } >+ } >+ >+ filelist = NULL; >+ if (t->type == NAUTILUS_BURN_RECORDER_TRACK_TYPE_GRAFT_LIST) { >+ filelist = create_temp_graft_file (t->contents.graft_list.entries); >+ >+ g_ptr_array_add (argv, "-graft-points"); >+ g_ptr_array_add (argv, "-path-list"); >+ g_ptr_array_add (argv, filelist); > } > > g_ptr_array_add (argv, NULL); >@@ -1586,7 +1599,10 @@ > if (media_type != NAUTILUS_BURN_MEDIA_TYPE_DVD_PLUS_RW) { > blank_str = g_strdup_printf ("-blank%s", (type == NAUTILUS_BURN_RECORDER_BLANK_FAST) ? "" : "=full"); > g_ptr_array_add (argv, blank_str); >- } >+ } else { >+ blank_str = g_strdup_printf ("-force%s", (type == NAUTILUS_BURN_RECORDER_BLANK_FAST) ? "" : "=full"); >+ g_ptr_array_add (argv, blank_str); >+ } > > dev_str = g_strdup_printf ("%s", nautilus_burn_drive_get_device (drive)); > g_ptr_array_add (argv, dev_str); >@@ -1622,12 +1638,13 @@ > return FALSE; > } > >- if (type == NAUTILUS_BURN_MEDIA_TYPE_DVDRW >- || type == NAUTILUS_BURN_MEDIA_TYPE_DVD_PLUS_RW) { >- return TRUE; >+ if (type != NAUTILUS_BURN_MEDIA_TYPE_CDRW >+ && type != NAUTILUS_BURN_MEDIA_TYPE_CDR >+ && type != NAUTILUS_BURN_MEDIA_TYPE_CD) { >+ return FALSE; > } > >- return FALSE; >+ return TRUE; > } > > /** >--- ./src/nautilus-burn-recorder.h.orig 2008-10-16 20:59:38.000000000 +0200 >+++ ./src/nautilus-burn-recorder.h 2008-10-16 21:00:19.000000000 +0200 >@@ -96,7 +96,8 @@ > NAUTILUS_BURN_RECORDER_WRITE_OVERBURN = 1 << 5, > NAUTILUS_BURN_RECORDER_WRITE_BURNPROOF = 1 << 6, > NAUTILUS_BURN_RECORDER_WRITE_JOLIET = 1 << 7, >- NAUTILUS_BURN_RECORDER_WRITE_UDF = 1 << 8 >+ NAUTILUS_BURN_RECORDER_WRITE_UDF = 1 << 8, >+ NAUTILUS_BURN_RECORDER_WRITE_ISOLEVEL4 = 1 << 9 > } NautilusBurnRecorderWriteFlags; > > typedef enum { >--- ./src/ncb-operation.c.orig 2008-10-16 20:13:44.000000000 +0200 >+++ ./src/ncb-operation.c 2008-10-16 20:59:30.000000000 +0200 >@@ -1419,13 +1419,14 @@ > && NAUTILUS_BURN_DRIVE_MEDIA_TYPE_IS_DVD (media_type)) { > GList *l; > gboolean use_joliet; >+ gboolean use_isolevel4; > guint64 size; > > for (l = graft->remove_files; l != NULL; l = l->next) { > ncb_operation_temp_files_add (operation, (char *)l->data); > } > >- if (! nautilus_burn_iso_graft_get_info (graft, &size, &use_joliet, &use_udf, error)) { >+ if (! nautilus_burn_iso_graft_get_info (graft, &size, &use_joliet, &use_udf, &use_isolevel4, error)) { > nautilus_burn_iso_graft_free (graft, TRUE); > goto done; > } >@@ -1436,6 +1437,9 @@ > if (use_udf) { > operation->priv->record_flags |= NAUTILUS_BURN_RECORDER_WRITE_UDF; > } >+ if (use_isolevel4) { >+ operation->priv->record_flags |= NAUTILUS_BURN_RECORDER_WRITE_ISOLEVEL4; >+ } > > track = create_graft_track (graft, label); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 249485
: 173967 |
173968