summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-10-24 15:37:16 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-10-24 15:37:16 +0800
commit9c0dcfe954a94e20b8a30604a0b475cace5c52c1 (patch)
treeee6c276f28c9853d9fe85153fa4fd5fcd28c5ee4
parentc5a910aca07a272c93a3c9660b9f593237461677 (diff)
downloadpttbbs-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.h2
-rw-r--r--pttbbs/mbbsd/name.c20
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