@@ -317,12 +317,17 @@ ECPGexecute(struct statement * stmt)
317
317
if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
318
318
return false;
319
319
320
- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
320
+ if (var -> arrsize > 1 )
321
+ {
322
+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
321
323
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 ]);
324
326
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 ));
326
331
327
332
tobeinserted = mallocedval ;
328
333
break ;
@@ -331,12 +336,17 @@ ECPGexecute(struct statement * stmt)
331
336
if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
332
337
return false;
333
338
334
- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
339
+ if (var -> arrsize > 1 )
340
+ {
341
+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
335
342
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 ]);
338
345
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 ));
340
350
341
351
tobeinserted = mallocedval ;
342
352
break ;
@@ -345,12 +355,17 @@ ECPGexecute(struct statement * stmt)
345
355
if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
346
356
return false;
347
357
348
- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
358
+ if (var -> arrsize > 1 )
359
+ {
360
+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
349
361
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 ]);
352
364
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 ));
354
369
355
370
tobeinserted = mallocedval ;
356
371
break ;
@@ -359,26 +374,36 @@ ECPGexecute(struct statement * stmt)
359
374
if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
360
375
return false;
361
376
362
- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
377
+ if (var -> arrsize > 1 )
378
+ {
379
+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
363
380
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 ]);
366
383
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 ));
368
388
369
389
tobeinserted = mallocedval ;
370
390
break ;
371
391
372
392
case ECPGt_long :
373
393
if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
374
394
return false;
375
-
376
- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
377
395
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 ]);
380
402
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 ));
382
407
383
408
tobeinserted = mallocedval ;
384
409
break ;
@@ -387,12 +412,17 @@ ECPGexecute(struct statement * stmt)
387
412
if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
388
413
return false;
389
414
390
- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
415
+ if (var -> arrsize > 1 )
416
+ {
417
+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
391
418
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 ]);
394
421
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 ));
396
426
397
427
tobeinserted = mallocedval ;
398
428
break ;
@@ -401,12 +431,17 @@ ECPGexecute(struct statement * stmt)
401
431
if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
402
432
return false;
403
433
404
- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
434
+ if (var -> arrsize > 1 )
435
+ {
436
+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
405
437
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 ]);
408
440
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 ));
410
445
411
446
tobeinserted = mallocedval ;
412
447
break ;
@@ -415,12 +450,17 @@ ECPGexecute(struct statement * stmt)
415
450
if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
416
451
return false;
417
452
418
- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
453
+ if (var -> arrsize > 1 )
454
+ {
455
+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
419
456
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 ]);
422
459
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 ));
424
464
425
465
tobeinserted = mallocedval ;
426
466
break ;
@@ -429,12 +469,17 @@ ECPGexecute(struct statement * stmt)
429
469
if (!(mallocedval = ecpg_alloc (var -> arrsize * 20 ,stmt -> lineno )))
430
470
return false;
431
471
432
- sprintf (mallocedval ,"%s" , (var -> arrsize > 1 ) ?"'{" :"" );
472
+ if (var -> arrsize > 1 )
473
+ {
474
+ strncpy (mallocedval ,"'{" ,sizeof ("'{" ));
433
475
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' );
436
478
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' );
438
483
439
484
tobeinserted = mallocedval ;
440
485
break ;
@@ -814,7 +859,7 @@ ECPGdo(int lineno, const char *connection_name, char *query, ...)
814
859
*
815
860
* Copyright (c) 2000, Christof Petig <christof.petig@wtal.de>
816
861
*
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 $
818
863
*/
819
864
820
865
PGconn * ECPG_internal_get_connection (char * name );