diff options
author | Kalle Wallin <kaw@linux.se> | 2006-03-28 07:43:51 +0000 |
---|---|---|
committer | Kalle Wallin <kaw@linux.se> | 2006-03-28 07:43:51 +0000 |
commit | 6f801ae17628193cd2d666137a11710939e82794 (patch) | |
tree | 1ca8dea1f2036c0a46d361182f842e0431c756e3 /src/wreadln.c | |
parent | 7391a6e7fada2ad1814ec637cfc1b0094a7b4cdb (diff) | |
download | mpd-6f801ae17628193cd2d666137a11710939e82794.tar.gz mpd-6f801ae17628193cd2d666137a11710939e82794.tar.xz mpd-6f801ae17628193cd2d666137a11710939e82794.zip |
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
Diffstat (limited to '')
-rw-r--r-- | src/wreadln.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/wreadln.c b/src/wreadln.c index d5c25cc8b..fac2080c2 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); |