rpms/emelfm2/FC-5 e2-0.1.8-06-08-09.patch, NONE, 1.1 emelfm2.spec, 1.11, 1.12
Christoph Wickert (cwickert)
fedora-extras-commits at redhat.com
Thu Aug 10 23:30:19 UTC 2006
Author: cwickert
Update of /cvs/extras/rpms/emelfm2/FC-5
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24025
Modified Files:
emelfm2.spec
Added Files:
e2-0.1.8-06-08-09.patch
Log Message:
Include upstream's e2-0.1.8-06-08-09.patch to fix two serious bugs
e2-0.1.8-06-08-09.patch:
--- NEW FILE e2-0.1.8-06-08-09.patch ---
--- plugins/e2p_config.c 2006-06-23 01:03:45.000000000 -0400
+++ plugins/e2p_config.c 2006-08-09 11:15:13.000000000 -0400
@@ -526,5 +526,9 @@
if (e2_option_bool_get ("confirm-overwrite"))
{
+#ifdef FILES_UTF8ONLY
+ gchar *dlocal = F_FILENAME_TO_LOCALE ((gchar *)savepath);
+#else
gchar *dlocal = F_FILENAME_TO_LOCALE (savepath);
+#endif
if (e2_fs_access2 (dlocal) == 0)
{
@@ -974,5 +978,9 @@
else
openpath = ICON_DIR;
+#ifdef FILES_UTF8ONLY
+ gchar *local = F_FILENAME_TO_LOCALE ((gchar *)openpath);
+#else
gchar *local = F_FILENAME_TO_LOCALE (openpath);
+#endif
//default icons in config dir if it's usable
if (!e2_fs_is_dir3 (local) || e2_fs_access (local, R_OK | X_OK))
--- plugins/e2p_rename_ext.c 2006-08-02 09:38:04.000000000 -0400
+++ plugins/e2p_rename_ext.c 2006-08-05 23:03:49.000000000 -0400
@@ -266,6 +266,7 @@
* before this is called
*
- * @param oldtemplate search pattern string (utf8) possibly with 'extended' regex as appropriate
+ * @param oldtemplate search pattern string (utf8) possibly with 'extended' regex as appropriate, or NULL
* @param oldpath absolute path (utf8 string) of item to be changed
+ * @param rt pointer to dialog data struct
*
* @return replacement name, newly allocated utf8 string
@@ -591,8 +592,8 @@
if (regcomp (&compiled, old, REG_EXTENDED))
{
+ result = FALSE;
tmp2 = g_strdup_printf
(_("Error in regualar expression %s"), old);
e2_output_print_error (tmp2, TRUE);
- result = FALSE;
}
else
@@ -677,4 +678,41 @@
g_ptr_array_free (data.candidates, FALSE);
+ if (_e2pr_get_flag (NEW_THIS_P))
+ {
+ //for OLD_SEL_P, tmp2 is set inside remame loop
+ if (_e2pr_get_flag (OLD_WILD_P)) //, rt))
+ { //wildcard or specific names used
+ //adjust the find pattern, by replacing all '.', '*' and '?'
+ //in the pattern with their extended regex equivalents
+ gchar **split = g_strsplit (old, ".", -1);
+ tmp2 = g_strjoinv ("\\.", split);
+ g_strfreev (split);
+ split = g_strsplit (tmp2, "*", -1);
+ g_free (tmp2);
+ tmp2 = g_strjoinv ("(.*)", split);
+ g_strfreev (split);
+ split = g_strsplit (tmp2, "?", -1);
+ g_free (tmp2);
+ tmp2 = g_strjoinv ("(.)", split); //freeme later
+ g_strfreev (split);
+ // printd (DEBUG, "wildcard rename pattern is %s", pattern);
+ //get the chunks of the replacement pattern
+ _e2pr_parse_wildpattern (new, rt);
+ }
+ else if (_e2pr_get_flag (OLD_REGEX_P))
+ { //regex names (actually, paths) used
+ //convert the name using the same regex as 'find' used
+ tmp2 = (gchar *)old;
+ //get the chunks of the replacement pattern
+ _e2pr_parse_regexpattern (new, rt);
+ }
+ else //(OLD_SEL_P)
+ //CHECKME we can't match a new pattern against selected
+ //item name, but \0 would be ok ?
+ _e2pr_parse_regexpattern (new, rt);
+ }
+ else //we are just changing case
+ tmp2 = NULL; //don't need an old or new pattern
+
if (_e2pr_get_flag (NEW_LOWER_P)) //, rt))
rt->modeflags |= E2PR_LOWER;
@@ -714,48 +752,10 @@
gchar *base = g_path_get_basename (*thisone);
gchar *dir = g_path_get_dirname (*thisone);
- gchar *newbase;
- if (rt->modeflags & E2PR_SEL)
- {
- tmp2 = g_strdup (base);
- }
- else if (rt->modeflags & E2PR_SAME)
- {
- if (!rt->parsed)
- { //we haven't got the replacement chunks yet, get them now
- gchar **split;
- if (_e2pr_get_flag (OLD_WILD_P)) //, rt))
- { //wildcard or specific names used
- //adjust the find pattern, by replacing all '.', '*' and '?'
- //in the pattern with their extended regex equivalents
- split = g_strsplit (old, ".", -1);
- tmp2 = g_strjoinv ("\\.", split);
- g_strfreev (split);
- split = g_strsplit (tmp2, "*", -1);
- g_free (tmp2);
- tmp2 = g_strjoinv ("(.*)", split);
- g_strfreev (split);
- split = g_strsplit (tmp2, "?", -1);
- g_free (tmp2);
- tmp2 = g_strjoinv ("(.)", split);
- g_strfreev (split);
- // printd (DEBUG, "wildcard rename pattern is %s", pattern);
- //get the chunks of the replacement pattern
- _e2pr_parse_wildpattern (new, rt);
- }
- else
- { //regex names (actually, paths) used
- tmp2 = g_strdup (old);
- //get the chunks of the replacement pattern
- _e2pr_parse_regexpattern (new, rt);
- //we will convert the name using the same regex as 'find' used
- }
- rt->parsed = TRUE;
- }
- }
- else //we are just changing case
- tmp2 = g_strdup (old);
+ //for other cases, tmp2 is set outside loop
+ if ((rt->modeflags & E2PR_SAME) && _e2pr_get_flag (OLD_SEL_P))
+ tmp2 = base;
//get the replacement basename
- newbase = _e2pr_name_replace (tmp2, *thisone, rt);
+ gchar *newbase = _e2pr_name_replace (tmp2, *thisone, rt);
//ask, if the confirm option is is force, and the parent's stop btn not pressed
@@ -862,6 +862,7 @@
//cleanups
- g_strfreev (candidates);
+ if ((rt->modeflags & E2PR_SAME) && _e2pr_get_flag (OLD_WILD_P))
g_free (tmp2);
+ g_strfreev (candidates);
gint j;
for (j=0;j<E2_CHUNK_LIMIT;j++) //[0] never used, actually
--- src/config/e2_cl_option.c 2006-06-10 22:02:37.000000000 -0400
+++ src/config/e2_cl_option.c 2006-08-08 02:00:38.000000000 -0400
@@ -79,7 +79,12 @@
e2_cl_options.pane1_path = NULL;
e2_cl_options.pane2_path = NULL;
+#ifdef FILES_UTF8ONLY
+ e2_cl_options.config_dir = g_build_filename (g_get_user_config_dir (), BINNAME, NULL);
+ gchar *freeme;
+#else
gchar *freeme = e2_utf8_filename_from_locale (g_get_user_config_dir ());
e2_cl_options.config_dir = g_build_filename (freeme, BINNAME, NULL);
g_free (freeme);
+#endif
const gchar **encodings;
g_get_filename_charsets (&encodings);
@@ -100,8 +105,11 @@
e2_cl_options.suppress_gtk_output = (DEBUG_LEVEL > 4) ? FALSE : TRUE;
e2_cl_options.ignore_problems = FALSE;
+#ifdef FILES_UTF8ONLY
+ e2_cl_options.trash_dir = g_build_filename (g_get_user_data_dir (), "Trash", "files", NULL);
+#else
freeme = e2_utf8_filename_from_locale (g_get_user_data_dir ());
e2_cl_options.trash_dir = g_build_filename (freeme, "Trash", "files", NULL);
g_free (freeme);
-
+#endif
gint c, d = 0;
while (1)
@@ -158,5 +166,9 @@
g_free (e2_cl_options.config_dir);
if (g_path_is_absolute (optarg))
+#ifdef FILES_UTF8ONLY
+ convert = g_strdup (optarg);
+#else
convert = optarg;
+#endif
else
{
@@ -165,10 +177,14 @@
g_free (freeme);
}
+#ifdef FILES_UTF8ONLY
+ e2_cl_options.config_dir = convert;
+#else
e2_cl_options.config_dir = e2_utf8_filename_from_locale (convert);
if (convert != optarg)
g_free (convert);
+#endif
printd (DEBUG, "setting config directory '%s'", e2_cl_options.config_dir);
break;
- #ifdef DEBUG_MESSAGES
+#ifdef DEBUG_MESSAGES
case 'd':
printd (DEBUG, "setting debug level '%s'", optarg);
@@ -185,5 +201,5 @@
}
break;
- #endif
+#endif
case 'e':
g_free (e2_cl_options.encoding);
@@ -205,5 +221,9 @@
g_free (e2_cl_options.trash_dir);
if (g_path_is_absolute (optarg))
+#ifdef FILES_UTF8ONLY
+ convert = g_strdup (optarg);
+#else
convert = optarg;
+#endif
else
{
@@ -212,7 +232,11 @@
g_free (freeme);
}
+#ifdef FILES_UTF8ONLY
+ e2_cl_options.trash_dir = convert;
+#else
e2_cl_options.trash_dir = e2_utf8_filename_from_locale (convert);
if (convert != optarg)
g_free (convert);
+#endif
printd (DEBUG, "setting trash directory '%s'", e2_cl_options.trash_dir);
break;
--- src/config/e2_option__default.c 2006-07-15 20:31:46.000000000 -0400
+++ src/config/e2_option__default.c 2006-08-09 11:13:46.000000000 -0400
@@ -239,5 +239,5 @@
E2_OPTION_FLAG_BASIC | E2_OPTION_FLAG_BUILDLISTS);
- e2_option_bool_register ("show-updir-entry", group_name, _("show parent directory entry '..' in each file list"),
+ e2_option_bool_register ("show-updir-entry", group_name, _("show parent directory entry '..' in file lists"),
_("This slows status-line updates"), NULL, FALSE,
E2_OPTION_FLAG_BASIC | E2_OPTION_FLAG_BUILDLISTS);
--- src/config/e2_option_tree.c 2006-07-22 18:53:08.000000000 -0400
+++ src/config/e2_option_tree.c 2006-08-07 17:33:42.000000000 -0400
@@ -160,4 +160,6 @@
//clean up
gtk_tree_path_free (path);
+ //revert focus to edited row
+ gtk_widget_grab_focus (set->widget);
}
--- src/dialogs/e2_edit_dialog.c 2006-07-30 22:00:36.000000000 -0400
+++ src/dialogs/e2_edit_dialog.c 2006-08-08 02:02:26.000000000 -0400
@@ -355,6 +355,13 @@
E2_ViewDialogRuntime *rt)
{
+ if (!gtk_text_buffer_get_modified (GTK_TEXT_BUFFER (rt->textbuffer)))
+ return; //no point in reloading
+ DialogButtons choice = e2_dialog_warning (
+ _("Reverting to saved version cannot be undone"));
+ if (choice == OK)
+ {
e2_view_dialog_read_text (rt); //probably won't fail when refreshing
gtk_text_buffer_set_modified (rt->textbuffer, FALSE);
+ }
gtk_widget_grab_focus (rt->textview);
}
@@ -615,5 +622,5 @@
e2_menu_add_action (menu, _("Se_ttings"), GTK_STOCK_PREFERENCES,
_("Open the configuration dialog at the options page"),
- item_name, _C(40), //_("view")
+ item_name, _C(9), //_("dialogs")
NULL);
g_free(item_name);
@@ -1046,5 +1053,5 @@
{ //edit output pane buffer
const gchar *home = g_get_home_dir ();
- gchar *utf = F_FILENAME_FROM_LOCALE (home);
+ gchar *utf = F_FILENAME_FROM_LOCALE ((gchar *)home);
gchar *name = g_strconcat (_C(27), "-", _A(39), NULL); //_("output-edit")
rt->filepath = g_build_filename (utf, name, NULL);
@@ -1082,4 +1089,6 @@
// gtk_label_set_line_wrap (GTK_LABEL (label), FALSE);
gtk_label_set_selectable (GTK_LABEL (label), TRUE);
+
+ e2_widget_add_separator (GTK_DIALOG (rt->dialog)->vbox, FALSE, 0);
//create the view
GtkWidget *sw = e2_widget_add_sw (GTK_DIALOG (rt->dialog)->vbox,
@@ -1100,10 +1109,13 @@
rt->history = e2_list_copy_with_data (find_history); //CHECKME why copy these ?
rt->rephistory = e2_list_copy_with_data (replace_history);
- //action area is a GtkHButtonBox, things can't be stacked
- //vertically there
- //so we put the search panel at the bottom of the dialog's vbox
- rt->panel = e2_widget_add_box (GTK_DIALOG (rt->dialog)->vbox,
- FALSE, 0, TRUE, FALSE, 0);
- gtk_widget_hide (rt->panel);
+
+ //action_area is a GtkHButtonBox packed at the end of the dialog's vbox
+ //ditto for dialog->separator
+ //locate find-bar between those 2
+ rt->panel = e2_widget_get_box (TRUE, FALSE, 0);
+ gtk_box_pack_end (GTK_BOX (GTK_DIALOG (rt->dialog)->vbox), rt->panel,
+ FALSE, TRUE, E2_PADDING_XSMALL);
+ gtk_box_reorder_child (GTK_BOX (GTK_DIALOG (rt->dialog)->vbox), rt->panel, 1);
+
//add handlebox
GtkWidget *hndlbox = gtk_handle_box_new ();
--- src/dialogs/e2_permissions_dialog.c 2006-07-22 19:19:20.000000000 -0400
+++ src/dialogs/e2_permissions_dialog.c 2006-08-08 00:49:11.000000000 -0400
@@ -374,4 +374,12 @@
statbuf.st_mode & S_ISVTX, &rt);
+ if (!rt.permission || !thisis_dir)
+ {
+ //prevent testing of missing widgets in the response cb
+ rt.recurse_button = NULL;
+ rt.recurse_dirs_button = NULL;
+ rt.recurse_other_button = NULL;
+ }
+
if (rt.permission)
{
@@ -421,12 +429,7 @@
}
else //no right to change object permissions
- {
- //prevent testing of missing widgets in the response cb
- rt.recurse_button = NULL;
- rt.recurse_dirs_button = NULL;
- rt.recurse_other_button = NULL;
//show message
e2_ownership_dialog_warn (dialog_vbox);
- }
+
g_string_free (label_text, TRUE);
--- src/dialogs/e2_view_dialog.c 2006-07-31 01:39:58.000000000 -0400
+++ src/dialogs/e2_view_dialog.c 2006-08-07 17:33:42.000000000 -0400
@@ -442,6 +442,6 @@
item_name = g_strconcat (_A(2),".",_A(32),NULL);
e2_menu_add_action (menu, _("_Settings"), GTK_STOCK_PREFERENCES,
- _("Open the configuration dialog at the view options page"),
- item_name, _C(40), //_("view")
+ _("Open the configuration dialog at the options page"),
+ item_name, _C(9), //_("dialogs")
NULL);
g_free(item_name);
@@ -907,4 +907,6 @@
gtk_window_set_type_hint (GTK_WINDOW (rt->dialog),
GDK_WINDOW_TYPE_HINT_NORMAL);
+
+ e2_widget_add_separator (GTK_DIALOG (rt->dialog)->vbox, FALSE, 0);
//create the view
GtkWidget *sw = e2_widget_add_sw (GTK_DIALOG (rt->dialog)->vbox,
@@ -927,10 +929,12 @@
rt->history = e2_list_copy_with_data (find_history);
- //action area is a GtkHButtonBox, things can't be stacked
- //vertically there
- //so we put the search panel at the bottom of the dialog's vbox
- rt->panel = e2_widget_add_box (GTK_DIALOG (rt->dialog)->vbox,
- FALSE, 0, TRUE, FALSE, 0);
- gtk_widget_hide (rt->panel);
+ //action area is a GtkHButtonBox packed at the end of the dialog's vbox
+ //ditto for dialog->separator
+ //locate find-bar between those 2
+ rt->panel = e2_widget_get_box (TRUE, FALSE, 0);
+ gtk_box_pack_end (GTK_BOX (GTK_DIALOG (rt->dialog)->vbox), rt->panel,
+ FALSE, TRUE, E2_PADDING_XSMALL);
+ gtk_box_reorder_child (GTK_BOX (GTK_DIALOG (rt->dialog)->vbox), rt->panel, 1);
+
//add handlebox
GtkWidget *hndlbox = gtk_handle_box_new ();
--- src/e2_context_menu.c 2006-07-17 06:49:08.000000000 -0400
+++ src/e2_context_menu.c 2006-08-07 17:34:35.000000000 -0400
@@ -512,5 +512,5 @@
g_strconcat("\t",_("_Edit plugins.."),"|gtk-preferences|false|false|",_A(2),".",_C(33),"|",NULL),
g_strconcat(_("_User commands"),"|user_commands_"E2IP".png|false|false|",_A(18),"|",NULL),
- g_strconcat("\t",_("_Make new file.."),"|gtk-new|false|true|touch|%{",_("Enter file name:"),"}",NULL), //_A(16)
+ g_strconcat("\t",_("_Make new file.."),"|gtk-new|false|true|touch|'%{",_("Enter file name:"),"}'",NULL), //_A(16)
g_strconcat("\t",_("_Compare files"),"||false|true|>cmp|-s %f %F && echo \"",_("The files are identical"),"\"\\n \\|\\| echo \"",_("The files are different"),"\"\\n",NULL), //_A(16)
g_strconcat("\t",_("Compare _directories"),"||false|true|diff|%d %D",NULL), //_A(16)
@@ -518,5 +518,5 @@
g_strconcat("\t",_("_Remove spaces"),"||false|true|>mv|%f `echo %f \\| sed -e 's/ //g'` 2>/dev/null &",NULL), //_A(16)
g_strconcat("\t",_("_Split file.."),"||false|true|split|-b %{",_("Enter the piece-size (in kB):"),"}k %f %f_",NULL), //_A(16)
- g_strconcat("\t",_("Co_ncatenate files.."),"||false|true|cat|%f > %{",_("Enter the name of the combined file:"),"}",NULL), //_A(16)
+ g_strconcat("\t",_("Co_ncatenate files.."),"||false|true|cat|%f > '%{",_("Enter the name of the combined file:"),"}'",NULL), //_A(16)
g_strconcat("\t",_("_Free space"),"||false|true|>stat|-f %d \\| awk '/Blocks/ {printf \"%2.1f ", _("percent free"),"\",$5/$3*100}'",NULL), //_A(16)
g_strconcat("\t||false|true|",_A(17),"|",NULL),
--- src/e2_fileview.c 2006-08-05 06:34:20.000000000 -0400
+++ src/e2_fileview.c 2006-08-09 11:30:27.000000000 -0400
@@ -1670,5 +1670,5 @@
/**
* @brief update filters for treeview
- * This changes model, and attaches view to new model, as appropriate
+ * This changes model, and attaches view to new model
* Assumes view attached to a model (store ?)
* When new store is created, view->filtered_before will be false
@@ -1732,4 +1732,7 @@
gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (view->model));
}
+ else //still unfiltered, make sure the filtermodel is applied
+ gtk_tree_view_set_model (GTK_TREE_VIEW (view->treeview), view->model);
+
view->filtered_before = filtered_now;
}
@@ -2634,5 +2637,9 @@
GtkTreeSortable *sortable;
GList *entries;
+#ifdef E2_NEWREFRESH
+ if (view->refreshtype == E2_CHANGE)
+#else
if (view->refreshtype == E2_REFRESH || view->refreshtype == E2_CHANGE)
+#endif
{
//construct relevant items data for store-filler
@@ -2649,4 +2656,5 @@
}
// printd (DEBUG, "current directory data loaded");
+#ifndef E2_NEWREFRESH
#if defined (E2_FAM_INOTIFY) || defined (E2_FAM_DNOTIFY) || defined (E2_FAM_KQUEUE)
if (view->refreshtype == E2_REFRESH)
@@ -2659,4 +2667,5 @@
change after an item is processed in this refresh */
#endif //which fam
+#endif //ndef E2_NEWREFRESH
mdl = GTK_TREE_MODEL (view->store);
sortable = GTK_TREE_SORTABLE (mdl);
@@ -2673,5 +2682,4 @@
//make sure the store stays alive after the treeview unrefs the model
g_object_ref (G_OBJECT (view->store));
-#endif
/* for speed, and no-blanking in the case of repeated
refreshes, detach model from view
@@ -2679,4 +2687,5 @@
store-clear that we do this */
gtk_tree_view_set_model (GTK_TREE_VIEW (view->treeview), NULL);
+#endif
}
else //doing a window recreation
@@ -3310,5 +3319,7 @@
ACCESSED, access,
CHANGED, change,
+ FORECOLOR, foreground, //maybe changed executable status
-1);
+ //copy this so original can be cleared
currinfoptr->statbuf = newinfoptr->statbuf;
}
--- src/e2_output.c 2006-07-25 19:48:56.000000000 -0400
+++ src/e2_output.c 2006-08-05 22:57:42.000000000 -0400
@@ -304,6 +304,6 @@
g_free (action);
g_free (path);
- ext = (gchar *)0x2; //prevent further handling
}
+ ext = (gchar *)0x2; //prevent further handling
}
else
Index: emelfm2.spec
===================================================================
RCS file: /cvs/extras/rpms/emelfm2/FC-5/emelfm2.spec,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- emelfm2.spec 6 Aug 2006 22:28:09 -0000 1.11
+++ emelfm2.spec 10 Aug 2006 23:30:19 -0000 1.12
@@ -1,6 +1,6 @@
Name: emelfm2
Version: 0.1.8
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A file manager that implements the popular two-pane design
Group: Applications/File
@@ -8,6 +8,7 @@
URL: http://emelfm2.net/
Source0: http://emelfm2.net/rel/emelfm2-%{version}.tar.gz
Patch0: emelfm2-makefile.config.patch
+Patch1: e2-0.1.8-06-08-09.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gtk2-devel >= 2.6.0, gettext, desktop-file-utils
@@ -21,6 +22,7 @@
%prep
%setup -q
+%patch1 -p0 -b .06-08-09
%patch0 -p0 -b .orig
sed -i 's!%PREFIX%'!'%{_prefix}!' Makefile.config
# fix for x86_64 libs
@@ -65,6 +67,9 @@
%changelog
+* Fri Aug 11 2006 Christoph Wickert <fedora christoph-wickert de> - 0.1.8-2
+- Include upstream's e2-0.1.8-06-08-09.patch to fix two serious bugs.
+
* Sun Aug 06 2006 Christoph Wickert <fedora christoph-wickert de> - 0.1.8-1
- Update to 0.1.8.
More information about the fedora-extras-commits
mailing list