[Xfce4-commits] r26654 - in squeeze/trunk: data libsqueeze src

Peter de Ridder peter at xfce.org
Sat Mar 1 15:41:50 CET 2008


Author: peter
Date: 2008-03-01 14:41:50 +0000 (Sat, 01 Mar 2008)
New Revision: 26654

Modified:
   squeeze/trunk/data/gnu-tar.squeeze
   squeeze/trunk/libsqueeze/archive-tempfs.h
   squeeze/trunk/libsqueeze/command-queue.c
   squeeze/trunk/libsqueeze/command-queue.h
   squeeze/trunk/libsqueeze/support-reader.c
   squeeze/trunk/libsqueeze/support-template.h
   squeeze/trunk/src/application.c
   squeeze/trunk/src/main_window.c
   squeeze/trunk/src/notebook.c
Log:
command queue near finnished, but untested

Modified: squeeze/trunk/data/gnu-tar.squeeze
===================================================================
--- squeeze/trunk/data/gnu-tar.squeeze	2008-03-01 13:16:37 UTC (rev 26653)
+++ squeeze/trunk/data/gnu-tar.squeeze	2008-03-01 14:41:50 UTC (rev 26654)
@@ -16,32 +16,32 @@
 [application/x-compressed-tar]
 X-Squeeze-Requires=tar;gzip;gunzip
 X-Squeeze-New=tar -zcf %a %F
-X-Squeeze-Add=gunzip -c %a >> %t;tar -rf %a %F;gzip -c %t >> %a
-X-Squeeze-Remove=gunzip -c %a >> %t;tar -f %t --delete %F; gzip -c %t >> %a
+X-Squeeze-Add=gunzip -c %a > %t;tar -rf %a %F;gzip -c %t > %a
+X-Squeeze-Remove=gunzip -c %a > %t;tar -f %t --delete %F; gzip -c %t > %a
 X-Squeeze-Extract=tar -C %d -xf %a %F
 X-Squeeze-Refresh=tar -tvvf %a
 
 [application/x-bzip-compressed-tar]
 X-Squeeze-Requires=tar;bzip2;bunzip2
 X-Squeeze-New=tar -jcf %a %F
-X-Squeeze-Add=bunzip2 -c %a >> %t;tar -rf %t %F;bzip2 -c %t >> %a
-X-Squeeze-Remove=bunzip2 -c %a >> %t;tar -f %t --delete %F; bzip2 -c %t >> %a
+X-Squeeze-Add=bunzip2 -c %a > %t;tar -rf %t %F;bzip2 -c %t > %a
+X-Squeeze-Remove=bunzip2 -c %a > %t;tar -f %t --delete %F; bzip2 -c %t > %a
 X-Squeeze-Extract=tar -C %d -xf %a %F
 X-Squeeze-Refresh=tar -tvvf %a
 
 [application/x-tarz]
 X-Squeeze-Requires=tar;compress;uncompress
 X-Squeeze-New=tar -Zcf %a %F
-X-Squeeze-Add=lzop -dc %a >> %t;tar -rf %t %F;lzop -c %t >> %a
-X-Squeeze-Remove=uncompress -c %a >> %t;tar -f %t --delete %F; compress -c %t >> %a
+X-Squeeze-Add=lzop -dc %a > %t;tar -rf %t %F;lzop -c %t > %a
+X-Squeeze-Remove=uncompress -c %a > %t;tar -f %t --delete %F; compress -c %t > %a
 X-Squeeze-Extract=tar -C %d -xf %a %F
 X-Squeeze-Refresh=tar -tvvf %a
 
 [application/x-tzo]
 X-Squeeze-Requires=tar;lzop
 X-Squeeze-New=tar -cf --use-compress-program=lzop %a %F
-X-Squeeze-Add=uncompress -c %a >> %t;tar -rf %t %F;compress -c %t >> %a
-X-Squeeze-Remove=lzop -dc %a >> %t;tar -f %t --delete %F; lzop -c %t >> %a
+X-Squeeze-Add=uncompress -c %a > %t;tar -rf %t %F;compress -c %t > %a
+X-Squeeze-Remove=lzop -dc %a > %t;tar -f %t --delete %F; lzop -c %t > %a
 X-Squeeze-Extract=tar -C %d -xf %a %F
 X-Squeeze-Refresh=tar -tvvf %a
 

