Author: colossus Date: 2006-08-23 11:38:59 +0000 (Wed, 23 Aug 2006) New Revision: 22853
Modified: xarchiver/trunk/ChangeLog xarchiver/trunk/src/add_dialog.c xarchiver/trunk/src/add_dialog.h xarchiver/trunk/src/bzip2.c xarchiver/trunk/src/bzip2.h xarchiver/trunk/src/callbacks.c xarchiver/trunk/src/gzip.c xarchiver/trunk/src/main.c xarchiver/trunk/src/rpm.c xarchiver/trunk/src/rpm.h Log: Alphabetically sorted archive extensions in main.c. Updated ChangeLog. Removed ability to compress a single files with bzip2/gzip since it's buggy to do it from the GUI. Modified code to decompress bzip2/gzip files. Moved some functions from bzip2.c to rpm.c since they are not used because of the above modification in bzip2.c Modified: xarchiver/trunk/ChangeLog =================================================================== --- xarchiver/trunk/ChangeLog 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/ChangeLog 2006-08-23 11:38:59 UTC (rev 22853) @@ -3,11 +3,11 @@ xx/06/06 - 0.4: - Added symbolic link column in tar/tar.bz2/tar.gz and RPM archives. - Ability to extract files inside RPM archives without the directory they are contained in. - - View ability works with files inside RPM archives nested in more than one directory. + - View ability works now with files inside RPM archives nested in more than one directory. - Increased speed ! Xarchiver is faster than ever when opening archives. - The GUI looks neat and clean respect to the 0.3.3 release. - Added a brand extract and add dialog supporting most of the archiver command line options. - - Added Drag and Drop from and to Xarchiver window by using the XDS protocol. + - Added drag and drop from and to Xarchiver window by using the XDS protocol. - Added the (in)famous cmd-line switches; see xarchiver -? for details. - Added a Stop button who cancels the current operation or you can use the ESC key. - Added the ability to test archives. Modified: xarchiver/trunk/src/add_dialog.c =================================================================== --- xarchiver/trunk/src/add_dialog.c 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/src/add_dialog.c 2006-08-23 11:38:59 UTC (rev 22853) @@ -40,10 +40,6 @@ gtk_window_set_transient_for ( GTK_WINDOW (add_dialog->dialog1) , GTK_WINDOW (MainWindow) ); gtk_window_set_resizable (GTK_WINDOW (add_dialog->dialog1), FALSE); - if (archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_BZIP2) - add_dialog->one_file = TRUE; - else - add_dialog->one_file = FALSE; add_dialog->add_option_tooltip = gtk_tooltips_new (); add_dialog->dialog_vbox1 = GTK_DIALOG (add_dialog->dialog1)->vbox; gtk_widget_show (add_dialog->dialog_vbox1); @@ -100,23 +96,20 @@ gtk_widget_show (add_dialog->vbox8); gtk_box_pack_start (GTK_BOX (add_dialog->hbox1), add_dialog->vbox8, TRUE, FALSE, 0); - if ( ! add_dialog->one_file) - { - add_dialog->files_radio = gtk_radio_button_new_with_mnemonic (NULL, _("Files")); - gtk_widget_show (add_dialog->files_radio); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox8), add_dialog->files_radio, FALSE, FALSE, 0); - gtk_button_set_focus_on_click (GTK_BUTTON (add_dialog->files_radio), FALSE); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (add_dialog->files_radio), add_dialog->file_dir_radio_group); - add_dialog->file_dir_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (add_dialog->files_radio)); + add_dialog->files_radio = gtk_radio_button_new_with_mnemonic (NULL, _("Files")); + gtk_widget_show (add_dialog->files_radio); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox8), add_dialog->files_radio, FALSE, FALSE, 0); + gtk_button_set_focus_on_click (GTK_BUTTON (add_dialog->files_radio), FALSE); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (add_dialog->files_radio), add_dialog->file_dir_radio_group); + add_dialog->file_dir_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (add_dialog->files_radio)); - add_dialog->directories_radio = gtk_radio_button_new_with_mnemonic (NULL, _("Directories")); - gtk_widget_show (add_dialog->directories_radio); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox8), add_dialog->directories_radio, FALSE, FALSE, 0); - gtk_button_set_focus_on_click (GTK_BUTTON (add_dialog->directories_radio), FALSE); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (add_dialog->directories_radio), add_dialog->file_dir_radio_group); - add_dialog->file_dir_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (add_dialog->directories_radio)); - g_signal_connect (G_OBJECT (add_dialog->files_radio),"toggled",G_CALLBACK (toggle_recurse) , add_dialog); - } + add_dialog->directories_radio = gtk_radio_button_new_with_mnemonic (NULL, _("Directories")); + gtk_widget_show (add_dialog->directories_radio); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox8), add_dialog->directories_radio, FALSE, FALSE, 0); + gtk_button_set_focus_on_click (GTK_BUTTON (add_dialog->directories_radio), FALSE); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (add_dialog->directories_radio), add_dialog->file_dir_radio_group); + add_dialog->file_dir_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (add_dialog->directories_radio)); + g_signal_connect (G_OBJECT (add_dialog->files_radio),"toggled",G_CALLBACK (toggle_recurse) , add_dialog); add_dialog->hbuttonbox2 = gtk_hbutton_box_new (); gtk_widget_show (add_dialog->hbuttonbox2); @@ -139,157 +132,152 @@ GTK_WIDGET_SET_FLAGS (add_dialog->add_files_button, GTK_CAN_DEFAULT); g_signal_connect ( (gpointer) add_dialog->add_files_button, "clicked", G_CALLBACK (xa_select_files_to_add) , add_dialog ); - if ( add_dialog->one_file) - add_dialog->label3 = gtk_label_new (_("<b>File to add </b>")); - else - add_dialog->label3 = gtk_label_new (_("<b>Files and directories to add </b>")); + add_dialog->label3 = gtk_label_new (_("<b>Files and directories to add </b>")); gtk_widget_show (add_dialog->label3); gtk_frame_set_label_widget (GTK_FRAME (add_dialog->frame5), add_dialog->label3); gtk_label_set_use_markup (GTK_LABEL (add_dialog->label3), TRUE); - if ( ! add_dialog->one_file ) - { - add_dialog->frame4 = gtk_frame_new (NULL); - gtk_widget_show (add_dialog->frame4); - gtk_box_pack_start (GTK_BOX (add_dialog->dialog_vbox1), add_dialog->frame4, TRUE, FALSE, 0); + add_dialog->frame4 = gtk_frame_new (NULL); + gtk_widget_show (add_dialog->frame4); + gtk_box_pack_start (GTK_BOX (add_dialog->dialog_vbox1), add_dialog->frame4, TRUE, FALSE, 0); - add_dialog->alignment4 = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_widget_show (add_dialog->alignment4); - gtk_container_add (GTK_CONTAINER (add_dialog->frame4), add_dialog->alignment4); - gtk_alignment_set_padding (GTK_ALIGNMENT (add_dialog->alignment4), 0, 0, 12, 0); + add_dialog->alignment4 = gtk_alignment_new (0.5, 0.5, 1, 1); + gtk_widget_show (add_dialog->alignment4); + gtk_container_add (GTK_CONTAINER (add_dialog->frame4), add_dialog->alignment4); + gtk_alignment_set_padding (GTK_ALIGNMENT (add_dialog->alignment4), 0, 0, 12, 0); - add_dialog->vbox6 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (add_dialog->vbox6); - gtk_container_add (GTK_CONTAINER (add_dialog->alignment4), add_dialog->vbox6); + add_dialog->vbox6 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (add_dialog->vbox6); + gtk_container_add (GTK_CONTAINER (add_dialog->alignment4), add_dialog->vbox6); - add_dialog->recurse = gtk_check_button_new_with_mnemonic (_("Recurse subdirectories")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->recurse), archive->add_recurse); - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(add_dialog->files_radio))) - gtk_widget_set_sensitive (add_dialog->recurse, FALSE); - gtk_widget_show (add_dialog->recurse); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->recurse, FALSE, FALSE, 0); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->recurse , _("Include everything in the directory recursively starting from the current directory."), NULL); + add_dialog->recurse = gtk_check_button_new_with_mnemonic (_("Recurse subdirectories")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->recurse), archive->add_recurse); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(add_dialog->files_radio))) + gtk_widget_set_sensitive (add_dialog->recurse, FALSE); + gtk_widget_show (add_dialog->recurse); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->recurse, FALSE, FALSE, 0); + gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->recurse , _("Include everything in the directory recursively starting from the current directory."), NULL); - if ( (archive->type == XARCHIVETYPE_RAR) || (archive->type == XARCHIVETYPE_7ZIP && archive->nr_of_files == 0 && archive->nr_of_dirs == 0)) - { - add_dialog->solid_archive = gtk_check_button_new_with_mnemonic (_("Generate a solid archive")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->solid_archive), archive->solid_archive); - gtk_widget_show (add_dialog->solid_archive); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->solid_archive, FALSE, FALSE, 0); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->solid_archive , _("In a solid archive the files are grouped together featuring a better compression ratio."), NULL); - } + if ( (archive->type == XARCHIVETYPE_RAR) || (archive->type == XARCHIVETYPE_7ZIP && archive->nr_of_files == 0 && archive->nr_of_dirs == 0)) + { + add_dialog->solid_archive = gtk_check_button_new_with_mnemonic (_("Generate a solid archive")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->solid_archive), archive->solid_archive); + gtk_widget_show (add_dialog->solid_archive); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->solid_archive, FALSE, FALSE, 0); + gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->solid_archive , _("In a solid archive the files are grouped together featuring a better compression ratio."), NULL); + } - if (archive->type == XARCHIVETYPE_TAR || archive->type == XARCHIVETYPE_TAR_GZ || archive->type == XARCHIVETYPE_TAR_BZ2 || archive->type == XARCHIVETYPE_RAR || archive->type == XARCHIVETYPE_ARJ || archive->type == XARCHIVETYPE_ZIP) - { - add_dialog->remove_files = gtk_check_button_new_with_mnemonic (_("Remove files after adding")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->remove_files), archive->remove_files); - gtk_widget_show (add_dialog->remove_files); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->remove_files, FALSE, FALSE, 0); - } + if (archive->type == XARCHIVETYPE_TAR || archive->type == XARCHIVETYPE_TAR_GZ || archive->type == XARCHIVETYPE_TAR_BZ2 || archive->type == XARCHIVETYPE_RAR || archive->type == XARCHIVETYPE_ARJ || archive->type == XARCHIVETYPE_ZIP) + { + add_dialog->remove_files = gtk_check_button_new_with_mnemonic (_("Remove files after adding")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->remove_files), archive->remove_files); + gtk_widget_show (add_dialog->remove_files); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->remove_files, FALSE, FALSE, 0); + } - if (archive->type != XARCHIVETYPE_7ZIP && archive->type != XARCHIVETYPE_TAR && archive->type != XARCHIVETYPE_TAR_GZ && archive->type != XARCHIVETYPE_TAR_BZ2) - { - add_dialog->add_full_path = gtk_check_button_new_with_mnemonic (_("Do not add file paths")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->add_full_path), archive->full_path); - gtk_widget_show (add_dialog->add_full_path); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->add_full_path, FALSE, FALSE, 0); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->add_full_path , _("Store just the name of a file without its directory names."), NULL); + if (archive->type != XARCHIVETYPE_7ZIP && archive->type != XARCHIVETYPE_TAR && archive->type != XARCHIVETYPE_TAR_GZ && archive->type != XARCHIVETYPE_TAR_BZ2) + { + add_dialog->add_full_path = gtk_check_button_new_with_mnemonic (_("Do not add file paths")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->add_full_path), archive->full_path); + gtk_widget_show (add_dialog->add_full_path); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->add_full_path, FALSE, FALSE, 0); + gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->add_full_path , _("Store just the name of a file without its directory names."), NULL); - add_dialog->freshen = gtk_check_button_new_with_mnemonic (_("Freshen an existing entry in the archive")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->freshen), archive->freshen); - gtk_widget_show (add_dialog->freshen); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->freshen, FALSE, FALSE, 0); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->freshen , _("This option affects the archive only if it has been modified more recently than the version already in the archive; unlike the update option it will not add files that are not already in the archive."), NULL ); - g_signal_connect (G_OBJECT (add_dialog->freshen),"toggled",G_CALLBACK (add_fresh_update_toggled_cb) , add_dialog); - } + add_dialog->freshen = gtk_check_button_new_with_mnemonic (_("Freshen an existing entry in the archive")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->freshen), archive->freshen); + gtk_widget_show (add_dialog->freshen); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->freshen, FALSE, FALSE, 0); + gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->freshen , _("This option affects the archive only if it has been modified more recently than the version already in the archive; unlike the update option it will not add files that are not already in the archive."), NULL ); + g_signal_connect (G_OBJECT (add_dialog->freshen),"toggled",G_CALLBACK (add_fresh_update_toggled_cb) , add_dialog); + } - add_dialog->update = gtk_check_button_new_with_mnemonic (_("Update an existing entry in the archive")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->update), archive->update); - gtk_widget_show (add_dialog->update); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->update, FALSE, FALSE, 0); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->update, _("This option will add any new files and update any files which have been modified since the archive was last created/modified."), NULL ); + add_dialog->update = gtk_check_button_new_with_mnemonic (_("Update an existing entry in the archive")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (add_dialog->update), archive->update); + gtk_widget_show (add_dialog->update); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->update, FALSE, FALSE, 0); + gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->update, _("This option will add any new files and update any files which have been modified since the archive was last created/modified."), NULL ); - if (archive->type != XARCHIVETYPE_7ZIP) - g_signal_connect (G_OBJECT (add_dialog->update),"toggled",G_CALLBACK (add_update_fresh_toggled_cb) , add_dialog); + if (archive->type != XARCHIVETYPE_7ZIP) + g_signal_connect (G_OBJECT (add_dialog->update),"toggled",G_CALLBACK (add_update_fresh_toggled_cb) , add_dialog); - if (archive->type != XARCHIVETYPE_TAR && archive->type != XARCHIVETYPE_TAR_GZ && archive->type != XARCHIVETYPE_TAR_BZ2) + if (archive->type != XARCHIVETYPE_TAR && archive->type != XARCHIVETYPE_TAR_GZ && archive->type != XARCHIVETYPE_TAR_BZ2) + { + if (archive->type == XARCHIVETYPE_7ZIP) { - if (archive->type == XARCHIVETYPE_7ZIP) - { - compression_msg = _("0 = no compression, 5 is default, 9 = best compression but slowest"); - default_value = 5; - max_value = 9; - } + compression_msg = _("0 = no compression, 5 is default, 9 = best compression but slowest"); + default_value = 5; + max_value = 9; + } - else if (archive->type == XARCHIVETYPE_ZIP) - { - compression_msg = _("0 = no compression, 6 is default, 9 = best compression but slowest"); - default_value = 6; - max_value = 9; - } + else if (archive->type == XARCHIVETYPE_ZIP) + { + compression_msg = _("0 = no compression, 6 is default, 9 = best compression but slowest"); + default_value = 6; + max_value = 9; + } - else if (archive->type == XARCHIVETYPE_RAR) - { - compression_msg = _("0 = no compression, 3 is default, 5 = best compression but slowest"); - default_value = 3; - max_value = 5; - } + else if (archive->type == XARCHIVETYPE_RAR) + { + compression_msg = _("0 = no compression, 3 is default, 5 = best compression but slowest"); + default_value = 3; + max_value = 5; + } - else if (archive->type == XARCHIVETYPE_ARJ) - { - compression_msg = _("0 = no compression, 1 is default, 4 = fastest but least compression."); - default_value = 1; - max_value = 4; - } + else if (archive->type == XARCHIVETYPE_ARJ) + { + compression_msg = _("0 = no compression, 1 is default, 4 = fastest but least compression."); + default_value = 1; + max_value = 4; + } - add_dialog->hbox3 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (add_dialog->hbox3); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->hbox3, TRUE, TRUE, 0); + add_dialog->hbox3 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (add_dialog->hbox3); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->hbox3, TRUE, TRUE, 0); - add_dialog->add_password = gtk_check_button_new_with_mnemonic (_("Password:")); - gtk_widget_show (add_dialog->add_password); - gtk_box_pack_start (GTK_BOX (add_dialog->hbox3), add_dialog->add_password, FALSE, FALSE, 0); - g_signal_connect (G_OBJECT (add_dialog->add_password), "toggled",G_CALLBACK (password_toggled_cb) , add_dialog); + add_dialog->add_password = gtk_check_button_new_with_mnemonic (_("Password:")); + gtk_widget_show (add_dialog->add_password); + gtk_box_pack_start (GTK_BOX (add_dialog->hbox3), add_dialog->add_password, FALSE, FALSE, 0); + g_signal_connect (G_OBJECT (add_dialog->add_password), "toggled",G_CALLBACK (password_toggled_cb) , add_dialog); - add_dialog->add_password_entry = gtk_entry_new (); - gtk_widget_show (add_dialog->add_password_entry); - gtk_box_pack_start (GTK_BOX (add_dialog->hbox3), add_dialog->add_password_entry, FALSE, FALSE, 0); - gtk_entry_set_visibility (GTK_ENTRY (add_dialog->add_password_entry), FALSE); - gtk_widget_set_sensitive (add_dialog->add_password_entry, FALSE); + add_dialog->add_password_entry = gtk_entry_new (); + gtk_widget_show (add_dialog->add_password_entry); + gtk_box_pack_start (GTK_BOX (add_dialog->hbox3), add_dialog->add_password_entry, FALSE, FALSE, 0); + gtk_entry_set_visibility (GTK_ENTRY (add_dialog->add_password_entry), FALSE); + gtk_widget_set_sensitive (add_dialog->add_password_entry, FALSE); - add_dialog->hbox2 = gtk_hbox_new (FALSE, 6); - gtk_widget_show (add_dialog->hbox2); - gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->hbox2, TRUE, TRUE, 0); - add_dialog->label4 = gtk_label_new (_("Compression level:")); - gtk_widget_show (add_dialog->label4); - gtk_box_pack_start (GTK_BOX (add_dialog->hbox2), add_dialog->label4, FALSE, FALSE, 0); + add_dialog->hbox2 = gtk_hbox_new (FALSE, 6); + gtk_widget_show (add_dialog->hbox2); + gtk_box_pack_start (GTK_BOX (add_dialog->vbox6), add_dialog->hbox2, TRUE, TRUE, 0); + add_dialog->label4 = gtk_label_new (_("Compression level:")); + gtk_widget_show (add_dialog->label4); + gtk_box_pack_start (GTK_BOX (add_dialog->hbox2), add_dialog->label4, FALSE, FALSE, 0); - if (archive->type == XARCHIVETYPE_7ZIP) - add_dialog->compression_value = gtk_adjustment_new (default_value, 0, max_value, 2, 2, 0); - else - add_dialog->compression_value = gtk_adjustment_new (default_value, 0, max_value, 0, 0, 0); + if (archive->type == XARCHIVETYPE_7ZIP) + add_dialog->compression_value = gtk_adjustment_new (default_value, 0, max_value, 2, 2, 0); + else + add_dialog->compression_value = gtk_adjustment_new (default_value, 0, max_value, 0, 0, 0); - add_dialog->compression_scale = gtk_hscale_new ( GTK_ADJUSTMENT (add_dialog->compression_value) ); - gtk_widget_show (add_dialog->compression_scale); - gtk_box_pack_start (GTK_BOX (add_dialog->hbox2), add_dialog->compression_scale, TRUE, TRUE, 0); - gtk_scale_set_value_pos (GTK_SCALE (add_dialog->compression_scale), GTK_POS_LEFT); - gtk_scale_set_digits (GTK_SCALE (add_dialog->compression_scale), 0); - if (archive->compression_level == 0) - archive->compression_level = default_value; - gtk_adjustment_set_value (GTK_ADJUSTMENT(add_dialog->compression_value), archive->compression_level); + add_dialog->compression_scale = gtk_hscale_new ( GTK_ADJUSTMENT (add_dialog->compression_value) ); + gtk_widget_show (add_dialog->compression_scale); + gtk_box_pack_start (GTK_BOX (add_dialog->hbox2), add_dialog->compression_scale, TRUE, TRUE, 0); + gtk_scale_set_value_pos (GTK_SCALE (add_dialog->compression_scale), GTK_POS_LEFT); + gtk_scale_set_digits (GTK_SCALE (add_dialog->compression_scale), 0); + if (archive->compression_level == 0) + archive->compression_level = default_value; + gtk_adjustment_set_value (GTK_ADJUSTMENT(add_dialog->compression_value), archive->compression_level); - if (archive->type == XARCHIVETYPE_ARJ) - gtk_range_set_inverted (GTK_RANGE (add_dialog->compression_scale), TRUE); - else if (archive->type == XARCHIVETYPE_7ZIP) - g_signal_connect (G_OBJECT (add_dialog->compression_value),"value-changed",G_CALLBACK (fix_adjustment_value), NULL); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->compression_scale, compression_msg, NULL ); - } - - add_dialog->label2 = gtk_label_new (_("<b>Options </b>")); - gtk_widget_show (add_dialog->label2); - gtk_frame_set_label_widget (GTK_FRAME (add_dialog->frame4), add_dialog->label2); - gtk_label_set_use_markup (GTK_LABEL (add_dialog->label2), TRUE); + if (archive->type == XARCHIVETYPE_ARJ) + gtk_range_set_inverted (GTK_RANGE (add_dialog->compression_scale), TRUE); + else if (archive->type == XARCHIVETYPE_7ZIP) + g_signal_connect (G_OBJECT (add_dialog->compression_value),"value-changed",G_CALLBACK (fix_adjustment_value), NULL); + gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->compression_scale, compression_msg, NULL ); } + + add_dialog->label2 = gtk_label_new (_("<b>Options </b>")); + gtk_widget_show (add_dialog->label2); + gtk_frame_set_label_widget (GTK_FRAME (add_dialog->frame4), add_dialog->label2); + gtk_label_set_use_markup (GTK_LABEL (add_dialog->label2), TRUE); + add_dialog->dialog_action_area2 = GTK_DIALOG (add_dialog->dialog1)->action_area; gtk_widget_show (add_dialog->dialog_action_area2); gtk_button_box_set_layout (GTK_BUTTON_BOX (add_dialog->dialog_action_area2), GTK_BUTTONBOX_END); @@ -367,25 +355,16 @@ GSList *dummy = NULL; unsigned short int flag; - if (add_dialog->one_file == FALSE) + if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(add_dialog->files_radio)) ) { - if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(add_dialog->files_radio)) ) - { - title = _("Please select the files you want to add"); - flag = GTK_FILE_CHOOSER_ACTION_OPEN; - } - else - { - title = _("Please select the directories you want to add"); - flag = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; - } + title = _("Please select the files you want to add"); + flag = GTK_FILE_CHOOSER_ACTION_OPEN; } else { - title = _("Please select the file you want to add"); - flag = GTK_FILE_CHOOSER_ACTION_OPEN; + title = _("Please select the directories you want to add"); + flag = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; } - File_Selector = gtk_file_chooser_dialog_new ( title, GTK_WINDOW (MainWindow), @@ -395,8 +374,7 @@ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); - if (add_dialog->one_file == FALSE) - gtk_file_chooser_set_select_multiple ( GTK_FILE_CHOOSER (File_Selector) , TRUE ); + gtk_file_chooser_set_select_multiple ( GTK_FILE_CHOOSER (File_Selector) , TRUE ); response = gtk_dialog_run (GTK_DIALOG (File_Selector)); if (response == GTK_RESPONSE_ACCEPT) { @@ -571,21 +549,10 @@ if (tar == NULL) tar = g_strdup ("tar"); - if (archive->type != XARCHIVETYPE_BZIP2 && archive->type != XARCHIVETYPE_GZIP) - Update_StatusBar ( _("Adding files to the archive, please wait...")); + Update_StatusBar ( _("Adding files to the archive, please wait...")); switch (archive->type) { - case XARCHIVETYPE_BZIP2: - Update_StatusBar ( _("Compressing file with bzip2, please wait...")); - Bzip2Add ( names->str , archive , 0 ); - break; - - case XARCHIVETYPE_GZIP: - Update_StatusBar ( _("Compressing file with gzip, please wait...")); - Bzip2Add ( names->str , archive , 1 ); - break; - case XARCHIVETYPE_RAR: if (compression_string == NULL) compression_string = "3"; Modified: xarchiver/trunk/src/add_dialog.h =================================================================== --- xarchiver/trunk/src/add_dialog.h 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/src/add_dialog.h 2006-08-23 11:38:59 UTC (rev 22853) @@ -36,7 +36,6 @@ GtkWidget *frame4; GtkWidget *remove_button; GtkWidget *add_files_button; - gboolean one_file; GtkWidget *label2; GtkWidget *label3; GtkWidget *label4; Modified: xarchiver/trunk/src/bzip2.c =================================================================== --- xarchiver/trunk/src/bzip2.c 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/src/bzip2.c 2006-08-23 11:38:59 UTC (rev 22853) @@ -25,11 +25,7 @@ extern int output_fd; extern gboolean cli; -FILE *stream = NULL; -gchar *tmp = NULL; -int fd; short int l; -gboolean error_output,result; void OpenBzip2 ( XArchive *archive ) { @@ -64,15 +60,19 @@ } else { - Bzip2Extract ( archive , 0 ); + gzip_bzip2_extract ( archive , 0 ); archive->format ="BZIP2"; } } -void Bzip2Extract ( XArchive *archive , gboolean flag ) +void gzip_bzip2_extract ( XArchive *archive , gboolean flag ) { - gchar *text; + gchar *text = NULL; + gchar *filename_only = NULL; gchar *command = NULL; + gboolean result = FALSE; + gboolean ext; + extract_window = xa_create_extract_dialog ( 0 , archive); gtk_dialog_set_default_response (GTK_DIALOG (extract_window->dialog1), GTK_RESPONSE_OK); done = FALSE; @@ -90,32 +90,62 @@ if ( strlen ( archive->extraction_path ) > 0 ) { done = TRUE; - archive->parse_output = 0; - command = g_strconcat ( flag ? "gzip -dc " : "bzip2 -dc " , archive->escaped_path , NULL ); - SpawnAsyncProcess ( archive , command , 0, 0); - if ( archive->child_pid == 0 ) + + if (! cli) { - g_free ( command ); - return; + if (flag) + text = g_strdup_printf(_("Extracting gzip file to %s"), archive->extraction_path); + else + text = g_strdup_printf(_("Extracting bzip2 file to %s"), archive->extraction_path); + Update_StatusBar ( text ); + g_free (text); } - if (flag) - text = g_strdup_printf(_("Extracting gzip file to %s"), archive->extraction_path); + + filename_only = StripPathFromFilename (archive->escaped_path , "/"); + if (file_extension_is (filename_only,".gz") || file_extension_is (filename_only,".bz2") ) + ext = TRUE; else - text = g_strdup_printf(_("Extracting bzip2 file to %s"), archive->extraction_path); - Update_StatusBar ( text ); - g_free (text); + ext = FALSE; + + if (ext) + command = g_strconcat ("cp -f ", archive->escaped_path, " /tmp", NULL); + else + command = g_strconcat ("cp -f ", archive->escaped_path, " /tmp" , filename_only, flag ? ".gz" : ".bz2", NULL); - stream = fopen ( archive->extraction_path , "w" ); - if ( stream == NULL ) + result = xa_run_command (command , 0); + g_free (command); + if (result == 0) + break; + if ( ext ) + command = g_strconcat (flag ? "gzip -f -d -n " : "bzip2 -f -d ", "/tmp",filename_only, NULL); + else + command = g_strconcat (flag ? "gzip -f -d -n " : "bzip2 -f -d ","/tmp",filename_only, flag ? ".gz" : ".bz2", NULL); + + result = xa_run_command (command , 0); + g_free (command); + if (result == 0) + break; + + if (ext) { - response = ShowGtkMessageDialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't write file:"),g_strerror(errno)); - done = FALSE; - break; + if (flag) + filename_only[strlen(filename_only) - 3] = '\0'; + else + filename_only[strlen(filename_only) - 4] = '\0'; + command = g_strconcat ("mv -f /tmp",filename_only, " ", archive->extraction_path,NULL); } - GIOChannel *ioc = g_io_channel_unix_new ( output_fd ); - g_io_channel_set_encoding (ioc, NULL , NULL); - g_io_channel_set_flags ( ioc , G_IO_FLAG_NONBLOCK , NULL ); - g_io_add_watch (ioc, G_IO_IN|G_IO_PRI|G_IO_ERR|G_IO_HUP|G_IO_NVAL, ExtractToDifferentLocation, stream); + else + { + if ( g_file_test (archive->extraction_path, G_FILE_TEST_IS_DIR) ) + command = g_strconcat ("mv -f /tmp",filename_only, " ", archive->extraction_path,filename_only,NULL); + else + command = g_strconcat ("mv -f /tmp",filename_only, " ", archive->extraction_path,NULL); + } + + result = xa_run_command (command , 0); + g_free (command); + if (result == 0) + break; } else response = ShowGtkMessageDialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK, _("You missed the extraction path!"),("Please type it.") ); @@ -125,57 +155,24 @@ gtk_widget_destroy ( extract_window->dialog1 ); g_free (extract_window); extract_window = NULL; - xa_set_button_state (1,1,0,0,0); - if (command != NULL) + + if (result == 0) { - g_free ( command ); - g_child_watch_add ( archive->child_pid, (GChildWatchFunc)xa_watch_child, archive); - } - else - { + xa_set_button_state (1,1,0,0,0); archive->status = XA_ARCHIVESTATUS_IDLE; gtk_widget_set_sensitive (Stop_button, FALSE); gtk_widget_hide ( viewport2 ); Update_StatusBar ( _("Operation canceled.")); } -} - -gchar *OpenTempFile ( gboolean dummy , gchar *temp_path ) -{ - gchar *command = NULL; - tmp = g_strdup ("/tmp/xarchiver-XXXXXX"); - fd = g_mkstemp ( tmp ); - stream = fdopen ( fd , "w" ); - if ( stream == NULL) - { - response = ShowGtkMessageDialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't write to /tmp:"),g_strerror(errno) ); - g_free (tmp); - return NULL; - } - if ( temp_path == NULL) - command = g_strconcat ( dummy ? "gzip -dc " : "bzip2 -dc " , archive->escaped_path , NULL ); else - command = g_strconcat ( dummy ? "gzip -dc " : "bzip2 -dc " , temp_path , NULL ); - archive->parse_output = 0; - SpawnAsyncProcess ( archive , command , 0, 0); - g_free ( command ); - if ( archive->child_pid == 0 ) - { - fclose ( stream ); - unlink ( tmp ); - g_free (tmp); - return NULL; - } - GIOChannel *ioc = g_io_channel_unix_new ( output_fd ); - g_io_channel_set_encoding (ioc, NULL , NULL); - g_io_channel_set_flags ( ioc , G_IO_FLAG_NONBLOCK , NULL ); - g_io_add_watch (ioc, G_IO_IN|G_IO_PRI|G_IO_ERR|G_IO_HUP|G_IO_NVAL, ExtractToDifferentLocation, stream); - return tmp; + xa_watch_child (archive->child_pid, 0, archive); } void xa_add_delete_tar_bzip2_gzip ( GString *list , XArchive *archive , gboolean dummy , gboolean add ) { gchar *command, *msg, *tar,*temp_name,*temp_name2; + gboolean result; + if ( ! cli ) { gtk_widget_show (viewport2); @@ -287,77 +284,3 @@ return; } -void Bzip2Add ( gchar *filename , XArchive *archive , gboolean flag ) -{ - gchar *command = NULL; - gtk_widget_show ( viewport2 ); - command = g_strconcat ( flag ? "gzip -f " : "bzip2 -zk " , filename , NULL ); - if ( ! cli) - { - result = xa_run_command (command , 0); - g_free (command); - if ( result == 0 ) - return; - } - else - { - error_output = SpawnSyncCommand ( command ); - g_free (command); - if (error_output == FALSE) - return; - } - - command = g_strconcat ( "mv -f " , filename , flag ? ".gz" : ".bz2 ", " " , archive->escaped_path , NULL ); - if (! cli) - { - result = xa_run_command (command , 1); - g_free (command); - } - else - { - error_output = SpawnSyncCommand ( command ); - g_free (command); - } -} - -gboolean ExtractToDifferentLocation (GIOChannel *ioc, GIOCondition cond, gpointer data) -{ - FILE *stream = data; - gchar buffer[65536]; - gsize bytes_read; - GIOStatus status; - GError *error = NULL; - - if (cond & (G_IO_IN | G_IO_PRI) ) - { - do - { - status = g_io_channel_read_chars (ioc, buffer, sizeof(buffer), &bytes_read, &error); - if (bytes_read > 0) - { - /* Write the content of the bzip/gzip extracted file to the file pointed by the file stream */ - fwrite (buffer, 1, bytes_read, stream); - } - else if (error != NULL) - { - response = ShowGtkMessageDialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK, _("An error occurred:"),error->message); - g_error_free (error); - return FALSE; - } - } - while (status == G_IO_STATUS_NORMAL); - - if (status == G_IO_STATUS_ERROR || status == G_IO_STATUS_EOF) - goto done; - } - else if (cond & (G_IO_ERR | G_IO_HUP | G_IO_NVAL) ) - { - done: - fclose ( stream ); - g_io_channel_shutdown ( ioc,TRUE,NULL ); - g_io_channel_unref (ioc); - return FALSE; - } - return TRUE; -} - Modified: xarchiver/trunk/src/bzip2.h =================================================================== --- xarchiver/trunk/src/bzip2.h 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/src/bzip2.h 2006-08-23 11:38:59 UTC (rev 22853) @@ -27,11 +27,8 @@ #include "archive.h" void OpenBzip2 ( XArchive *archive ); -void Bzip2Extract ( XArchive *archive , gboolean flag ); -gboolean ExtractToDifferentLocation (GIOChannel *ioc, GIOCondition cond , gpointer data); +void gzip_bzip2_extract ( XArchive *archive , gboolean flag ); void xa_add_delete_tar_bzip2_gzip ( GString *list , XArchive *archive , gboolean dummy , gboolean add ); GChildWatchFunc *AddToTar (GPid pid,gint status , gpointer data); -void Bzip2Add ( gchar *filename , XArchive *archive , gboolean flag ); -gchar *OpenTempFile ( gboolean dummy , gchar *temp_path ); gboolean file_extension_is (const char *filename, const char *ext); #endif Modified: xarchiver/trunk/src/callbacks.c =================================================================== --- xarchiver/trunk/src/callbacks.c 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/src/callbacks.c 2006-08-23 11:38:59 UTC (rev 22853) @@ -78,10 +78,12 @@ else if (archive->type == XARCHIVETYPE_TAR_BZ2 || archive->type == XARCHIVETYPE_TAR_GZ || archive->type == XARCHIVETYPE_TAR ) gtk_widget_set_sensitive ( check_menu , FALSE); else - gtk_widget_set_sensitive ( check_menu , TRUE); + { + gtk_widget_set_sensitive ( check_menu , TRUE); + xa_set_button_state (1,1,1,1,1); + } + - xa_set_button_state (1,1,1,1,1); - if ( WIFSIGNALED (status) ) { Update_StatusBar ( _("Operation canceled.")); @@ -227,7 +229,7 @@ gtk_widget_set_sensitive ( view_shell_output1 , TRUE ); gtk_widget_set_sensitive ( check_menu , FALSE); gtk_widget_set_sensitive ( properties , FALSE ); - /* Let's off the delete and view buttons and the menu entries to avoid misterious behaviour */ + /* Let's off the delete and view buttons and the menu entries to avoid strange behaviours */ OffDeleteandViewButtons (); if ( liststore != NULL ) @@ -736,7 +738,7 @@ Name = g_list_first ( ArchiveType ); while ( Name != NULL ) { - if (Name->data != ".tgz" && Name->data != ".rpm" && Name->data != ".iso" ) + if (Name->data != ".tgz" && Name->data != ".rpm" && Name->data != ".iso" && Name->data != ".gz" && Name->data != ".bz2" ) gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), Name->data ); Name = g_list_next ( Name ); } @@ -762,8 +764,6 @@ ComboArchiveType = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo_box)); current_archive_suffix = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box)); if (strcmp ( ComboArchiveType,".arj") == 0) archive->type = XARCHIVETYPE_ARJ; - else if (strcmp ( ComboArchiveType,".bz2") == 0) archive->type = XARCHIVETYPE_BZIP2; - else if (strcmp ( ComboArchiveType,".gz") == 0) archive->type = XARCHIVETYPE_GZIP; else if (strcmp ( ComboArchiveType,".rar") == 0) archive->type = XARCHIVETYPE_RAR; else if (strcmp ( ComboArchiveType,".tar") == 0) archive->type = XARCHIVETYPE_TAR; else if (strcmp ( ComboArchiveType,".tar.bz2") == 0) archive->type = XARCHIVETYPE_TAR_BZ2; Modified: xarchiver/trunk/src/gzip.c =================================================================== --- xarchiver/trunk/src/gzip.c 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/src/gzip.c 2006-08-23 11:38:59 UTC (rev 22853) @@ -58,7 +58,7 @@ else { archive->format ="GZIP"; - Bzip2Extract ( archive , 1 ); + gzip_bzip2_extract ( archive , 1 ); } } Modified: xarchiver/trunk/src/main.c =================================================================== --- xarchiver/trunk/src/main.c 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/src/main.c 2006-08-23 11:38:59 UTC (rev 22853) @@ -273,14 +273,6 @@ g_free (absolute_path); } - absolute_path = g_find_program_in_path("rar"); - if ( absolute_path ) - { - ArchiveType = g_list_prepend ( ArchiveType, ".rar"); - ArchiveSuffix = g_list_prepend ( ArchiveSuffix, "*.rar"); - g_free (absolute_path); - } - absolute_path = g_find_program_in_path("cpio"); if ( absolute_path ) { @@ -307,13 +299,13 @@ } } - absolute_path = g_find_program_in_path("7za"); + absolute_path = g_find_program_in_path("rar"); if ( absolute_path ) - { - ArchiveType = g_list_prepend ( ArchiveType, ".7z"); - ArchiveSuffix = g_list_prepend ( ArchiveSuffix, "*.7z"); + { + ArchiveType = g_list_prepend ( ArchiveType, ".rar"); + ArchiveSuffix = g_list_prepend ( ArchiveSuffix, "*.rar"); g_free (absolute_path); - } + } absolute_path = g_find_program_in_path("zip"); if ( absolute_path ) @@ -325,6 +317,14 @@ ArchiveType = g_list_prepend ( ArchiveType, ".zip"); ArchiveSuffix = g_list_prepend ( ArchiveSuffix, "*.zip"); } + + absolute_path = g_find_program_in_path("7za"); + if ( absolute_path ) + { + ArchiveType = g_list_prepend ( ArchiveType, ".7z"); + ArchiveSuffix = g_list_prepend ( ArchiveSuffix, "*.7z"); + g_free (absolute_path); + } } void xa_set_button_state (gboolean New, gboolean Open,gboolean AddFile,gboolean Extract, gboolean select) Modified: xarchiver/trunk/src/rpm.c =================================================================== --- xarchiver/trunk/src/rpm.c 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/src/rpm.c 2006-08-23 11:38:59 UTC (rev 22853) @@ -24,6 +24,7 @@ FILE *stream; int fd; gchar *cpio_tmp = NULL; +gchar *tmp = NULL; gchar buffer[2048]; gsize bytes_read = 0; gsize bytes_written = 0; @@ -359,3 +360,78 @@ g_io_channel_shutdown ( ioc,TRUE,NULL ); g_io_channel_unref (ioc); } + +gchar *OpenTempFile ( gboolean dummy , gchar *temp_path ) +{ + gchar *command = NULL; + tmp = g_strdup ("/tmp/xarchiver-XXXXXX"); + fd = g_mkstemp ( tmp ); + stream = fdopen ( fd , "w" ); + if ( stream == NULL) + { + response = ShowGtkMessageDialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't write to /tmp:"),g_strerror(errno) ); + g_free (tmp); + return NULL; + } + if ( temp_path == NULL) + command = g_strconcat ( dummy ? "gzip -dc " : "bzip2 -dc " , archive->escaped_path , NULL ); + else + command = g_strconcat ( dummy ? "gzip -dc " : "bzip2 -dc " , temp_path , NULL ); + archive->parse_output = 0; + SpawnAsyncProcess ( archive , command , 0, 0); + g_free ( command ); + if ( archive->child_pid == 0 ) + { + fclose ( stream ); + unlink ( tmp ); + g_free (tmp); + return NULL; + } + GIOChannel *ioc = g_io_channel_unix_new ( output_fd ); + g_io_channel_set_encoding (ioc, NULL , NULL); + g_io_channel_set_flags ( ioc , G_IO_FLAG_NONBLOCK , NULL ); + g_io_add_watch (ioc, G_IO_IN|G_IO_PRI|G_IO_ERR|G_IO_HUP|G_IO_NVAL, ExtractToDifferentLocation, stream); + return tmp; +} + +gboolean ExtractToDifferentLocation (GIOChannel *ioc, GIOCondition cond, gpointer data) +{ + FILE *stream = data; + gchar buffer[65536]; + gsize bytes_read; + GIOStatus status; + GError *error = NULL; + + if (cond & (G_IO_IN | G_IO_PRI) ) + { + do + { + status = g_io_channel_read_chars (ioc, buffer, sizeof(buffer), &bytes_read, &error); + if (bytes_read > 0) + { + /* Write the content of the bzip/gzip extracted file to the file pointed by the file stream */ + fwrite (buffer, 1, bytes_read, stream); + } + else if (error != NULL) + { + response = ShowGtkMessageDialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK, _("An error occurred:"),error->message); + g_error_free (error); + return FALSE; + } + } + while (status == G_IO_STATUS_NORMAL); + + if (status == G_IO_STATUS_ERROR || status == G_IO_STATUS_EOF) + goto done; + } + else if (cond & (G_IO_ERR | G_IO_HUP | G_IO_NVAL) ) + { + done: + fclose ( stream ); + g_io_channel_shutdown ( ioc,TRUE,NULL ); + g_io_channel_unref (ioc); + return FALSE; + } + return TRUE; +} + Modified: xarchiver/trunk/src/rpm.h =================================================================== --- xarchiver/trunk/src/rpm.h 2006-08-22 09:48:45 UTC (rev 22852) +++ xarchiver/trunk/src/rpm.h 2006-08-23 11:38:59 UTC (rev 22853) @@ -31,5 +31,7 @@ gboolean ReadCPIOOutput (GIOChannel *ioc, GIOCondition cond, gpointer data); gboolean WriteCPIOInput (GIOChannel *ioc, GIOCondition cond, gpointer data); void CloseChannels ( GIOChannel *ioc ); +gboolean ExtractToDifferentLocation (GIOChannel *ioc, GIOCondition cond , gpointer data); +gchar *OpenTempFile ( gboolean dummy , gchar *temp_path ); #endif _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits