The `enabled' and `disabled' completion lists don't get updated when a dynamic builtin is loaded:
$ compgen -A enabled tty $ enable tty $ compgen -A enabled tty $ diff --git a/builtins/enable.def b/builtins/enable.def index aa143760..399c7fa3 100644 --- a/builtins/enable.def +++ b/builtins/enable.def @@ -193,6 +193,8 @@ enable_builtin (WORD_LIST *list) result = EXECUTION_FAILURE; /* normalize return value */ #if defined (PROGRAMMABLE_COMPLETION) set_itemlist_dirty (&it_builtins); + set_itemlist_dirty (&it_enabled); + set_itemlist_dirty (&it_disabled); #endif } #endif @@ -208,6 +210,8 @@ enable_builtin (WORD_LIST *list) } #if defined (PROGRAMMABLE_COMPLETION) set_itemlist_dirty (&it_builtins); + set_itemlist_dirty (&it_enabled); + set_itemlist_dirty (&it_disabled); #endif } #endif @@ -237,6 +241,8 @@ enable_builtin (WORD_LIST *list) opt = r; #if defined (PROGRAMMABLE_COMPLETION) set_itemlist_dirty (&it_builtins); + set_itemlist_dirty (&it_enabled); + set_itemlist_dirty (&it_disabled); #endif } #endif