aboutsummaryrefslogtreecommitdiffstats
path: root/src/wreadln.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wreadln.c')
-rw-r--r--src/wreadln.c27
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);