Hi Slava,
I noticed an incorrectly indented if() in file.c::panel_operate().
Took a better look, and found out it can be tweaked in several ways.
This patch is the result.
It contains the following trivial optimizations:
* merged two identical dest_dir_ = g_strdup (dest_dir) ops.
* simplified check for trailing '/' (no need to strcmp 1-char string).
* since g_free (NULL) is safe, merged two separate
if empty string then bail out code paths.
* fixed wording in a comment.
Slava, is it ok to send patches in attachments?
Do you want kernel-style Signed-off-by lines in patch submissions?
--
vda
diff -d -urpN mc.1/src/file.c mc.2/src/file.c
--- mc.1/src/file.c 2009-06-16 16:57:06.0 +0200
+++ mc.2/src/file.c 2009-06-17 14:58:30.0 +0200
@@ -1806,19 +1806,18 @@ panel_operate (void *source_panel, FileO
else
dest_dir = panel-cwd;
/*
- * Add trailing backslash only when do non-locally ops.
+ * Add trailing backslash only when do non-local ops.
* It saves user from occasional file renames (when destination
* dir is deleted)
*/
- if (force_single)
- /* just copy */
- dest_dir_ = g_strdup (dest_dir);
- else
+ if (!force_single
+ dest_dir[0]
+ dest_dir[strlen(dest_dir)-1] != PATH_SEP) {
/* add trailing separator */
- if (*dest_dir strcmp(dest_dir[strlen(dest_dir)-1], PATH_SEP_STR)) {
- dest_dir_ = g_strconcat (dest_dir, PATH_SEP_STR, (char*)0);
+ dest_dir_ = g_strconcat (dest_dir, PATH_SEP_STR, (char*)0);
} else {
- dest_dir_ = g_strdup (dest_dir);
+ /* just copy */
+ dest_dir_ = g_strdup (dest_dir);
}
if (!dest_dir_) {
file_op_context_destroy (ctx);
@@ -1830,11 +1829,7 @@ panel_operate (void *source_panel, FileO
single_entry, do_bg);
g_free(dest_dir_);
- if (!dest) {
- file_op_context_destroy (ctx);
- return 0;
- }
- if (!*dest) {
+ if (!dest || !dest[0]) {
file_op_context_destroy (ctx);
g_free (dest);
return 0;
___
Mc-devel mailing list
http://mail.gnome.org/mailman/listinfo/mc-devel