From 457dbb98bf4796afd16f8bc12f9a7dc3d6475fe8 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Wed, 15 Feb 2012 21:38:59 +0300 Subject: [PATCH] (expand_format): minor optimization. Signed-off-by: Andrew Borodin --- src/filemanager/usermenu.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/filemanager/usermenu.c b/src/filemanager/usermenu.c index d10b04e6c..0a8bfbba1 100644 --- a/src/filemanager/usermenu.c +++ b/src/filemanager/usermenu.c @@ -827,29 +827,29 @@ expand_format (struct WEdit *edit_widget, char c, gboolean do_quote) case 't': case 'u': { - int length = 2, i; - char *block, *tmp; + GString *block; + int i; - if (!panel) + if (panel == NULL) return g_strdup (""); - for (i = 0; i < panel->count; i++) - if (panel->dir.list[i].f.marked) - length += strlen (panel->dir.list[i].fname) + 1; /* for space */ + block = g_string_sized_new (16); - block = g_malloc (length * 2 + 1); - *block = 0; for (i = 0; i < panel->count; i++) if (panel->dir.list[i].f.marked) { + char *tmp; + tmp = (*quote_func) (panel->dir.list[i].fname, 0); - strcat (block, tmp); + g_string_append (block, tmp); + g_string_append_c (block, ' '); g_free (tmp); - strcat (block, " "); + if (c_lc == 'u') do_file_mark (panel, i, 0); } - return block; + + return g_string_free (block, FALSE); } /* sub case block */ } /* switch */ result = g_strdup ("% "); -- 2.11.4.GIT