Author: colossus Date: 2008-07-12 19:19:58 +0000 (Sat, 12 Jul 2008) New Revision: 27264
Modified: xarchiver/trunk/TODO xarchiver/trunk/src/bzip2.c xarchiver/trunk/src/bzip2.h xarchiver/trunk/src/deb.c xarchiver/trunk/src/deb.h xarchiver/trunk/src/extract_dialog.c xarchiver/trunk/src/lha.c xarchiver/trunk/src/main.c xarchiver/trunk/src/rpm.c xarchiver/trunk/src/rpm.h xarchiver/trunk/src/window.c xarchiver/trunk/src/zip.c Log: Fixed warnings in main.c. Removed unused variables from the code. Updated TODO file. Modified: xarchiver/trunk/TODO =================================================================== --- xarchiver/trunk/TODO 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/TODO 2008-07-12 19:19:58 UTC (rev 27264) @@ -1,6 +1,7 @@ - fix store output when test archives - fix segfault in xa_launch_external_command -- fix the directories bug with 7z +- fill the gslist with the directories to add for the recursive bug in 7z +- do the same as above for arj when using the switches from cmd-line - fix the remaining bugs in bugzilla.xfce.org - to fix the arrow buttons - add a small progress window when using Xarchiver cmd-line switches. Modified: xarchiver/trunk/src/bzip2.c =================================================================== --- xarchiver/trunk/src/bzip2.c 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/bzip2.c 2008-07-12 19:19:58 UTC (rev 27264) @@ -170,47 +170,18 @@ xa_create_liststore (archive,names); } -void lzma_gzip_bzip2_extract (XArchive *archive,GString *dummy) +void lzma_gzip_bzip2_extract (XArchive *archive,GSList *dummy) { GSList *list = NULL; - gchar *command,*executable = NULL,*filename = NULL, *dot = NULL, *filename_noext = NULL; - gboolean result = FALSE; + gchar *command = NULL,*filename = NULL, *dot = NULL, *filename_noext = NULL; filename = xa_remove_path_from_archive_name(archive->escaped_path); - switch (archive->type) - { - case XARCHIVETYPE_BZIP2: - executable = "bzip2 -f -d "; - break; - case XARCHIVETYPE_GZIP: - executable = "gzip -f -d -n "; - break; - - case XARCHIVETYPE_LZMA: - executable = "lzma -f -d "; - break; - - default: - break; - } - - result = xa_create_temp_directory(archive); - if (!result) - return; - - - command = g_strconcat ("cp -f ",archive->escaped_path," ",archive->tmp,NULL); - list = g_slist_append(list,command); - - command = g_strconcat(executable,archive->tmp,"/",filename,NULL); - list = g_slist_append(list,command); - dot = strchr(filename,'.'); if (G_LIKELY(dot)) { filename_noext = g_strndup(filename, ( dot - filename )); - command = g_strconcat("mv -f ",archive->tmp,"/",filename_noext," ",archive->extraction_path,NULL); + command = g_strconcat("cp -f ",archive->tmp,"/",filename_noext," ",archive->extraction_path,NULL); g_free(filename_noext); } g_free(filename); Modified: xarchiver/trunk/src/bzip2.h =================================================================== --- xarchiver/trunk/src/bzip2.h 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/bzip2.h 2008-07-12 19:19:58 UTC (rev 27264) @@ -25,6 +25,6 @@ #include "archive.h" void xa_open_bzip2_lzma (XArchive *,GString *); -void lzma_gzip_bzip2_extract (XArchive *,GString*); +void lzma_gzip_bzip2_extract (XArchive *,GSList*); void xa_open_tar_compressed_file(XArchive *); #endif Modified: xarchiver/trunk/src/deb.c =================================================================== --- xarchiver/trunk/src/deb.c 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/deb.c 2008-07-12 19:19:58 UTC (rev 27264) @@ -84,24 +84,36 @@ xa_create_liststore (archive,names); } -//TODO to remove when you have dbus integration -void xa_deb_extract(XArchive *archive,GString *files) +void xa_deb_extract(XArchive *archive,GSList *files) { - gchar *command = NULL; - GSList *list = NULL; + //TODO to remove when you have xdg-open working so that control.tar.gz is opened in another tab and the user can extract its content from that tab + gchar *command = NULL,*e_filename = NULL; + GSList *list = NULL,*_files = NULL; + GString *names = g_string_new(""); + _files = files; + while (_files) + { + e_filename = xa_escape_filename((gchar*)_files->data,"$'`\"\\!?* ()[]&|:;<>#"); + g_string_prepend (names,e_filename); + g_string_prepend_c (names,' '); + _files = _files->next; + } + g_slist_foreach(files,(GFunc)g_free,NULL); + g_slist_free(files); + if (archive->full_path) { command = g_strconcat (tar, " -xvzf " , archive->tmp,"/data.tar.gz ", archive->overwrite ? " --overwrite" : " --keep-old-files", archive->tar_touch ? " --touch" : "", - " -C " , archive->extraction_path , files->str, NULL ); + " -C " , archive->extraction_path , names->str, NULL ); } if (command != NULL) { - g_string_free(files,TRUE); + g_string_free(names,TRUE); list = g_slist_append(list,command); xa_run_command (archive,list); } Modified: xarchiver/trunk/src/deb.h =================================================================== --- xarchiver/trunk/src/deb.h 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/deb.h 2008-07-12 19:19:58 UTC (rev 27264) @@ -28,6 +28,6 @@ #include "support.h" #include "archive.h" -void xa_open_deb ( XArchive *archive ); -void xa_deb_extract(XArchive *archive,GString *files); +void xa_open_deb ( XArchive *); +void xa_deb_extract(XArchive *,GSList *); #endif Modified: xarchiver/trunk/src/extract_dialog.c =================================================================== --- xarchiver/trunk/src/extract_dialog.c 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/extract_dialog.c 2008-07-12 19:19:58 UTC (rev 27264) @@ -24,7 +24,6 @@ #include "string_utils.h" #include "support.h" -gboolean stop_flag; extern gboolean unrar; gchar *rar; @@ -32,7 +31,6 @@ { GSList *radiobutton1_group = NULL; Extract_dialog_data *dialog_data; - stop_flag = FALSE; gboolean flag = TRUE; home_dir = g_get_home_dir(); @@ -90,8 +88,13 @@ gtk_radio_button_set_group (GTK_RADIO_BUTTON (dialog_data->selected_radio), radiobutton1_group); radiobutton1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (dialog_data->selected_radio)); - if (selected) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog_data->selected_radio),TRUE); + if (archive->type != XARCHIVETYPE_RPM) + { + if (selected) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog_data->selected_radio),TRUE); + else + gtk_widget_set_sensitive (dialog_data->selected_radio,FALSE); + } else gtk_widget_set_sensitive (dialog_data->selected_radio,FALSE); Modified: xarchiver/trunk/src/lha.c =================================================================== --- xarchiver/trunk/src/lha.c 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/lha.c 2008-07-12 19:19:58 UTC (rev 27264) @@ -118,6 +118,7 @@ filename = line + 51; entry = xa_set_archive_entries_for_each_row (archive,filename,item); + g_print ("%s\n",entry->filename); } gboolean isLha ( FILE *ptr ) Modified: xarchiver/trunk/src/main.c =================================================================== --- xarchiver/trunk/src/main.c 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/main.c 2008-07-12 19:19:58 UTC (rev 27264) @@ -130,7 +130,7 @@ } for (x = 1; x < argc; x++) { - GString *string = g_string_new (""); + GSList *string = NULL; archive->full_path = 1; archive->overwrite = 1; gchar *escaped_path = xa_escape_bad_chars (extract_path,"$\'`\"\\!?* ()[]&|@#:;"); @@ -169,26 +169,17 @@ { _current_dir = g_path_get_dirname(archive_name); chdir (_current_dir); - g_free (_current_dir); - GString *string = g_string_new (""); + g_free(_current_dir); + GSList *files = NULL; if (g_file_test (archive_name,G_FILE_TEST_EXISTS)) - { - _current_dir = g_path_get_basename(archive_name); - xa_escape_filename(_current_dir,string); - g_free (_current_dir); - } + files = g_slist_append(files,xa_escape_filename(archive_name,"$'`\"\\!?* ()[]&|:;<>#")); for (x = 1; x< argc; x++) { _current_dir = g_path_get_basename(argv[x]); - xa_escape_filename(_current_dir,string); + files = g_slist_append(files,xa_escape_filename(_current_dir,"$'`\"\\!?* ()[]&|:;<>#")); g_free (_current_dir); } - if (archive->type == XARCHIVETYPE_7ZIP) - archive->add_recurse = FALSE; - else - archive->add_recurse = TRUE; - //TODO: the second NULL is a GSList you must fill! - xa_execute_add_commands(archive,NULL,NULL); + xa_execute_add_commands(archive,files,NULL); } } /* Switch -a */ Modified: xarchiver/trunk/src/rpm.c =================================================================== --- xarchiver/trunk/src/rpm.c 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/rpm.c 2008-07-12 19:19:58 UTC (rev 27264) @@ -20,20 +20,16 @@ #include "rpm.h" #include "string_utils.h" -FILE *stream; -gchar *cpio_tmp,*gzip_tmp = NULL; -gchar tmp_dir[14] = ""; -gboolean result; -GError *error = NULL; -GIOChannel *ioc_cpio; - void xa_open_rpm (XArchive *archive) { unsigned char bytes[8]; unsigned short int i; int dl,il,sigsize,offset; gchar *ibs; + gchar *gzip_tmp = NULL; GSList *list = NULL; + FILE *stream; + gboolean result; signal (SIGPIPE, SIG_IGN); stream = fopen ( archive->path , "r" ); @@ -112,11 +108,10 @@ { fclose (stream); g_free (gzip_tmp); - xa_delete_temp_directory (archive,1); return; } /* Let's decompress the gzip/bzip2 resulting file*/ - xa_open_temp_file ( tmp_dir,gzip_tmp ); + xa_open_temp_file ( archive->tmp,gzip_tmp ); } GChildWatchFunc *xa_open_cpio (GPid pid , gint exit_code , gpointer data) @@ -138,8 +133,6 @@ response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_QUESTION,GTK_BUTTONS_OK_CANCEL,_("An error occurred while decompressing the cpio archive."),_("Do you want to view the command line output?") ); if (response == GTK_RESPONSE_OK) xa_show_cmd_line_output (NULL); - xa_delete_temp_directory (archive[idx],1); - g_free (cpio_tmp); xa_set_button_state (1,1,GTK_WIDGET_IS_SENSITIVE(save1),GTK_WIDGET_IS_SENSITIVE(close1),0,0,0,0,0); //TODO: xa_hide_progress_bar_stop_button(archive[idx]); return FALSE; @@ -152,11 +145,7 @@ xa_spawn_async_process ( archive[idx],command); g_free(command); if ( archive[idx]->child_pid == 0 ) - { - xa_delete_temp_directory (archive[idx],1); - g_free ( cpio_tmp ); return FALSE; - } return NULL; } @@ -255,12 +244,13 @@ gint current_page; gint idx; gchar *tmp = NULL; + FILE *stream; current_page = gtk_notebook_get_current_page(notebook); idx = xa_find_archive_index (current_page); gchar *command = NULL; - tmp = g_strconcat (tmp_dir,"/file.cpio",NULL); + tmp = g_strconcat (archive[idx]->tmp,"/file.cpio",NULL); stream = fopen (tmp,"w"); if (stream == NULL) @@ -280,19 +270,18 @@ if (archive[idx]->child_pid == 0) { fclose (stream); - xa_delete_temp_directory (archive[idx],1); g_free (tmp); return; } GIOChannel *ioc = g_io_channel_unix_new (archive[idx]->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); + g_io_add_watch (ioc,G_IO_IN|G_IO_PRI|G_IO_ERR|G_IO_HUP|G_IO_NVAL,xa_extract_to_different_location,stream); g_child_watch_add (archive[idx]->child_pid ,(GChildWatchFunc) xa_open_cpio,tmp); } -gboolean ExtractToDifferentLocation (GIOChannel *ioc, GIOCondition cond, gpointer data) +gboolean xa_extract_to_different_location (GIOChannel *ioc, GIOCondition cond, gpointer data) { FILE *stream = data; gchar buffer[65536]; @@ -333,15 +322,27 @@ return TRUE; } -void xa_rpm_extract(XArchive *archive,GString *files) +void xa_rpm_extract(XArchive *archive,GSList *files) { - gchar *command = NULL; - GSList *list = NULL; + gchar *command = NULL,*e_filename = NULL; + GSList *list = NULL,*_files = NULL; + GString *names = g_string_new(""); + _files = files; + while (_files) + { + e_filename = xa_escape_filename((gchar*)_files->data,"$'`\"\\!?* ()[]&|:;<>#"); + g_string_prepend (names,e_filename); + g_string_prepend_c (names,' '); + _files = _files->next; + } + g_slist_foreach(files,(GFunc)g_free,NULL); + g_slist_free(files); + chdir (archive->extraction_path); - command = g_strconcat ( "cpio -id" , files->str,"-F ",archive->tmp,"/file.cpio",NULL); + command = g_strconcat ( "cpio -id" , names->str," -F ",archive->tmp,"/file.cpio",NULL); - g_string_free(files,TRUE); + g_string_free(names,TRUE); list = g_slist_append(list,command); xa_run_command (archive,list); } Modified: xarchiver/trunk/src/rpm.h =================================================================== --- xarchiver/trunk/src/rpm.h 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/rpm.h 2008-07-12 19:19:58 UTC (rev 27264) @@ -24,9 +24,9 @@ #include "interface.h" #include "archive.h" -void xa_open_rpm ( XArchive *archive ); -gboolean ExtractToDifferentLocation (GIOChannel *ioc, GIOCondition cond , gpointer data); -void xa_open_temp_file (gchar *tmp_dir,gchar *temp_path); -void xa_rpm_extract(XArchive *archive,GString *files); -void xa_get_cpio_line_content (gchar *line, gpointer data); +void xa_open_rpm ( XArchive *); +gboolean xa_extract_to_different_location (GIOChannel *, GIOCondition,gpointer ); +void xa_open_temp_file (gchar *,gchar *); +void xa_rpm_extract(XArchive *,GSList *); +void xa_get_cpio_line_content (gchar *, gpointer ); #endif Modified: xarchiver/trunk/src/window.c =================================================================== --- xarchiver/trunk/src/window.c 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/window.c 2008-07-12 19:19:58 UTC (rev 27264) @@ -31,7 +31,6 @@ extern GList *ArchiveType; extern GList *ArchiveSuffix; -extern gboolean stop_flag; extern gboolean unrar; extern gboolean xdg_open; extern Prefs_dialog_data *prefs_window; @@ -49,7 +48,7 @@ gtk_widget_set_sensitive(Stop_button,FALSE); gtk_widget_hide(viewport2); } - if ( WIFEXITED (status) ) + if (WIFEXITED (status)) { if (WEXITSTATUS (status)) { @@ -88,12 +87,12 @@ gtk_widget_set_sensitive (comment_menu,TRUE); else gtk_widget_set_sensitive (comment_menu,FALSE); - + xa_set_button_state (1,1,1,1,archive->can_add,archive->can_extract,archive->has_sfx,archive->has_test,archive->has_properties); if (archive->has_comment && archive->status == XA_ARCHIVESTATUS_OPEN && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs_window->check_show_comment))) xa_show_archive_comment (NULL, NULL); - + gtk_widget_grab_focus (GTK_WIDGET(archive->treeview)); } if (archive->status == XA_ARCHIVESTATUS_ADD || archive->status == XA_ARCHIVESTATUS_DELETE) @@ -1272,8 +1271,7 @@ if (response == GTK_RESPONSE_CANCEL) return; } - Update_StatusBar (_("Waiting for the process to abort...")); - stop_flag = TRUE; + Update_StatusBar (_("Operation aborted.")); if (archive[idx]->child_pid) { kill (archive[idx]->child_pid,SIGABRT); Modified: xarchiver/trunk/src/zip.c =================================================================== --- xarchiver/trunk/src/zip.c 2008-07-12 15:47:37 UTC (rev 27263) +++ xarchiver/trunk/src/zip.c 2008-07-12 19:19:58 UTC (rev 27264) @@ -236,9 +236,7 @@ gchar *command = NULL; GSList *list = NULL; GString *names = g_string_new(""); - - if (files == NULL) - g_print ("files รจ null\n"); + xa_zip_prepend_backslash(files,names); if ( archive->passwd != NULL ) _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits