From: Kalle Wallin Date: Tue, 28 Mar 2006 07:43:51 +0000 (+0000) Subject: fixed TAB completion support with libcursesw (path from René van Bevern) X-Git-Tag: v0.12_alpha1~404 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=6f801ae17628193cd2d666137a11710939e82794;p=ncmpc.git fixed TAB completion support with libcursesw (path from René van Bevern) git-svn-id: https://svn.musicpd.org/ncmpc/trunk@3957 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- diff --git a/ChangeLog b/ChangeLog index bc21a2d..62a9af5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2006-03-28 Kalle Wallin + * wreadln.c: fixed TAB completion support when built with libcursesw + (path from René van Bevern) + 2006-01-22 Kalle Wallin * configure.ac: use libcursesw by default * wreadln.c: use wget_wch (wide characters) when built with libcursesw diff --git a/src/wreadln.c b/src/wreadln.c index d5c25cc..fac2080 100644 --- a/src/wreadln.c +++ b/src/wreadln.c @@ -586,6 +586,33 @@ wreadln(WINDOW *w, case KEY_CTRL_E: cursor_move_to_eol(); break; + case TAB: + if( gcmp ) + { + char *prefix = NULL; + GList *list; + + i = wcstombs(NULL,wline,0)+1; + mbline = g_malloc0(i); + wcstombs(mbline, wline, i); + + if(wrln_pre_completion_callback) + wrln_pre_completion_callback(gcmp, mbline); + list = g_completion_complete(gcmp, mbline, &prefix); + if( prefix ) + { + mbstowcs(wline, prefix, wrln_max_line_size); + cursor_move_to_eol(); + g_free(prefix); + } + else + screen_bell(); + if( wrln_post_completion_callback ) + wrln_post_completion_callback(gcmp, mbline, list); + + g_free(mbline); + } + break; case KEY_CTRL_G: screen_bell(); g_free(wline);