summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorOkan Demirmen <okan@cvs.openbsd.org>2015-03-28 22:09:11 +0000
committerOkan Demirmen <okan@cvs.openbsd.org>2015-03-28 22:09:11 +0000
commit070eb34531f5de4b8eeca8cbb19d4d1e0e6783bc (patch)
treeb631c0d3b1c843b2adeb22eda96d2539acbe0651 /app
parentbc6f3e6149b9ab2d56ebfb073a839bd040f2879b (diff)
Reshuffle and slightly simplify menu_complete_path(), removing an
allocation, for tab-completion; checked by Alexander Polakov as well.
Diffstat (limited to 'app')
-rw-r--r--app/cwm/menu.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/app/cwm/menu.c b/app/cwm/menu.c
index 6c04fd6b0..7c9cce802 100644
--- a/app/cwm/menu.c
+++ b/app/cwm/menu.c
@@ -16,7 +16,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: menu.c,v 1.78 2015/01/19 14:54:16 okan Exp $
+ * $OpenBSD: menu.c,v 1.79 2015/03/28 22:09:10 okan Exp $
*/
#include <sys/types.h>
@@ -189,9 +189,7 @@ menu_complete_path(struct menu_ctx *mc)
{
struct menu *mi, *mr;
struct menu_q menuq;
- char *path = NULL;
- path = xcalloc(1, sizeof(mr->text));
mr = xcalloc(1, sizeof(*mr));
TAILQ_INIT(&menuq);
@@ -200,17 +198,15 @@ menu_complete_path(struct menu_ctx *mc)
CWM_MENU_DUMMY, search_match_path_any, NULL)) != NULL) {
mr->abort = mi->abort;
mr->dummy = mi->dummy;
- strlcpy(path, mi->text, sizeof(mi->text));
+ if (mi->text[0] != '\0')
+ snprintf(mr->text, sizeof(mr->text), "%s \"%s\"",
+ mc->searchstr, mi->text);
+ else if (!mr->abort)
+ strlcpy(mr->text, mc->searchstr, sizeof(mr->text));
}
menuq_clear(&menuq);
- if (path[0] != '\0')
- snprintf(mr->text, sizeof(mr->text), "%s \"%s\"",
- mc->searchstr, path);
- else if (!mr->abort)
- strlcpy(mr->text, mc->searchstr, sizeof(mr->text));
- free(path);
return(mr);
}