Modified: squeeze/trunk/libsqueeze/archive-tempfs.h
===================================================================
--- squeeze/trunk/libsqueeze/archive-tempfs.h	2008-03-01 13:16:37 UTC (rev 26653)
+++ squeeze/trunk/libsqueeze/archive-tempfs.h	2008-03-01 14:41:50 UTC (rev 26654)
@@ -38,3 +38,5 @@
 gboolean
 lsq_tempfs_changed_file(LSQArchive *archive, const gchar *path) G_GNUC_INTERNAL;
 
+gchar *lsq_archive_request_temp_file(LSQArchive *archive, const gchar *suffix);
+

Modified: squeeze/trunk/libsqueeze/command-queue.c
===================================================================
--- squeeze/trunk/libsqueeze/command-queue.c	2008-03-01 13:16:37 UTC (rev 26653)
+++ squeeze/trunk/libsqueeze/command-queue.c	2008-03-01 14:41:50 UTC (rev 26654)
@@ -21,6 +21,9 @@
 
 #include <thunar-vfs/thunar-vfs.h>
 #include "libsqueeze.h"
+#include "archive-tempfs.h"
+#include "parser-context.h"
+#include "parser.h"
 
 #include "command-queue.h"
 
@@ -47,6 +50,20 @@
 	GObjectClass parent;
 };
 
+struct _LSQExecuteContext
+{
+  LSQCommandEntry *queue;
+  LSQParser *parser;
+  LSQArchive *archive;
+  gchar **files;
+  gchar *tempfile;
+  LSQParserContext *ctx;
+  enum {
+    LSQ_EXEC_CTX_STATE_RUNNING = 1<<0,
+    LSQ_EXEC_CTX_STATE_PARSING = 1<<1
+  } state;
+};
+
 static void build_queue(LSQCommandQueue *queue, const gchar *commant_string);
 
 G_DEFINE_TYPE(LSQCommandQueue, lsq_command_queue, G_TYPE_OBJECT);
@@ -65,6 +82,8 @@
 {
   LSQCommandQueue *queue;
 
+  g_return_val_if_fail(command_string, NULL);
+
   queue = g_object_new(LSQ_TYPE_COMMAND_QUEUE, NULL);
 
   build_queue(queue, command_string);
@@ -72,6 +91,247 @@
   return LSQ_COMMAND_QUEUE(queue);
 }
 
