@@ -317,12 +317,17 @@ ECPGexecute(struct statement * stmt)
317317if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
318318return false;
319319
320- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
320+ if (var -> arrsize > 1 )
321+ {
322+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
321323
322- for (element = 0 ;element < var -> arrsize ;element ++ )
323- sprintf (mallocedval + strlen (mallocedval ),"%d ," , ((short * )var -> value )[element ]);
324+ for (element = 0 ;element < var -> arrsize ;element ++ )
325+ sprintf (mallocedval + strlen (mallocedval ),"%hd ," , ((short * )var -> value )[element ]);
324326
325- sprintf (mallocedval + strlen (mallocedval )- 1 ,"%s" , (var -> arrsize > 1 ) ?"}'" :"" );
327+ strncpy (mallocedval + strlen (mallocedval )- 1 ,"}'" ,sizeof ("}'" ));
328+ }
329+ else
330+ sprintf (mallocedval ,"%hd" ,* ((short * )var -> value ));
326331
327332tobeinserted = mallocedval ;
328333break ;
@@ -331,12 +336,17 @@ ECPGexecute(struct statement * stmt)
331336if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
332337return false;
333338
334- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
339+ if (var -> arrsize > 1 )
340+ {
341+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
335342
336- for (element = 0 ;element < var -> arrsize ;element ++ )
337- sprintf (mallocedval + strlen (mallocedval ),"%d," , ((int * )var -> value )[element ]);
343+ for (element = 0 ;element < var -> arrsize ;element ++ )
344+ sprintf (mallocedval + strlen (mallocedval ),"%d," , ((int * )var -> value )[element ]);
338345
339- sprintf (mallocedval + strlen (mallocedval )- 1 ,"%s" , (var -> arrsize > 1 ) ?"}'" :"" );
346+ strncpy (mallocedval + strlen (mallocedval )- 1 ,"}'" ,sizeof ("}'" ));
347+ }
348+ else
349+ sprintf (mallocedval ,"%d" ,* ((int * )var -> value ));
340350
341351tobeinserted = mallocedval ;
342352break ;
@@ -345,12 +355,17 @@ ECPGexecute(struct statement * stmt)
345355if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
346356return false;
347357
348- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
358+ if (var -> arrsize > 1 )
359+ {
360+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
349361
350- for (element = 0 ;element < var -> arrsize ;element ++ )
351- sprintf (mallocedval + strlen (mallocedval ),"%d ," , ((unsigned short * )var -> value )[element ]);
362+ for (element = 0 ;element < var -> arrsize ;element ++ )
363+ sprintf (mallocedval + strlen (mallocedval ),"%hu ," , ((unsigned short * )var -> value )[element ]);
352364
353- sprintf (mallocedval + strlen (mallocedval )- 1 ,"%s" , (var -> arrsize > 1 ) ?"}'" :"" );
365+ strncpy (mallocedval + strlen (mallocedval )- 1 ,"}'" ,sizeof ("}'" ));
366+ }
367+ else
368+ sprintf (mallocedval ,"%hu" ,* ((unsigned short * )var -> value ));
354369
355370tobeinserted = mallocedval ;
356371break ;
@@ -359,26 +374,36 @@ ECPGexecute(struct statement * stmt)
359374if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
360375return false;
361376
362- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
377+ if (var -> arrsize > 1 )
378+ {
379+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
363380
364- for (element = 0 ;element < var -> arrsize ;element ++ )
365- sprintf (mallocedval + strlen (mallocedval ),"%d ," , ((unsignedint * )var -> value )[element ]);
381+ for (element = 0 ;element < var -> arrsize ;element ++ )
382+ sprintf (mallocedval + strlen (mallocedval ),"%u ," , ((unsignedint * )var -> value )[element ]);
366383
367- sprintf (mallocedval + strlen (mallocedval )- 1 ,"%s" , (var -> arrsize > 1 ) ?"}'" :"" );
384+ strncpy (mallocedval + strlen (mallocedval )- 1 ,"}'" ,sizeof ("}'" ));
385+ }
386+ else
387+ sprintf (mallocedval ,"%u" ,* ((unsignedint * )var -> value ));
368388
369389tobeinserted = mallocedval ;
370390break ;
371391
372392case ECPGt_long :
373393if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
374394return false;
375-
376- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
377395
378- for (element = 0 ;element < var -> arrsize ;element ++ )
379- sprintf (mallocedval + strlen (mallocedval ),"%ld," , ((long * )var -> value )[element ]);
396+ if (var -> arrsize > 1 )
397+ {
398+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
399+
400+ for (element = 0 ;element < var -> arrsize ;element ++ )
401+ sprintf (mallocedval + strlen (mallocedval ),"%ld," , ((long * )var -> value )[element ]);
380402
381- sprintf (mallocedval + strlen (mallocedval )- 1 ,"%s" , (var -> arrsize > 1 ) ?"}'" :"" );
403+ strncpy (mallocedval + strlen (mallocedval )- 1 ,"}'" ,sizeof ("}'" ));
404+ }
405+ else
406+ sprintf (mallocedval ,"%ld" ,* ((long * )var -> value ));
382407
383408tobeinserted = mallocedval ;
384409break ;
@@ -387,12 +412,17 @@ ECPGexecute(struct statement * stmt)
387412if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
388413return false;
389414
390- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
415+ if (var -> arrsize > 1 )
416+ {
417+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
391418
392- for (element = 0 ;element < var -> arrsize ;element ++ )
393- sprintf (mallocedval + strlen (mallocedval ),"%ld ," , ((unsigned long * )var -> value )[element ]);
419+ for (element = 0 ;element < var -> arrsize ;element ++ )
420+ sprintf (mallocedval + strlen (mallocedval ),"%lu ," , ((unsigned long * )var -> value )[element ]);
394421
395- sprintf (mallocedval + strlen (mallocedval )- 1 ,"%s" , (var -> arrsize > 1 ) ?"}'" :"" );
422+ strncpy (mallocedval + strlen (mallocedval )- 1 ,"}'" ,sizeof ("}'" ));
423+ }
424+ else
425+ sprintf (mallocedval ,"%lu" ,* ((unsigned long * )var -> value ));
396426
397427tobeinserted = mallocedval ;
398428break ;
@@ -401,12 +431,17 @@ ECPGexecute(struct statement * stmt)
401431if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
402432return false;
403433
404- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
434+ if (var -> arrsize > 1 )
435+ {
436+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
405437
406- for (element = 0 ;element < var -> arrsize ;element ++ )
407- sprintf (mallocedval + strlen (mallocedval ),"%.14g," , ((float * )var -> value )[element ]);
438+ for (element = 0 ;element < var -> arrsize ;element ++ )
439+ sprintf (mallocedval + strlen (mallocedval ),"%.14g," , ((float * )var -> value )[element ]);
408440
409- sprintf (mallocedval + strlen (mallocedval )- 1 ,"%s" , (var -> arrsize > 1 ) ?"}'" :"" );
441+ strncpy (mallocedval + strlen (mallocedval )- 1 ,"}'" ,sizeof ("}'" ));
442+ }
443+ else
444+ sprintf (mallocedval ,"%.14g" ,* ((float * )var -> value ));
410445
411446tobeinserted = mallocedval ;
412447break ;
@@ -415,12 +450,17 @@ ECPGexecute(struct statement * stmt)
415450if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
416451return false;
417452
418- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
453+ if (var -> arrsize > 1 )
454+ {
455+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
419456
420- for (element = 0 ;element < var -> arrsize ;element ++ )
421- sprintf (mallocedval + strlen (mallocedval ),"%.14g," , ((double * )var -> value )[element ]);
457+ for (element = 0 ;element < var -> arrsize ;element ++ )
458+ sprintf (mallocedval + strlen (mallocedval ),"%.14g," , ((double * )var -> value )[element ]);
422459
423- sprintf (mallocedval + strlen (mallocedval )- 1 ,"%s" , (var -> arrsize > 1 ) ?"}'" :"" );
460+ strncpy (mallocedval + strlen (mallocedval )- 1 ,"}'" ,sizeof ("}'" ));
461+ }
462+ else
463+ sprintf (mallocedval ,"%.14g" ,* ((double * )var -> value ));
424464
425465tobeinserted = mallocedval ;
426466break ;
@@ -429,12 +469,17 @@ ECPGexecute(struct statement * stmt)
429469if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
430470return false;
431471
432- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
472+ if (var -> arrsize > 1 )
473+ {
474+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
433475
434- for (element = 0 ;element < var -> arrsize ;element ++ )
435- sprintf (mallocedval + strlen (mallocedval ),"%c," , (((char * )var -> value )[element ]) ?'t' :'f' );
476+ for (element = 0 ;element < var -> arrsize ;element ++ )
477+ sprintf (mallocedval + strlen (mallocedval ),"%c," , (((char * )var -> value )[element ]) ?'t' :'f' );
436478
437- sprintf (mallocedval + strlen (mallocedval )- 1 ,"%s" , (var -> arrsize > 1 ) ?"}'" :"" );
479+ strncpy (mallocedval + strlen (mallocedval )- 1 ,"}'" ,sizeof ("}'" ));
480+ }
481+ else
482+ sprintf (mallocedval ,"%c," , (* ((char * )var -> value )) ?'t' :'f' );
438483
439484tobeinserted = mallocedval ;
440485break ;
@@ -814,7 +859,7 @@ ECPGdo(int lineno, const char *connection_name, char *query, ...)
814859 *
815860 * Copyright (c) 2000, Christof Petig <christof.petig@wtal.de>
816861 *
817- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/execute.c,v 1.2 2000/03/17 23:26:31 tgl Exp $
862+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/execute.c,v 1.3 2000/04/03 19:34:25 meskes Exp $
818863 */
819864
820865PGconn * ECPG_internal_get_connection (char * name );