file-roller r2251 - in trunk: . src
- From: paobac svn gnome org
- To: svn-commits-list gnome org
- Subject: file-roller r2251 - in trunk: . src
- Date: Wed, 16 Apr 2008 18:02:01 +0100 (BST)
Author: paobac
Date: Wed Apr 16 18:02:00 2008
New Revision: 2251
URL: http://svn.gnome.org/viewvc/file-roller?rev=2251&view=rev
Log:
2008-04-16 Paolo Bacchilega <paobac svn gnome org>
* src/utf8-fnmatch.c:
* src/utf8-fnmatch.h: removed files.
* src/Makefile.am:
* src/glib-utils.h:
* src/glib-utils.c:
* src/gio-utils.c:
* src/fr-window.c:
* src/fr-archive.c:
* src/dlg-extract.c:
Use GRegex instead of the utf8_fnmatch function.
Removed:
trunk/src/utf8-fnmatch.c
trunk/src/utf8-fnmatch.h
Modified:
trunk/ChangeLog
trunk/src/Makefile.am
trunk/src/dlg-extract.c
trunk/src/fr-archive.c
trunk/src/fr-window.c
trunk/src/gio-utils.c
trunk/src/glib-utils.c
trunk/src/glib-utils.h
Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am (original)
+++ trunk/src/Makefile.am Wed Apr 16 18:02:00 2008
@@ -129,8 +129,6 @@
sexy-icon-entry.h \
typedefs.h \
ui.h \
- utf8-fnmatch.c \
- utf8-fnmatch.h \
$(MKDTEMP_FILES) \
$(BUILT_SOURCES)
Modified: trunk/src/dlg-extract.c
==============================================================================
--- trunk/src/dlg-extract.c (original)
+++ trunk/src/dlg-extract.c Wed Apr 16 18:02:00 2008
@@ -198,7 +198,7 @@
fr_window_set_extract_default_dir (window, extract_to_dir, TRUE);
overwrite = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->e_overwrite_checkbutton));
- skip_newer = !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (data->e_not_newer_checkbutton)) && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->e_not_newer_checkbutton));
+ skip_newer = ! gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (data->e_not_newer_checkbutton)) && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->e_not_newer_checkbutton));
junk_paths = ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->e_recreate_dir_checkbutton));
eel_gconf_set_boolean (PREF_EXTRACT_OVERWRITE, overwrite);
@@ -225,7 +225,7 @@
file_list = NULL;
- if (selected_files){
+ if (selected_files) {
file_list = data->selected_files;
data->selected_files = NULL; /* do not the list when destroying the dialog. */
}
Modified: trunk/src/fr-archive.c
==============================================================================
--- trunk/src/fr-archive.c (original)
+++ trunk/src/fr-archive.c Wed Apr 16 18:02:00 2008
@@ -54,7 +54,6 @@
#include "fr-error.h"
#include "fr-marshal.h"
#include "fr-process.h"
-#include "utf8-fnmatch.h"
#ifndef NCARGS
#define NCARGS _POSIX_ARG_MAX
Modified: trunk/src/fr-window.c
==============================================================================
--- trunk/src/fr-window.c (original)
+++ trunk/src/fr-window.c Wed Apr 16 18:02:00 2008
@@ -53,7 +53,6 @@
#include "sexy-icon-entry.h"
#include "typedefs.h"
#include "ui.h"
-#include "utf8-fnmatch.h"
#define LAST_OUTPUT_DIALOG_NAME "last_output"
@@ -6341,13 +6340,13 @@
fr_window_get_file_list_pattern (FrWindow *window,
const char *pattern)
{
- char **patterns;
- GList *list;
- int i;
+ GRegex **regexps;
+ GList *list;
+ int i;
g_return_val_if_fail (window != NULL, NULL);
- patterns = search_util_get_patterns (pattern);
+ regexps = search_util_get_regexps (pattern, G_REGEX_CASELESS);
list = NULL;
for (i = 0; i < window->archive->command->files->len; i++) {
FileData *fd = g_ptr_array_index (window->archive->command->files, i);
@@ -6359,12 +6358,11 @@
continue;
utf8_name = g_filename_to_utf8 (fd->name, -1, NULL, NULL, NULL);
- if (match_patterns (patterns, utf8_name, 0))
+ if (match_regexps (regexps, utf8_name, 0))
list = g_list_prepend (list, g_strdup (fd->original_path));
g_free (utf8_name);
}
- if (patterns != NULL)
- g_strfreev (patterns);
+ free_regexps (regexps);
return g_list_reverse (list);
}
Modified: trunk/src/gio-utils.c
==============================================================================
--- trunk/src/gio-utils.c (original)
+++ trunk/src/gio-utils.c Wed Apr 16 18:02:00 2008
@@ -44,7 +44,6 @@
typedef struct {
char *pattern;
- char **patterns;
FilterOptions options;
GRegex **regexps;
} Filter;
@@ -56,30 +55,18 @@
{
Filter *filter;
GRegexCompileFlags flags;
- int i;
filter = g_new0 (Filter, 1);
- if ((pattern != NULL) && (strcmp (pattern, "*") != 0)) {
+ if ((pattern != NULL) && (strcmp (pattern, "*") != 0))
filter->pattern = g_strdup (pattern);
- filter->patterns = search_util_get_patterns (pattern);
- }
filter->options = options;
if (filter->options & FILTER_IGNORECASE)
flags = G_REGEX_CASELESS;
else
- flags = 0;
-
- if (filter->pattern != NULL) {
- filter->regexps = g_new0 (GRegex*, n_fields (filter->patterns) + 1);
- for (i = 0; filter->patterns[i] != NULL; i++)
- filter->regexps[i] = g_regex_new (filter->patterns[i],
- flags,
- G_REGEX_MATCH_NOTEMPTY,
- NULL);
- filter->regexps[i] = NULL;
- }
+ flags = 0;
+ filter->regexps = search_util_get_regexps (pattern, flags);
return filter;
}
@@ -91,43 +78,13 @@
g_return_if_fail (filter != NULL);
g_free (filter->pattern);
- if (filter->patterns != NULL)
- g_strfreev (filter->patterns);
- if (filter->regexps != NULL) {
- int i;
- for (i = 0; filter->regexps[i] != NULL; i++)
- g_regex_unref (filter->regexps[i]);
- g_free (filter->regexps);
- }
+ if (filter->regexps != NULL)
+ free_regexps (filter->regexps);
g_free (filter);
}
static gboolean
-match_regexps (GRegex **regexps,
- const char *string)
-{
- gboolean matched;
- int i;
-
- if ((regexps == NULL) || (regexps[0] == NULL))
- return TRUE;
-
- if (string == NULL)
- return FALSE;
-
- matched = FALSE;
- for (i = 0; regexps[i] != NULL; i++)
- if (g_regex_match (regexps[i], string, 0, NULL)) {
- matched = TRUE;
- break;
- }
-
- return matched;
-}
-
-
-static gboolean
filter_matches (Filter *filter,
const char *name)
{
@@ -151,7 +108,7 @@
return TRUE;
utf8_name = g_filename_to_utf8 (file_name, -1, NULL, NULL, NULL);
- matched = match_regexps (filter->regexps, utf8_name);
+ matched = match_regexps (filter->regexps, utf8_name, 0);
g_free (utf8_name);
return matched;
Modified: trunk/src/glib-utils.c
==============================================================================
--- trunk/src/glib-utils.c (original)
+++ trunk/src/glib-utils.c Wed Apr 16 18:02:00 2008
@@ -26,7 +26,6 @@
#include <glib/gi18n.h>
#include <glib/gprintf.h>
#include "glib-utils.h"
-#include "utf8-fnmatch.h"
#define MAX_PATTERNS 128
@@ -321,27 +320,41 @@
gboolean
-match_patterns (char **patterns,
- const char *string,
- int flags)
+match_regexps (GRegex **regexps,
+ const char *string,
+ GRegexMatchFlags match_options)
{
- int i;
- int result;
-
- if (patterns[0] == NULL)
+ gboolean matched;
+ int i;
+
+ if ((regexps == NULL) || (regexps[0] == NULL))
return TRUE;
if (string == NULL)
return FALSE;
+
+ matched = FALSE;
+ for (i = 0; regexps[i] != NULL; i++)
+ if (g_regex_match (regexps[i], string, match_options, NULL)) {
+ matched = TRUE;
+ break;
+ }
+
+ return matched;
+}
- result = FNM_NOMATCH;
- i = 0;
- while ((result != 0) && (patterns[i] != NULL)) {
- result = g_utf8_fnmatch (patterns[i], string, flags);
- i++;
- }
- return (result == 0);
+void
+free_regexps (GRegex **regexps)
+{
+ int i;
+
+ if (regexps == NULL)
+ return;
+
+ for (i = 0; regexps[i] != NULL; i++)
+ g_regex_unref (regexps[i]);
+ g_free (regexps);
}
@@ -351,6 +364,9 @@
char **patterns;
int i;
+ if (pattern_string == NULL)
+ return NULL;
+
patterns = g_utf8_strsplit (pattern_string, ";", MAX_PATTERNS);
for (i = 0; patterns[i] != NULL; i++) {
char *p1, *p2;
@@ -367,6 +383,30 @@
}
+GRegex **
+search_util_get_regexps (const char *pattern_string,
+ GRegexCompileFlags compile_options)
+{
+ char **patterns;
+ GRegex **regexps;
+ int i;
+
+ patterns = search_util_get_patterns (pattern_string);
+ if (patterns == NULL)
+ return NULL;
+
+ regexps = g_new0 (GRegex*, n_fields (patterns) + 1);
+ for (i = 0; patterns[i] != NULL; i++)
+ regexps[i] = g_regex_new (patterns[i],
+ G_REGEX_OPTIMIZE | compile_options,
+ G_REGEX_MATCH_NOTEMPTY,
+ NULL);
+ g_strfreev (patterns);
+
+ return regexps;
+}
+
+
char *
_g_strdup_with_max_size (const char *s,
int max_size)
Modified: trunk/src/glib-utils.h
==============================================================================
--- trunk/src/glib-utils.h (original)
+++ trunk/src/glib-utils.h Wed Apr 16 18:02:00 2008
@@ -43,10 +43,13 @@
const char *meta_chars);
char* unescape_str (const char *str);
gchar * shell_escape (const gchar *filename);
-gboolean match_patterns (char **patterns,
+gboolean match_regexps (GRegex **regexps,
const char *string,
- int flags);
+ GRegexMatchFlags match_options);
char ** search_util_get_patterns (const char *pattern_string);
+GRegex ** search_util_get_regexps (const char *pattern_string,
+ GRegexCompileFlags compile_options);
+void free_regexps (GRegex **regexps);
char * _g_strdup_with_max_size (const char *s,
int max_size);
const char * eat_spaces (const char *line);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]