+static const gchar *lsq_execute_context_get_temp_file(LSQExecuteContext *ctx)
+{
+  if(!ctx->tempfile)
+  {
+    ctx->tempfile = lsq_archive_request_temp_file(ctx->archive, NULL);
+  }
+
+  return ctx->tempfile;
+}
+
+static gchar *format_get_filename(const gchar *format, LSQExecuteContext *ctx)
+{
+  if((format[0] == '%') && (format[2] == '\0'))
+  {
+    switch(format[1])
+    {
+      case 'a':
+        return lsq_archive_get_path(ctx->archive);
+      case 't':
+        return g_strdup(lsq_execute_context_get_temp_file(ctx));
+    }
+  }
+  return NULL;
+}
+
+static gchar **lsq_command_entry_to_argv(LSQCommandEntry *entry, LSQExecuteContext *ctx)
+{
+  gchar **argv, **argi;
+  guint size;
+  GSList *iter;
+  gchar **filei;
+  
+  size = 2;
+
+  for(iter = entry->args; iter; iter = iter->next)
+  {
+    if(0==strcmp((const gchar*)iter->data, "%F"))
+    {
+      size += g_strv_length(ctx->files);
+    }
+    else
+      size++;
+  }
+
+  argv = g_new(gchar *, size);
+
+  argi = argv;
+
+  *argi++ = g_strdup(entry->command);
+
+  for(iter = entry->args; iter; iter = iter->next)
+  {
+    const gchar *arg = (const gchar*)iter->data;
+    if((arg[0] == '%') && (arg[2] == '\0'))
+    {
+      switch(arg[1])
+      {
+        case 'F':
+          for(filei = ctx->files; *filei; filei++)
+          {
+            *argi++ = g_strdup(*filei);
+          }
+          break;
+        case 'a':
+          *argi++ = lsq_archive_get_path(ctx->archive);
+          break;
+        case 't':
+          *argi++ = g_strdup(lsq_execute_context_get_temp_file(ctx));
+          break;
+        default:
+          //...
+          break;
+      }
+    }
+    else
+      *argi++ = g_strdup(arg);
+  }
+
+  *argi = NULL;
+
+  return argv;
+}
+
+static void lsq_command_entry_start(LSQCommandEntry *entry, LSQExecuteContext *ctx);
+
+static void child_exit(GPid pid, gint status, LSQExecuteContext *ctx)
+{
+  g_spawn_close_pid(pid);
+  ctx->state &= ~LSQ_EXEC_CTX_STATE_RUNNING;
+  if(!ctx->state)
+  {
+    if((ctx->queue = ctx->queue->next))
+      lsq_command_entry_start(ctx->queue, ctx);
+    //else
+      //...//done
+  }
+}
+
+static void in_channel(GIOChannel *source, GIOCondition condition, GIOChannel *dest)
+{
+	GIOStatus stat = G_IO_STATUS_NORMAL;
+  static gchar buffer[1024];
+
+  if(condition & G_IO_IN)
+  {
+    gsize n;
+    stat = g_io_channel_read_chars(source, buffer, 1024, &n, NULL);
+    if(stat == G_IO_STATUS_NORMAL)
+      g_io_channel_write_chars(dest, buffer, n, NULL, NULL);
+  }
+
+  if(condition & G_IO_HUP || (stat != G_IO_STATUS_NORMAL && stat != G_IO_STATUS_AGAIN))
+  {
+    g_io_channel_unref(source);
+    g_io_channel_flush(dest, NULL);
+    g_io_channel_unref(dest);
+  }
+}
+
+static void out_channel(GIOChannel *source, GIOCondition condition, LSQExecuteContext *ctx)
+{
+	GIOStatus stat = G_IO_STATUS_NORMAL;
+  static gchar buffer[1024];
+
+  if(condition & G_IO_IN)
+  {
+    gsize n;
+    stat = g_io_channel_read_chars(source, buffer, 1024, &n, NULL);
+    //if(stat == G_IO_STATUS_NORMAL)
+      //g_io_channel_write_chars(dest, buffer, n, NULL, NULL);
+  }
+
+  if(condition & G_IO_HUP || (stat != G_IO_STATUS_NORMAL && stat != G_IO_STATUS_AGAIN))
+  {
+    g_io_channel_unref(source);
+    //g_io_channel_flush(dest);
+    //g_io_channel_unref(dest);
+    ctx->state &= ~LSQ_EXEC_CTX_STATE_PARSING;
+    if(!ctx->state)
+    {
+      if((ctx->queue = ctx->queue->next))
+        lsq_command_entry_start(ctx->queue, ctx);
+      //else
+        //...//done
+    }
+  }
+}
+
+static void parse_channel(GIOChannel *source, GIOCondition condition, LSQExecuteContext *ctx)
+{
+  if(condition & G_IO_IN)
+    lsq_parser_parse(ctx->parser, ctx->ctx);
+  if(condition & G_IO_HUP || !lsq_parser_context_is_good(ctx->ctx))
+  {
+    lsq_parser_context_set_channel(ctx->ctx, NULL);
+    g_io_channel_unref(source);
+    ctx->state &= ~LSQ_EXEC_CTX_STATE_PARSING;
+    if(!ctx->state)
+    {
+      if((ctx->queue = ctx->queue->next))
+        lsq_command_entry_start(ctx->queue, ctx);
+      //else
+        //...//done
+    }
+  }
+}
+
+static void lsq_command_entry_start(LSQCommandEntry *entry, LSQExecuteContext *ctx)
+{
+  gint fd_in = FALSE;
+  gint fd_out = TRUE;
+  GIOChannel *redir_in;
+  GIOChannel *chan_in;
+  GIOChannel *redir_out;
+  GIOChannel *chan_out;
+  gchar **argv;
+  GPid pid;
+  GSpawnFlags flags = G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL;
+  if(entry->redirect_out)
+  {
+    gchar *file = format_get_filename(entry->redirect_out, ctx);
+    redir_in = g_io_channel_new_file(file, "w", NULL);
+    g_free(file);
+  }
+  else if(!ctx->ctx)
+  {
+    flags |= G_SPAWN_STDOUT_TO_DEV_NULL;
+    fd_out = FALSE;
+  }
+  if(entry->redirect_in)
+  {
+    gchar *file = format_get_filename(entry->redirect_in, ctx);
+    redir_in = g_io_channel_new_file(file, "r", NULL);
+    g_free(file);
+    fd_in = TRUE;
+  }
+
+  argv = lsq_command_entry_to_argv(entry, ctx);
+
+  g_spawn_async_with_pipes(NULL, argv, NULL, flags, NULL, NULL, &pid, fd_in?&fd_in:NULL, fd_out?&fd_out:NULL, NULL, NULL);
+
+  g_child_watch_add(pid, (GChildWatchFunc)child_exit, ctx);
+  ctx->state |= LSQ_EXEC_CTX_STATE_RUNNING;
+
+  if(entry->redirect_in)
+  {
+    chan_in = g_io_channel_unix_new(fd_in);
+    g_io_add_watch(redir_in, G_IO_IN|G_IO_HUP, (GIOFunc)in_channel, chan_in);
+  }
+  if(entry->redirect_out)
+  {
+    chan_out = g_io_channel_unix_new(fd_out);
+    g_io_add_watch(chan_out, G_IO_IN|G_IO_HUP, (GIOFunc)out_channel, ctx);
+    ctx->state |= LSQ_EXEC_CTX_STATE_PARSING;
+  }
+  else if(ctx->ctx)
+  {
+    chan_out = g_io_channel_unix_new(fd_out);
+    lsq_parser_context_set_channel(ctx->ctx, chan_out);
+    g_io_add_watch(chan_out, G_IO_IN|G_IO_HUP, (GIOFunc)parse_channel, ctx);
+    ctx->state |= LSQ_EXEC_CTX_STATE_PARSING;
+  }
+}
+
+LSQExecuteContext *lsq_command_queue_execute(LSQCommandQueue *queue, LSQArchive *archive, const gchar **files, LSQParser *parser)
+{
+  LSQExecuteContext *ctx;
+
+  ctx = g_new(LSQExecuteContext, 1);
+
+  ctx->queue = queue->queue;
+  ctx->archive = archive;
+  ctx->files = g_strdupv((gchar**)files);
+  ctx->parser = parser;
+  ctx->ctx = parser?lsq_parser_get_context(parser, archive):NULL;
+
+  lsq_command_entry_start(ctx->queue, ctx);
+
+  return ctx;
+}
+
 static gchar* strdup_escaped(const gchar *str, guint lng)/*{{{*/
 {
   guint i;

Modified: squeeze/trunk/libsqueeze/command-queue.h
===================================================================
--- squeeze/trunk/libsqueeze/command-queue.h	2008-03-01 13:16:37 UTC (rev 26653)
+++ squeeze/trunk/libsqueeze/command-queue.h	2008-03-01 14:41:50 UTC (rev 26654)
@@ -43,16 +43,22 @@
 			LSQ_TYPE_COMMAND_QUEUE,				 \
 	  LSQCommandQueueClass))
 
