@@ -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 ," , ((unsigned int * ) var -> value )[element ]);
381
+ for (element = 0 ; element < var -> arrsize ; element ++ )
382
+ sprintf (mallocedval + strlen (mallocedval ), "%u ," , ((unsigned int * ) 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" , * ((unsigned int * ) 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 );
0 commit comments