diff --git a/src/interfaces/libpgtcl/pgtclCmds.c b/src/interfaces/libpgtcl/pgtclCmds.c index 620e4bcfe89f5a2a30950dee27f9dab8e91c7f55..563bd1768488aaaf9b44478d5fbaf04056b60436 100644 --- a/src/interfaces/libpgtcl/pgtclCmds.c +++ b/src/interfaces/libpgtcl/pgtclCmds.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.36 1998/10/01 01:45:38 tgl Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.37 1998/10/02 01:37:17 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -240,21 +240,23 @@ int Pg_conndefaults(ClientData cData, Tcl_Interp * interp, int argc, char **argv) { PQconninfoOption *option; - char buf[8192]; + Tcl_DString result; + char ibuf[32]; - Tcl_ResetResult(interp); + Tcl_DStringInit(&result); for (option = PQconndefaults(); option->keyword != NULL; option++) { - if (option->val == NULL) - option->val = ""; - sprintf(buf, "{%s} {%s} {%s} %d {%s}", - option->keyword, - option->label, - option->dispchar, - option->dispsize, - option->val); - Tcl_AppendElement(interp, buf); - } + char * val = option->val ? option->val : ""; + sprintf(ibuf, "%d", option->dispsize); + Tcl_DStringStartSublist(&result); + Tcl_DStringAppendElement(&result, option->keyword); + Tcl_DStringAppendElement(&result, option->label); + Tcl_DStringAppendElement(&result, option->dispchar); + Tcl_DStringAppendElement(&result, ibuf); + Tcl_DStringAppendElement(&result, val); + Tcl_DStringEndSublist(&result); + } + Tcl_DStringResult(interp, &result); return TCL_OK; }