-
+#if 0
 typedef struct _LSQCommandQueue LSQCommandQueue;
+#endif
 
-
 typedef struct _LSQCommandQueueClass LSQCommandQueueClass;
 
+typedef struct _LSQExecuteContext LSQExecuteContext;
 
+
 GType		   lsq_command_queue_get_type(void);
 
+LSQCommandQueue *lsq_command_queue_new(const gchar *command_string);
 
+LSQExecuteContext *lsq_command_queue_execute(LSQCommandQueue *queue, LSQArchive *archive, const gchar **files, LSQParser *parser);
+
+
 G_END_DECLS
 
 #endif /* __LIBSQUEEZE_COMMAND_QUEUE_H__ */

Modified: squeeze/trunk/libsqueeze/support-reader.c
===================================================================
--- squeeze/trunk/libsqueeze/support-reader.c	2008-03-01 13:16:37 UTC (rev 26653)
+++ squeeze/trunk/libsqueeze/support-reader.c	2008-03-01 14:41:50 UTC (rev 26654)
@@ -32,6 +32,7 @@
 #include "parser-context.h"
 #include "parser.h"
 #include "scanf-parser.h"
+#include "command-queue.h"
 #include "support-reader.h"
 
 #include "internals.h"
@@ -182,11 +183,11 @@
 		s_template->mime_info = thunar_vfs_mime_database_get_info(lsq_mime_database, _mime_types[i]);
 		s_template->id = (const gchar *)factory->id;
 
