7
7
*
8
8
*
9
9
* IDENTIFICATION
10
- * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.9 1997/01/03 18:48:30 scrappy Exp $
10
+ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.10 1997/01/11 14:24:40 scrappy Exp $
11
11
*
12
12
*-------------------------------------------------------------------------
13
13
*/
@@ -1129,9 +1129,9 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
1129
1129
int r ;
1130
1130
size_t tupno ,column ,ncols ;
1131
1131
Tcl_DString headers ;
1132
+ char buffer [2048 ];
1132
1133
struct {
1133
1134
char * cname ;
1134
- char * data ;
1135
1135
int change ;
1136
1136
}* info ;
1137
1137
@@ -1166,24 +1166,23 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
1166
1166
for (column = 0 ;column < ncols ;column ++ )
1167
1167
{
1168
1168
info [column ].cname = PQfname (result ,column );
1169
- info [column ].data = malloc (2000 );
1170
1169
info [column ].change = 0 ;
1171
1170
Tcl_DStringAppendElement (& headers ,info [column ].cname );
1172
1171
}
1173
1172
1174
1173
Tcl_SetVar2 (interp ,argv [3 ],".headers" ,Tcl_DStringValue (& headers ),0 );
1175
- sprintf (info [ 0 ]. data ,"%d" ,ncols );
1176
- Tcl_SetVar2 (interp ,argv [3 ],".numcols" ,info [ 0 ]. data ,0 );
1174
+ sprintf (buffer ,"%d" ,ncols );
1175
+ Tcl_SetVar2 (interp ,argv [3 ],".numcols" ,buffer ,0 );
1177
1176
1178
1177
for (tupno = 0 ;tupno < PQntuples (result );tupno ++ )
1179
1178
{
1180
- sprintf (info [ 0 ]. data ,"%d" ,tupno );
1181
- Tcl_SetVar2 (interp ,argv [3 ],".tupno" ,info [ 0 ]. data ,0 );
1179
+ sprintf (buffer ,"%d" ,tupno );
1180
+ Tcl_SetVar2 (interp ,argv [3 ],".tupno" ,buffer ,0 );
1182
1181
1183
1182
for (column = 0 ;column < ncols ;column ++ )
1184
1183
{
1185
- strcpy (info [ column ]. data ,PQgetvalue (result ,tupno ,column ));
1186
- Tcl_SetVar2 (interp ,argv [3 ],info [column ].cname ,info [ column ]. data ,0 );
1184
+ strcpy (buffer ,PQgetvalue (result ,tupno ,column ));
1185
+ Tcl_SetVar2 (interp ,argv [3 ],info [column ].cname ,buffer ,0 );
1187
1186
}
1188
1187
1189
1188
Tcl_SetVar2 (interp ,argv [3 ],".command" ,"update" ,0 );
@@ -1206,6 +1205,8 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
1206
1205
}
1207
1206
}
1208
1207
1208
+ free (info );
1209
+ Tcl_UnsetVar (interp ,argv [3 ],0 );
1209
1210
Tcl_AppendResult (interp ,"" ,0 );
1210
1211
return TCL_OK ;
1211
1212
}