From 9c0dcfe954a94e20b8a30604a0b475cace5c52c1 Mon Sep 17 00:00:00 2001 From: piaip Date: Sat, 24 Oct 2009 07:37:16 +0000 Subject: * add default values to name completion git-svn-id: http://opensvn.csie.org/pttbbs/trunk@4978 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- pttbbs/include/proto.h | 2 ++ pttbbs/mbbsd/name.c | 20 ++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/pttbbs/include/proto.h b/pttbbs/include/proto.h index 6958c79c..d3bf2e08 100644 --- a/pttbbs/include/proto.h +++ b/pttbbs/include/proto.h @@ -388,10 +388,12 @@ typedef int (*gnc_perm_func)(int); typedef char* (*gnc_getname_func)(int); extern void namecomplete2(const struct Vector *namelist, const char *prompt, char *data); +extern void namecomplete3(const struct Vector *namelist, const char *prompt, char *data, const char *defval); extern int ShowVector(struct Vector *self, int row, int column, const char *prompt, int idx); extern void ToggleVector(struct Vector *list, int *recipient, const char *listfile, const char *msg); void usercomplete(const char *prompt, char *data); +void usercomplete2(const char *prompt, char *data, const char *defval); int generalnamecomplete(const char *prompt, char *data, int len, size_t nmemb, gnc_comp_func compar, gnc_perm_func permission, gnc_getname_func getname); diff --git a/pttbbs/mbbsd/name.c b/pttbbs/mbbsd/name.c index b47bcf41..85635440 100644 --- a/pttbbs/mbbsd/name.c +++ b/pttbbs/mbbsd/name.c @@ -143,6 +143,12 @@ nc_cb_peek(int key, VGET_RUNTIME *prt, void *instance) void namecomplete2(const struct Vector *namelist, const char *prompt, char *data) +{ + return namecomplete3(namelist, prompt, data, NULL); +} + +void +namecomplete3(const struct Vector *namelist, const char *prompt, char *data, const char *defval) { struct namecomplete_int nc_int = { .base = namelist, @@ -158,18 +164,24 @@ namecomplete2(const struct Vector *namelist, const char *prompt, char *data) outs(prompt); clrtoeol(); Vector_init(&nc_int.sublist, IDLEN+1); - Vector_sublist(namelist, &nc_int.sublist, ""); - vgetstring(data, IDLEN + 1, VGET_ASCII_ONLY|VGET_NO_NAV_EDIT, NULL, &vcb, &nc_int); + Vector_sublist(namelist, &nc_int.sublist, defval ? defval : ""); + vgetstring(data, IDLEN + 1, VGET_ASCII_ONLY|VGET_NO_NAV_EDIT, defval, &vcb, &nc_int); Vector_delete(&nc_int.sublist); } void -usercomplete(const char *prompt, char *data) +usercomplete2(const char *prompt, char *data, const char *defval) { struct Vector namelist; Vector_init_const(&namelist, SHM->userid[0], MAX_USERS, IDLEN+1); - namecomplete2(&namelist, prompt, data); + namecomplete3(&namelist, prompt, data, defval); +} + +void +usercomplete(const char *prompt, char *data) +{ + usercomplete2(prompt, data, NULL); } static int -- cgit v1.2.3