-		s_template->new_cmd_queue	 = xfce_rc_read_list_entry(rc, "X-Squeeze-New", ";");
-		s_template->add_cmd_queue	 = xfce_rc_read_list_entry(rc, "X-Squeeze-Add", ";");
-		s_template->remove_cmd_queue  = xfce_rc_read_list_entry(rc, "X-Squeeze-Remove", ";");
-		s_template->extract_cmd_queue = xfce_rc_read_list_entry(rc, "X-Squeeze-Extract", ";");
-		s_template->refresh_cmd_queue = xfce_rc_read_list_entry(rc, "X-Squeeze-Refresh", ";");
+		s_template->new_cmd_queue	 = lsq_command_queue_new(xfce_rc_read_entry(rc, "X-Squeeze-New", NULL));
+		s_template->add_cmd_queue	 = lsq_command_queue_new(xfce_rc_read_entry(rc, "X-Squeeze-Add", NULL));
+		s_template->remove_cmd_queue  = lsq_command_queue_new(xfce_rc_read_entry(rc, "X-Squeeze-Remove", NULL));
+		s_template->extract_cmd_queue = lsq_command_queue_new(xfce_rc_read_entry(rc, "X-Squeeze-Extract", NULL));
+		s_template->refresh_cmd_queue = lsq_command_queue_new(xfce_rc_read_entry(rc, "X-Squeeze-Refresh", NULL));
 
     s_template->n_properties = g_strv_length(column_names);
     s_template->property_names = column_names;

Modified: squeeze/trunk/libsqueeze/support-template.h
===================================================================
--- squeeze/trunk/libsqueeze/support-template.h	2008-03-01 13:16:37 UTC (rev 26653)
+++ squeeze/trunk/libsqueeze/support-template.h	2008-03-01 14:41:50 UTC (rev 26654)
@@ -37,6 +37,9 @@
 #ifndef LSQParser
 typedef struct _LSQParser LSQParser;
 #endif
+#ifndef LSQCommandQueue
+typedef struct _LSQCommandQueue LSQCommandQueue;
+#endif
 
 typedef struct _LSQSupportTemplate LSQSupportTemplate;
 
@@ -51,11 +54,11 @@
 	gchar **property_names;
   LSQParser *parser;
 
-	gchar **new_cmd_queue;
-	gchar **add_cmd_queue;
-	gchar **remove_cmd_queue;
-	gchar **extract_cmd_queue;
-	gchar **refresh_cmd_queue;
+	LSQCommandQueue *new_cmd_queue;
+	LSQCommandQueue *add_cmd_queue;
+	LSQCommandQueue *remove_cmd_queue;
+	LSQCommandQueue *extract_cmd_queue;
+	LSQCommandQueue *refresh_cmd_queue;
 	LSQSupportType   support_mask;
 };
 

