diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-10-24 15:37:16 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-10-24 15:37:16 +0800 |
commit | 9c0dcfe954a94e20b8a30604a0b475cace5c52c1 (patch) | |
tree | ee6c276f28c9853d9fe85153fa4fd5fcd28c5ee4 | |
parent | c5a910aca07a272c93a3c9660b9f593237461677 (diff) | |
download | pttbbs-9c0dcfe954a94e20b8a30604a0b475cace5c52c1.tar pttbbs-9c0dcfe954a94e20b8a30604a0b475cace5c52c1.tar.gz pttbbs-9c0dcfe954a94e20b8a30604a0b475cace5c52c1.tar.bz2 pttbbs-9c0dcfe954a94e20b8a30604a0b475cace5c52c1.tar.lz pttbbs-9c0dcfe954a94e20b8a30604a0b475cace5c52c1.tar.xz pttbbs-9c0dcfe954a94e20b8a30604a0b475cace5c52c1.tar.zst pttbbs-9c0dcfe954a94e20b8a30604a0b475cace5c52c1.zip |
* add default values to name completion
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@4978 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/include/proto.h | 2 | ||||
-rw-r--r-- | 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 @@ -144,6 +144,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, .dirty = 0, @@ -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 |