Modified: squeeze/trunk/src/application.c
===================================================================
--- squeeze/trunk/src/application.c	2008-03-01 13:16:37 UTC (rev 26653)
+++ squeeze/trunk/src/application.c	2008-03-01 14:41:50 UTC (rev 26654)
@@ -178,7 +178,7 @@
 	}
 	GtkWidget *message_dialog = sq_message_dialog_new(GTK_WINDOW_TOPLEVEL, lp_archive);
 	gtk_widget_show(message_dialog);
-	if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT))
+	if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, NULL))
 	{
 		GtkWidget *warning_dialog = gtk_message_dialog_new(NULL, 
 														   GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -253,7 +253,7 @@
 	GtkWidget *message_dialog = sq_message_dialog_new(GTK_WINDOW_TOPLEVEL, lp_archive);
 	gtk_widget_show(message_dialog);
 
-	if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD))
+	if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, NULL))
 	{
 		/* FIXME: show warning dialog */
 		GtkWidget *warning_dialog = gtk_message_dialog_new(NULL, 

Modified: squeeze/trunk/src/main_window.c
===================================================================
--- squeeze/trunk/src/main_window.c	2008-03-01 13:16:37 UTC (rev 26653)
+++ squeeze/trunk/src/main_window.c	2008-03-01 14:41:50 UTC (rev 26654)
@@ -821,7 +821,7 @@
 			lsq_iter_slist_free(filenames);
 			filenames = NULL;
 		}
-		if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT))
+		if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, NULL))
 		{
 			GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 															   GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -869,7 +869,7 @@
 		filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
 		if(filenames)
 		{
-			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD))
+			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, NULL))
 			{
 				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 																													 GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -911,7 +911,7 @@
 		filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
 		if(filenames)
 		{
-			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD))
+			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, NULL))
 			{
 				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window),
 									  GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -945,7 +945,7 @@
 			gtk_widget_hide(dialog);
 			sq_notebook_get_active_archive(SQ_NOTEBOOK(window->notebook), &lp_archive);
 			/* gtk_tree_view_set_model(sq_notebook_get_active_tree_view(SQ_NOTEBOOK(window->notebook)), NULL); */
-			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_REMOVE))
+			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_REMOVE, NULL))
 			{
 				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 																													 GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -982,7 +982,7 @@
 	SQMainWindow *window = SQ_MAIN_WINDOW(userdata);
 	SQArchiveStore *store = sq_notebook_get_active_store(SQ_NOTEBOOK(window->notebook));
 	LSQArchive *archive = sq_archive_store_get_archive(store);
-	lsq_archive_operate(archive, LSQ_COMMAND_TYPE_REFRESH);
+	lsq_archive_operate(archive, LSQ_COMMAND_TYPE_REFRESH, NULL);
 }
 
 static void
@@ -1232,7 +1232,7 @@
 	{
 		case GTK_RESPONSE_OK: /* VIEW */
 			sq_notebook_get_active_archive(SQ_NOTEBOOK(notebook), &lp_archive);
-			if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_OPEN))
+			if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_OPEN, NULL))
 			{
 				GtkWidget *warning_dialog = gtk_message_dialog_new(window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, _("Squeeze cannot view this file.\nthe application to support this is missing."));
 				if(warning_dialog)
@@ -1255,7 +1255,7 @@
 					g_slist_free(files);
 					files = NULL;
 				}
-				if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT))
+				if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, NULL))
 				{
 					GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 																	 GTK_DIALOG_DESTROY_WITH_PARENT, 

Modified: squeeze/trunk/src/notebook.c
===================================================================
--- squeeze/trunk/src/notebook.c	2008-03-01 13:16:37 UTC (rev 26653)
+++ squeeze/trunk/src/notebook.c	2008-03-01 14:41:50 UTC (rev 26654)
@@ -574,7 +574,7 @@
 
 	if(new_archive == FALSE)
 	{
-		lsq_archive_operate(archive, LSQ_COMMAND_TYPE_REFRESH);
+		lsq_archive_operate(archive, LSQ_COMMAND_TYPE_REFRESH, NULL);
 	}
 
 }



More information about the Xfce4-commits mailing list