0001
0002
0003 "tslib_fcd.c"
0004
0005
0006
0007
0008
0009
0010 #include <stdlib.h>
0011 #include <string.h>
0012 #include <memory.h>
0013 #include "tsconf.h"
0014 #include "tsdef.h"
0015 #include "tstype.h"
0016 char tslib_reel = 'f';
0017 #define PREPASIZE 8
0018 #define LHEURE 9
0019 #define LDATE 11
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 int
0049 tssigdeclenche_ (NomDon, NumChoc, NomDec, Occur, NbMax, Extract, Unite,
0050 NumVer, Date, Heure, NbMes, MaxReel, T, Y,
0051 lnd, lndc, lut, ldt, lhr, lT, lY)
0052
0053 char *NomDon;
0054 Longint *NumChoc;
0055 char *NomDec;
0056 Longint *Occur;
0057 Longint *NbMax;
0058 Longint *Extract;
0059 char *Unite[];
0060 Longint *NumVer;
0061 char *Date;
0062 char *Heure;
0063 Longint *NbMes;
0064 Longint *MaxReel;
0065 char *T;
0066 char *Y;
0067 int lnd, lndc, lut, ldt, lhr, lT, lY;
0068 {
0069 struct S_Unite *ptunite;
0070 pS_Unite ptu;
0071 int cr = 0;
0072 int len;
0073 char Ndt[TAILLE_NOM_DONNEE], Ndec[PREPASIZE + 1], *ptc;
0074
0075 if ((cr = check_dateheure (ldt, lhr)) < 0)
0076 return cr;
0077 cclean (NomDon, Ndt, lnd);
0078 cclean (NomDec, Ndec, lndc);
0079
0080 cr = TSSigDeclenche (Ndt, *NumChoc, Ndec, *Occur, *NbMax, *Extract,
0081 &ptunite, NumVer, Date, Heure, NbMes, MaxReel, T, Y);
0082 if (!cr)
0083 {
0084 if (ptunite)
0085 {
0086 ptc = (char *) Unite;
0087 ptu = ptunite;
0088 do
0089 {
0090 if (ptu->nom)
0091 {
0092 len = strlen (ptu->nom);
0093 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
0094 if (lut > len)
0095 memset (ptc + len * sizeof (char), ' ', (lut - len));
0096 }
0097 ptc += lut * sizeof (char);
0098 }
0099 while (ptu = ptu->ps_suivant);
0100 free (ptunite);
0101 }
0102 clean_dateheure (Date, ldt, Heure, lhr);
0103 }
0104 return (cr);
0105 }
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135 int
0136 tsxtrdeclenche_ (NomDon, NumChoc, Indices, NomDec, Occur, NbMax, Extract,
0137 Unite, NumVer, Date, Heure, NbMes, MaxReel, T, Y,
0138 lnd, lndc, lut, ldt, lhr, lT, lY)
0139
0140 char *NomDon;
0141 Longint *NumChoc;
0142 Longint *Indices;
0143 char *NomDec;
0144 Longint *Occur;
0145 Longint *NbMax;
0146 Longint *Extract;
0147 char *Unite[];
0148 Longint *NumVer;
0149 char *Date;
0150 char *Heure;
0151 Longint *NbMes;
0152 Longint *MaxReel;
0153 char *T;
0154 char *Y;
0155 int lnd, lndc, lut, ldt, lhr, lT, lY;
0156
0157 {
0158 struct S_Unite *ptunite;
0159 pS_Unite ptu;
0160 int cr = 0;
0161 int len;
0162 char Ndt[TAILLE_NOM_DONNEE], Ndec[PREPASIZE + 1], *ptc;
0163
0164 if ((cr = check_dateheure (ldt, lhr)) < 0)
0165 return cr;
0166 cclean (NomDon, Ndt, lnd);
0167 cclean (NomDec, Ndec, lndc);
0168
0169 cr = TSXtrDeclenche (Ndt, *NumChoc, Indices, Ndec, *Occur, *NbMax,
0170 *Extract, &ptunite, NumVer, Date, Heure, NbMes, MaxReel, T, Y);
0171 if (!cr)
0172 {
0173 if (ptunite)
0174 {
0175 ptc = (char *) Unite;
0176 ptu = ptunite;
0177 do
0178 {
0179 if (ptu->nom)
0180 {
0181 len = strlen (ptu->nom);
0182 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
0183 if (lut > len)
0184 memset (ptc + len * sizeof (char), ' ', (lut - len));
0185 }
0186 ptc += lut * sizeof (char);
0187 }
0188 while (ptu = ptu->ps_suivant);
0189 free (ptunite);
0190 }
0191 clean_dateheure (Date, ldt, Heure, lhr);
0192 }
0193 return (cr);
0194 }
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
0220
0221
0222
0223
0224 int
0225 tsgrpdeclenche_ (NomDon, NumChoc, NomDec, Occur, NbMax, Extract, Unite,
0226 NumVer, Date, Heure, NbMes, MaxReel, T, Y,
0227 lnd, lndc, lut, ldt, lhr, lT, lY)
0228
0229 char *NomDon;
0230 Longint *NumChoc;
0231 char *NomDec;
0232 Longint *Occur;
0233 Longint *NbMax;
0234 Longint *Extract;
0235 char *Unite[];
0236 Longint *NumVer;
0237 char *Date;
0238 char *Heure;
0239 Longint *NbMes;
0240 Longint *MaxReel;
0241 char *T;
0242 char *Y;
0243 int lnd, lndc, lut, ldt, lhr, lT, lY;
0244
0245 {
0246 struct S_Unite *ptunite;
0247 pS_Unite ptu;
0248 int cr = 0;
0249 int len;
0250 char Ndt[TAILLE_NOM_DONNEE], Ndec[PREPASIZE + 1], *ptc;
0251
0252 if ((cr = check_dateheure (ldt, lhr)) < 0)
0253 return cr;
0254 cclean (NomDon, Ndt, lnd);
0255 cclean (NomDec, Ndec, lndc);
0256
0257 cr = TSGrpDeclenche (Ndt, *NumChoc, Ndec, *Occur, *NbMax, *Extract,
0258 &ptunite, NumVer, Date, Heure, NbMes, MaxReel, T, Y);
0259 if (!cr)
0260 {
0261 if (ptunite)
0262 {
0263 ptc = (char *) Unite;
0264 ptu = ptunite;
0265 do
0266 {
0267 if (ptu->nom)
0268 {
0269 len = strlen (ptu->nom);
0270 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
0271 if (lut > len)
0272 memset (ptc + len * sizeof (char), ' ', (lut - len));
0273 }
0274 ptc += lut * sizeof (char);
0275 }
0276 while (ptu = ptu->ps_suivant);
0277 free (ptunite);
0278 }
0279 clean_dateheure (Date, ldt, Heure, lhr);
0280 }
0281 return (cr);
0282 }
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0301 int
0302 tsdesctrait_ (NomTrait, NumVer, DescTrait, ldt)
0303
0304 char *NomTrait;
0305 int *NumVer;
0306 char *DescTrait;
0307 int ldt;
0308
0309 {
0310 pS_DescTrait ptdt;
0311 pS_Donnee ptd;
0312 int cr = 0, offset = 0;
0313 int len;
0314 char *pt = DescTrait;
0315 char Ndt[TAILLE_NOM_TRAITEMENT];
0316
0317 cclean (NomTrait, Ndt, ldt);
0318 cr = TSDescTrait (Ndt, *NumVer, &ptdt);
0319
0320 if (!cr)
0321 {
0322 ptd = ptdt->ps_donnee;
0323 if (ptdt->nom)
0324 {
0325 len = strlen (ptdt->nom);
0326 memcpy (pt, ptdt->nom, len);
0327 if (TAILLE_NOM_TRAITEMENT - 1 > len)
0328 memset (pt + len , ' ', (TAILLE_NOM_TRAITEMENT - len));
0329 }
0330 offset += TAILLE_NOM_TRAITEMENT - 1;
0331
0332 if (ptdt->commentaire)
0333 {
0334 len = strlen (ptdt->commentaire);
0335 memcpy (pt + offset, ptdt->commentaire, len);
0336 if (TAILLE_COMMENTAIRE - 1 > len)
0337 memset (pt + offset + len , ' ', (TAILLE_COMMENTAIRE - len));
0338 }
0339 offset += TAILLE_COMMENTAIRE - 1;
0340
0341 if (ptdt->auteurs)
0342 {
0343 len = strlen (ptdt->auteurs);
0344 memcpy (pt + offset, ptdt->auteurs, len);
0345 if (TAILLE_NOM_AUTEURS - 1 > len)
0346 memset (pt + offset + len , ' ', (TAILLE_NOM_AUTEURS - len));
0347 }
0348 offset += TAILLE_NOM_AUTEURS - 1;
0349
0350 if (ptdt->date)
0351 {
0352 len = strlen (ptdt->date);
0353 memcpy (pt + offset, ptdt->date, len);
0354 if (TAILLE_DATE - 1 > len)
0355 memset (pt + offset + len , ' ', (TAILLE_DATE - len));
0356 }
0357 offset += TAILLE_DATE - 1;
0358
0359 memcpy (pt + offset, &(ptdt->type), sizeof (Longint));
0360 offset += sizeof (Longint);
0361
0362 memcpy (pt + offset, &(ptdt->num_version), sizeof (short));
0363 offset += sizeof (short);
0364
0365 if (ptdt->localisation)
0366 {
0367
0368 len = strlen (ptdt->localisation);
0369 memcpy (pt + offset, ptdt->localisation, len);
0370 if (TAILLE_NOM_LOCALISATION - 1 > len)
0371 memset (pt + offset + len , ' ', (TAILLE_NOM_LOCALISATION - len));
0372 }
0373 offset += TAILLE_NOM_LOCALISATION - 1;
0374
0375 if (ptdt->machine)
0376 {
0377 len = strlen (ptdt->machine);
0378 memcpy (pt + offset, ptdt->machine, len);
0379 if (TAILLE_NOM_MACHINE - 1 > len)
0380 memset (pt + offset + len , ' ', (TAILLE_NOM_MACHINE - len));
0381 }
0382 offset += TAILLE_NOM_MACHINE - 1;
0383
0384 memcpy (pt + offset, &(ptdt->nb_donnees), sizeof (short));
0385 offset += sizeof (short);
0386
0387 if (ptd)
0388 {
0389 do
0390 {
0391 if (ptd->nom)
0392 {
0393 len = strlen (ptd->nom);
0394 memcpy (pt + offset, ptd->nom, len);
0395 if (TAILLE_NOM_DONNEE - 1 > len)
0396 memset (pt + offset + len , ' ', (TAILLE_NOM_DONNEE - len));
0397 }
0398 offset += TAILLE_NOM_DONNEE - 1;
0399 }
0400 while (ptd = ptd->ps_suivant);
0401 free (ptd);
0402 }
0403 free (ptdt);
0404 }
0405 return (cr);
0406 }
0407
0408
0409
0410
0411
0412
0413
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
0424
0425 int
0426 tsdescdiag_ (NomDiag, NumVer, DescDiag, ldd)
0427
0428 char *NomDiag;
0429 Longint *NumVer;
0430 char *DescDiag;
0431 int ldd;
0432
0433 {
0434 pS_DescDiag ptdd;
0435 pS_Donnee ptd;
0436 int cr = 0, offset = 0;
0437 char *pt = DescDiag;
0438 int len;
0439 char Ndt[TAILLE_NOM_DIAGNOSTIC];
0440
0441 cclean (NomDiag, Ndt, ldd);
0442 cr = TSDescDiag (Ndt, *NumVer, &ptdd);
0443 if (!cr)
0444 {
0445 ptd = ptdd->ps_donnee;
0446 if (ptdd->nom)
0447 {
0448 len = strlen (ptdd->nom);
0449 memcpy (pt, ptdd->nom, len);
0450 if (TAILLE_NOM_DIAGNOSTIC - 1 > len)
0451 memset (pt + len , ' ', (TAILLE_NOM_DIAGNOSTIC - len));
0452 }
0453 offset += TAILLE_NOM_DIAGNOSTIC - 1;
0454
0455 if (ptdd->commentaire)
0456 {
0457 len = strlen (ptdd->commentaire);
0458 memcpy (pt + offset, ptdd->commentaire, len);
0459 if (TAILLE_COMMENTAIRE - 1 > len)
0460 memset (pt + offset + len , ' ', (TAILLE_COMMENTAIRE - len));
0461 }
0462 offset += TAILLE_COMMENTAIRE - 1;
0463
0464 if (ptdd->auteurs)
0465 {
0466 len = strlen (ptdd->auteurs);
0467 memcpy (pt + offset, ptdd->auteurs, len);
0468 if (TAILLE_NOM_AUTEURS - 1 > len)
0469 memset (pt + offset + len , ' ', (TAILLE_NOM_AUTEURS - len));
0470 }
0471 offset += TAILLE_NOM_AUTEURS - 1;
0472
0473 if (ptdd->date)
0474 {
0475 len = strlen (ptdd->date);
0476 memcpy (pt + offset, ptdd->date, len);
0477 if (TAILLE_DATE - 1 > len)
0478 memset (pt + offset + len , ' ', (TAILLE_DATE - len));
0479 }
0480 offset += TAILLE_DATE - 1;
0481
0482 memcpy (pt + offset, &(ptdd->type), sizeof (Longint));
0483 offset += sizeof (Longint);
0484
0485 memcpy (pt + offset, &(ptdd->num_version), sizeof (short));
0486 offset += sizeof (short);
0487
0488 memcpy (pt + offset, &(ptdd->nb_donnees), sizeof (short));
0489 offset += sizeof (short);
0490 if (ptd)
0491 {
0492 do
0493 {
0494 if (ptd->nom)
0495 {
0496 len = strlen (ptd->nom);
0497 memcpy (pt + offset, ptd->nom, len);
0498 if (TAILLE_NOM_DONNEE - 1 > len)
0499 memset (pt + offset + len , ' ', (TAILLE_NOM_DONNEE - len));
0500 }
0501 offset += TAILLE_NOM_DONNEE - 1;
0502 }
0503 while (ptd = ptd->ps_suivant);
0504 free (ptd);
0505 }
0506 free (ptdd);
0507 }
0508 return (cr);
0509 }
0510
0511
0512
0513
0514
0515
0516
0517
0518
0519
0520
0521
0522
0523
0524
0525
0526
0527 int
0528 tsdescdon_ (NomDon, DescDon, ldd)
0529
0530 char *NomDon;
0531 char *DescDon;
0532 int ldd;
0533
0534 {
0535 pS_DescDon ptdd;
0536 pS_DescCoord ptd;
0537 int cr = 0, offset = 0;
0538 char *pt = DescDon;
0539 int len;
0540 char Ndt[TAILLE_NOM_DONNEE];
0541
0542 cclean (NomDon, Ndt, ldd);
0543 cr = TSDescDon (Ndt, &ptdd);
0544
0545 if (!cr)
0546 {
0547 ptd = ptdd->ps_coord;
0548 if (ptdd->nom)
0549 {
0550 len = strlen (ptdd->nom);
0551 memcpy (pt, ptdd->nom, len);
0552 if (TAILLE_NOM_DONNEE - 1 > len)
0553 memset (pt + len , ' ', (TAILLE_NOM_DONNEE - len));
0554 }
0555 offset += TAILLE_NOM_DONNEE - 1;
0556
0557 if (ptdd->nom_producteur)
0558 {
0559 len = strlen (ptdd->nom_producteur);
0560 memcpy (pt + offset, ptdd->nom_producteur, len);
0561 if (TAILLE_NOM_PRODUCTEUR - 1 > len)
0562 memset (pt + offset + len , ' ', (TAILLE_NOM_PRODUCTEUR - len));
0563 }
0564 offset += TAILLE_NOM_PRODUCTEUR - 1;
0565
0566 if (ptdd->commentaire)
0567 {
0568 len = strlen (ptdd->commentaire);
0569 memcpy (pt + offset, ptdd->commentaire, len);
0570 if (TAILLE_COMMENTAIRE - 1 > len)
0571 memset (pt + offset + len , ' ', (TAILLE_COMMENTAIRE - len));
0572 }
0573 offset += TAILLE_COMMENTAIRE - 1;
0574
0575 offset += 2;
0576
0577 memcpy (pt + offset, &(ptdd->type), sizeof (Longint));
0578 offset += sizeof (Longint);
0579
0580 memcpy (pt + offset, &(ptdd->nb_comp), sizeof (short));
0581 offset += sizeof (short);
0582
0583 memcpy (pt + offset, &(ptdd->nb_coord), sizeof (short));
0584 offset += sizeof (short);
0585
0586 if (ptd)
0587 {
0588 do
0589 {
0590 if (ptd->nom)
0591 {
0592 len = strlen (ptd->nom);
0593 memcpy (pt + offset, ptd->nom, len);
0594 if (TAILLE_NOM_COORDONNEE - 1 > len)
0595 memset (pt + offset + len , ' ', (TAILLE_NOM_COORDONNEE - len));
0596 }
0597 offset += TAILLE_NOM_COORDONNEE - 1;
0598 if (ptd->format)
0599 {
0600 len = strlen (ptd->format);
0601 memcpy (pt + offset, ptd->format, len);
0602 if (TAILLE_FORMAT - 1 > len)
0603 memset (pt + offset + len , ' ', (TAILLE_FORMAT - len));
0604 }
0605 offset += TAILLE_FORMAT - 1;
0606 if (ptd->unite)
0607 {
0608 len = strlen (ptd->unite);
0609 memcpy (pt + offset, ptd->unite, len);
0610 if (TAILLE_NOM_UNITE - 1 > len)
0611 memset (pt + offset + len , ' ', (TAILLE_NOM_UNITE - len));
0612 }
0613 offset += TAILLE_NOM_UNITE - 1;
0614 if (ptd->pretraitement)
0615 {
0616 len = strlen (ptd->pretraitement);
0617 memcpy (pt + offset, ptd->pretraitement, len);
0618 if (TAILLE_PRETRAITEMENT - 1 > len)
0619 memset (pt + offset + len , ' ', (TAILLE_PRETRAITEMENT - len));
0620 }
0621 offset += TAILLE_PRETRAITEMENT - 1;
0622 }
0623 while (ptd = ptd->ps_suivant);
0624 free (ptd);
0625 }
0626 free (ptdd);
0627 }
0628 return (cr);
0629 }
0630
0631
0632
0633
0634
0635
0636
0637
0638
0639
0640
0641
0642
0643
0644
0645
0646
0647
0648
0649
0650
0651
0652
0653 int
0654 tsexist_ (NomDon, Entrees, NbCoord, NumVer, Certif, Date, Heure,
0655 lnd, ldt, lhr)
0656
0657 char *NomDon;
0658 Longint *Entrees;
0659 Longint *NbCoord;
0660 Longint *NumVer;
0661 Longint *Certif;
0662 char *Heure, *Date;
0663 int lnd, ldt, lhr;
0664 {
0665 pS_Entree Entreesc;
0666 int cr = 0, i;
0667 char Ndt[TAILLE_NOM_DONNEE];
0668
0669 if ((ldt < LDATE) || (lhr < LHEURE))
0670 return (-11);
0671
0672 cclean (NomDon, Ndt, lnd);
0673
0674 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
0675 Entreesc->union_var.lval = *Entrees;
0676 Entreesc->ps_suivant = NULL;
0677
0678 cr = TSExist (Ndt, Entreesc, NbCoord, NumVer, Certif, Date, Heure);
0679
0680 clean_dateheure (Date, ldt, Heure, lhr);
0681
0682 free (Entreesc);
0683 return (cr);
0684
0685 }
0686
0687
0688
0689
0690
0691
0692
0693
0694
0695
0696
0697
0698
0699
0700
0701
0702
0703
0704
0705
0706
0707
0708 int
0709 tswrite_ (NomTrait, Entrees, Longueurs, Certif, TabVal, LongNb, CertifNb, ValNb, lnt)
0710
0711 char *NomTrait;
0712 Longint *Entrees;
0713 Longint *Longueurs;
0714 Longint *Certif;
0715 char *TabVal;
0716 Longint *LongNb, *CertifNb, *ValNb;
0717 int lnt;
0718 {
0719 pS_Entree Entreesc;
0720 int cr = 0;
0721 char Ndt[TAILLE_NOM_TRAITEMENT];
0722
0723 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
0724 Entreesc->union_var.lval = *Entrees;
0725 Entreesc->ps_suivant = NULL;
0726
0727 cclean (NomTrait, Ndt, lnt);
0728 cr = TSWrite (Ndt, Entreesc, Longueurs, Certif, TabVal, *LongNb,
0729 *CertifNb, *ValNb);
0730
0731 free (Entreesc);
0732 return (cr);
0733 }
0734
0735
0736
0737
0738
0739
0740
0741
0742
0743
0744
0745
0746
0747
0748
0749
0750
0751
0752
0753
0754
0755
0756
0757 int
0758 tswriteplusoc_ (NomTrait, Entrees, Occ, Longueurs, Certif, TabVal, LongNb,
0759 CertifNb, ValNb, lnt)
0760
0761 char *NomTrait;
0762 Longint *Entrees;
0763 Longint *Occ;
0764 Longint *Longueurs;
0765 Longint *Certif;
0766 char *TabVal;
0767 Longint *LongNb, *CertifNb, *ValNb;
0768 int lnt;
0769 {
0770 pS_Entree Entreesc;
0771 int cr = 0;
0772 char Ndt[TAILLE_NOM_TRAITEMENT];
0773
0774 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
0775 Entreesc->union_var.lval = *Entrees;
0776
0777 if ( *Occ > 0) {
0778 Entreesc->ps_suivant = (pS_Entree) malloc (sizeof (struct S_Entree));
0779 Entreesc->ps_suivant->union_var.lval = *Occ;
0780 Entreesc->ps_suivant->ps_suivant = NULL;
0781 }
0782 else
0783 Entreesc->ps_suivant = NULL;
0784
0785
0786
0787 cclean (NomTrait, Ndt, lnt);
0788 cr = TSWrite (Ndt, Entreesc, Longueurs, Certif, TabVal, *LongNb,
0789 *CertifNb, *ValNb);
0790
0791 free (Entreesc);
0792 return (cr);
0793 }
0794
0795
0796
0797
0798
0799
0800
0801
0802
0803
0804
0805
0806
0807
0808
0809
0810
0811
0812 int
0813 tswcertif_ (NomDon, Entrees, Certif, CertifNb, lnd)
0814
0815 char *NomDon;
0816 Longint *Entrees;
0817 Longint *Certif;
0818 Longint *CertifNb;
0819 int lnd;
0820
0821 {
0822 pS_Entree Entreesc;
0823 int cr = 0;
0824 char Ndt[TAILLE_NOM_DONNEE];
0825
0826 cclean (NomDon, Ndt, lnd);
0827
0828 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
0829 Entreesc->union_var.lval = *Entrees;
0830 Entreesc->ps_suivant = NULL;
0831
0832 cr = TSWcertif (Ndt, Entreesc, Certif, *CertifNb);
0833
0834 free (Entreesc);
0835 return (cr);
0836 }
0837
0838
0839
0840
0841
0842
0843
0844
0845
0846
0847
0848
0849
0850
0851
0852
0853
0854
0855
0856
0857
0858
0859
0860
0861
0862
0863
0864
0865
0866 int
0867 tsrsigrg_ (NomDon, Entrees, Rangs, NbMax, Extract, Unite, NumVer, Certif,
0868 Date, Heure, NbMes, MaxReel, X, Y,
0869 lnd, lut, ldt, lhr)
0870
0871 char *NomDon;
0872 Longint *Entrees;
0873 Longint *Rangs;
0874 Longint *NbMax;
0875 Longint *Extract;
0876 char *Unite[];
0877 Longint *NumVer;
0878 Longint *Certif;
0879 char *Date;
0880 char *Heure;
0881 Longint *NbMes;
0882 Longint *MaxReel;
0883 char *X;
0884 char *Y;
0885 int lnd, lut, ldt, lhr;
0886
0887 {
0888 struct S_Unite *ptunite;
0889 pS_Unite ptu;
0890 pS_Entree Entreesc;
0891 int cr = 0;
0892 int len;
0893 char *ptc, Ndt[TAILLE_NOM_DONNEE];
0894
0895 if ((cr = check_dateheure (ldt, lhr)) < 0)
0896 return cr;
0897 cclean (NomDon, Ndt, lnd);
0898
0899 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
0900 Entreesc->union_var.lval = *Entrees;
0901 Entreesc->ps_suivant = NULL;
0902
0903 cr = TSRSigRg (Ndt, Entreesc, Rangs, *NbMax, *Extract, &ptunite, NumVer,
0904 Certif, Date, Heure, NbMes, MaxReel, X, Y);
0905
0906 if (!cr)
0907 {
0908 if (ptunite)
0909 {
0910 ptc = (char *) Unite;
0911 ptu = ptunite;
0912
0913 do
0914 {
0915 if (ptu->nom)
0916 {
0917 len = strlen (ptu->nom);
0918 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
0919 if (lut > len)
0920 memset (ptc + sizeof (char) * len, ' ', (lut - len));
0921 }
0922 ptc += sizeof (char) * lut;
0923 }
0924 while (ptu = ptu->ps_suivant);
0925 free (ptunite);
0926 }
0927 clean_dateheure (Date, ldt, Heure, lhr);
0928 }
0929 free (Entreesc);
0930 return (cr);
0931
0932 }
0933
0934 int
0935 tsrsigrgplusoc_ (NomDon, Entrees, Occ, Rangs, NbMax, Extract, Unite, NumVer,
0936 Certif, Date, Heure, NbMes, MaxReel, X, Y, lnd, lut, ldt, lhr)
0937
0938 char *NomDon;
0939 Longint *Entrees;
0940 Longint *Occ;
0941 Longint *Rangs;
0942 Longint *NbMax;
0943 Longint *Extract;
0944 char *Unite[];
0945 Longint *NumVer;
0946 Longint *Certif;
0947 char *Date;
0948 char *Heure;
0949 Longint *NbMes;
0950 Longint *MaxReel;
0951 char *X;
0952 char *Y;
0953 int lnd, lut, ldt, lhr;
0954
0955 {
0956 struct S_Unite *ptunite;
0957 pS_Unite ptu;
0958 pS_Entree Entreesc;
0959 int cr = 0;
0960 int len;
0961 char *ptc, Ndt[TAILLE_NOM_DONNEE];
0962
0963 if ((cr = check_dateheure (ldt, lhr)) < 0)
0964 return cr;
0965 cclean (NomDon, Ndt, lnd);
0966
0967 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
0968 Entreesc->union_var.lval = *Entrees;
0969
0970
0971 if (*Occ > 0) {
0972 Entreesc->ps_suivant = (pS_Entree) malloc (sizeof (struct S_Entree));
0973 Entreesc->ps_suivant->union_var.lval = *Occ;
0974 Entreesc->ps_suivant->ps_suivant = NULL;
0975 }
0976 else
0977 Entreesc->ps_suivant = NULL;
0978
0979 cr = TSRSigRg (Ndt, Entreesc, Rangs, *NbMax, *Extract, &ptunite, NumVer,
0980 Certif, Date, Heure, NbMes, MaxReel, X, Y);
0981
0982 if (!cr)
0983 {
0984 if (ptunite)
0985 {
0986 ptc = (char *) Unite;
0987 ptu = ptunite;
0988
0989 do
0990 {
0991 if (ptu->nom)
0992 {
0993 len = strlen (ptu->nom);
0994 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
0995 if (lut > len)
0996 memset (ptc + sizeof (char) * len, ' ', (lut - len));
0997 }
0998 ptc += sizeof (char) * lut;
0999 }
1000 while (ptu = ptu->ps_suivant);
1001 free (ptunite);
1002 }
1003 clean_dateheure (Date, ldt, Heure, lhr);
1004 }
1005 free (Entreesc);
1006 return (cr);
1007
1008 }
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038 int
1039 tsrsigx_ (NomDon, Entrees, XI, XF, NbMax, Extract, Unite, NumVer, Certif,
1040 Date, Heure, NbMes, MaxReel, X, Y,
1041 lnd, lut, ldt, lhr)
1042
1043 char *NomDon;
1044 Longint *Entrees;
1045 Double *XI;
1046 Double *XF;
1047 Longint *NbMax;
1048 Longint *Extract;
1049 char *Unite[];
1050 Longint *NumVer;
1051 Longint *Certif;
1052 char *Date;
1053 char *Heure;
1054 Longint *NbMes;
1055 Longint *MaxReel;
1056 char *X;
1057 char *Y;
1058 int lnd, lut, ldt, lhr;
1059
1060 {
1061 struct S_Unite *ptunite;
1062 pS_Unite ptu;
1063 pS_Entree Entreesc;
1064 int cr = 0;
1065 int len;
1066 char *ptc, Ndt[TAILLE_NOM_DONNEE];
1067
1068
1069
1070
1071
1072
1073 if ((cr = check_dateheure (ldt, lhr)) < 0)
1074 return cr;
1075 cclean (NomDon, Ndt, lnd);
1076
1077 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
1078 Entreesc->union_var.lval = *Entrees;
1079 Entreesc->ps_suivant = NULL;
1080
1081 cr = TSRSigX (Ndt, Entreesc, *XI, *XF, *NbMax, *Extract, &ptunite,
1082 NumVer, Certif, Date, Heure, NbMes, MaxReel, X, Y);
1083
1084 if (!cr)
1085 {
1086 if (ptunite)
1087 {
1088 ptc = (char *) Unite;
1089 ptu = ptunite;
1090
1091 do
1092 {
1093 if (ptu->nom)
1094 {
1095 len = strlen (ptu->nom);
1096 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
1097 if (lut > len)
1098 memset (ptc + sizeof (char) * len, ' ', (lut - len));
1099 }
1100 ptc += sizeof (char) * lut;
1101 }
1102 while (ptu = ptu->ps_suivant);
1103 free (ptunite);
1104 }
1105 clean_dateheure (Date, ldt, Heure, lhr);
1106 }
1107 free (Entreesc);
1108 return (cr);
1109 }
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141 int
1142 tsxtrrg_ (NomDon, Entrees, Indices, Rangs, NbMax, Extract, Unite, NumVer,
1143 Certif, Date, Heure, NbMes, MaxReel, X, Y, Coord,
1144 lnd, lut, ldt, lhr, lX, lY, lC)
1145
1146 char *NomDon;
1147 Longint *Entrees;
1148 Longint *Indices;
1149 Longint *Rangs;
1150 Longint *NbMax;
1151 Longint *Extract;
1152 char *Unite[];
1153 Longint *NumVer;
1154 Longint *Certif;
1155 char *Date;
1156 char *Heure;
1157 Longint *NbMes;
1158 Longint *MaxReel;
1159 char *X;
1160 char *Y;
1161 char *Coord;
1162 int lnd, lut, ldt, lhr, lX, lY, lC;
1163 {
1164 struct S_Unite *ptunite;
1165 pS_Unite ptu;
1166 pS_Entree Entreesc;
1167 int cr = 0;
1168 int len;
1169 char *ptc, Ndt[TAILLE_NOM_DONNEE];
1170
1171 if ((cr = check_dateheure (ldt, lhr)) < 0)
1172 return cr;
1173 cclean (NomDon, Ndt, lnd);
1174
1175 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
1176 Entreesc->union_var.lval = *Entrees;
1177 Entreesc->ps_suivant = NULL;
1178
1179 cr = TSXtrRg (Ndt, Entreesc, Indices, Rangs, *NbMax, *Extract, &ptunite,
1180 NumVer, Certif, Date, Heure, NbMes, MaxReel, X, Y, Coord);
1181
1182 if (!cr)
1183 {
1184 if (ptunite)
1185 {
1186 ptc = (char *) Unite;
1187 ptu = ptunite;
1188
1189 do
1190 {
1191 if (ptu->nom)
1192 {
1193 len = strlen (ptu->nom);
1194 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
1195 if (lut > len)
1196 memset (ptc + sizeof (char) * len, ' ', (lut - len));
1197 }
1198 ptc += sizeof (char) * lut;
1199 }
1200 while (ptu = ptu->ps_suivant);
1201 free (ptunite);
1202 }
1203 clean_dateheure (Date, ldt, Heure, lhr);
1204 }
1205 free (Entreesc);
1206 return (cr);
1207 }
1208
1209 int
1210 tsxtrrgplusoc_ (NomDon, Entrees, Occ, Indices, Rangs, NbMax, Extract, Unite,
1211 NumVer, Certif, Date, Heure, NbMes, MaxReel, X, Y, Coord,
1212 lnd, lut, ldt, lhr, lX, lY, lC)
1213
1214 char *NomDon;
1215 Longint *Entrees;
1216 Longint *Occ;
1217 Longint *Indices;
1218 Longint *Rangs;
1219 Longint *NbMax;
1220 Longint *Extract;
1221 char *Unite[];
1222 Longint *NumVer;
1223 Longint *Certif;
1224 char *Date;
1225 char *Heure;
1226 Longint *NbMes;
1227 Longint *MaxReel;
1228 char *X;
1229 char *Y;
1230 char *Coord;
1231 int lnd, lut, ldt, lhr, lX, lY, lC;
1232 {
1233 struct S_Unite *ptunite;
1234 pS_Unite ptu;
1235 pS_Entree Entreesc;
1236 int cr = 0;
1237 int len;
1238 char *ptc, Ndt[TAILLE_NOM_DONNEE];
1239
1240 if ((cr = check_dateheure (ldt, lhr)) < 0)
1241 return cr;
1242 cclean (NomDon, Ndt, lnd);
1243
1244 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
1245 Entreesc->union_var.lval = *Entrees;
1246
1247 if (*Occ > 0) {
1248 Entreesc->ps_suivant = (pS_Entree) malloc (sizeof (struct S_Entree));
1249 Entreesc->ps_suivant->union_var.lval = *Occ;
1250 Entreesc->ps_suivant->ps_suivant = NULL;
1251 }
1252 else
1253 Entreesc->ps_suivant = NULL;
1254
1255 cr = TSXtrRg (Ndt, Entreesc, Indices, Rangs, *NbMax, *Extract, &ptunite,
1256 NumVer, Certif, Date, Heure, NbMes, MaxReel, X, Y, Coord);
1257
1258 if (!cr)
1259 {
1260 if (ptunite)
1261 {
1262 ptc = (char *) Unite;
1263 ptu = ptunite;
1264
1265 do
1266 {
1267 if (ptu->nom)
1268 {
1269 len = strlen (ptu->nom);
1270 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
1271 if (lut > len)
1272 memset (ptc + sizeof (char) * len, ' ', (lut - len));
1273 }
1274 ptc += sizeof (char) * lut;
1275 }
1276 while (ptu = ptu->ps_suivant);
1277 free (ptunite);
1278 }
1279 clean_dateheure (Date, ldt, Heure, lhr);
1280 }
1281 free (Entreesc);
1282 return (cr);
1283 }
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316 int
1317 tsxtrx_ (NomDon, Entrees, Indices, XI, XF, NbMax, Extract, Unite, NumVer,
1318 Certif, Date, Heure, NbMes, MaxReel, X, Y, Coord,
1319 lnd, lut, ldt, lhr, lX, lY, lC)
1320
1321 char *NomDon;
1322 Longint *Entrees;
1323 Longint *Indices;
1324 Double *XI;
1325 Double *XF;
1326 Longint *NbMax;
1327 Longint *Extract;
1328 char *Unite[];
1329 Longint *NumVer;
1330 Longint *Certif;
1331 char *Date;
1332 char *Heure;
1333 Longint *NbMes;
1334 Longint *MaxReel;
1335 char *X;
1336 char *Y;
1337 char *Coord;
1338 int lnd, lut, ldt, lhr, lX, lY, lC;
1339
1340 {
1341 struct S_Unite *ptunite;
1342 pS_Unite ptu;
1343 pS_Entree Entreesc;
1344 int cr = 0;
1345 int len;
1346 char *ptc, Ndt[TAILLE_NOM_DONNEE];
1347
1348
1349
1350
1351
1352 if ((cr = check_dateheure (ldt, lhr)) < 0)
1353 return cr;
1354 cclean (NomDon, Ndt, lnd);
1355
1356 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
1357 Entreesc->union_var.lval = *Entrees;
1358 Entreesc->ps_suivant = NULL;
1359
1360 cr = TSXtrX (Ndt, Entreesc, Indices, *XI, *XF, *NbMax, *Extract,
1361 &ptunite, NumVer, Certif, Date, Heure, NbMes, MaxReel, X, Y, Coord);
1362
1363 if (!cr)
1364 {
1365 if (ptunite)
1366 {
1367 ptc = (char *) Unite;
1368 ptu = ptunite;
1369
1370 do
1371 {
1372 if (ptu->nom)
1373 {
1374 len = strlen (ptu->nom);
1375 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
1376 if (lut > len)
1377 memset (ptc + sizeof (char) * len, ' ', (lut - len));
1378 }
1379 ptc += sizeof (char) * lut;
1380 }
1381 while (ptu = ptu->ps_suivant);
1382 free (ptunite);
1383 }
1384 clean_dateheure (Date, ldt, Heure, lhr);
1385 }
1386 free (Entreesc);
1387 return (cr);
1388 }
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419 int
1420 tsgrprg_ (NomDon, Entrees, Rangs, NbMax, Extract, Unite, NumVer, Certif,
1421 Date, Heure, NbMes, MaxReel, X, Y, Coord,
1422 lnd, lut, ldt, lhr, lX, lY, lC)
1423
1424 char *NomDon;
1425 Longint *Entrees;
1426 Longint *Rangs;
1427 Longint *NbMax;
1428 Longint *Extract;
1429 char *Unite[];
1430 Longint *NumVer;
1431 Longint *Certif;
1432 char *Date;
1433 char *Heure;
1434 Longint *NbMes;
1435 Longint *MaxReel;
1436 char *X;
1437 char *Y;
1438 char *Coord;
1439 int lnd, lut, ldt, lhr, lX, lY, lC;
1440
1441 {
1442 struct S_Unite *ptunite;
1443 pS_Unite ptu;
1444 pS_Entree Entreesc;
1445 int cr = 0;
1446 int len;
1447 char *ptc, Ndt[TAILLE_NOM_DONNEE];
1448
1449 if ((cr = check_dateheure (ldt, lhr)) < 0)
1450 return cr;
1451 cclean (NomDon, Ndt, lnd);
1452
1453 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
1454 Entreesc->union_var.lval = *Entrees;
1455 Entreesc->ps_suivant = NULL;
1456
1457 cr = TSGrpRg (Ndt, Entreesc, Rangs, *NbMax, *Extract, &ptunite, NumVer,
1458 Certif, Date, Heure, NbMes, MaxReel, X, Y, Coord);
1459
1460 if (!cr)
1461 {
1462 if (ptunite)
1463 {
1464 ptc = (char *) Unite;
1465 ptu = ptunite;
1466
1467 do
1468 {
1469 if (ptu->nom)
1470 {
1471 len = strlen (ptu->nom);
1472 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
1473 if (lut > len)
1474 memset (ptc + sizeof (char) * len, ' ', (lut - len));
1475 }
1476 ptc += sizeof (char) * lut;
1477 }
1478 while (ptu = ptu->ps_suivant);
1479 free (ptunite);
1480 }
1481 clean_dateheure (Date, ldt, Heure, lhr);
1482 }
1483 free (Entreesc);
1484 return (cr);
1485 }
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517 int
1518 tsgrpx_ (NomDon, Entrees, XI, XF, NbMax, Extract, Unite, NumVer, Certif,
1519 Date, Heure, NbMes, MaxReel, X, Y, Coord,
1520 lnd, lut, ldt, lhr, lX, lY, lC)
1521
1522 char *NomDon;
1523 Longint *Entrees;
1524 Double *XI;
1525 Double *XF;
1526 Longint *NbMax;
1527 Longint *Extract;
1528 char *Unite[];
1529 Longint *NumVer;
1530 Longint *Certif;
1531 char *Date;
1532 char *Heure;
1533 Longint *NbMes;
1534 Longint *MaxReel;
1535 char *X;
1536 char *Y;
1537 char *Coord;
1538 int lnd, lut, ldt, lhr, lX, lY, lC;
1539
1540 {
1541 struct S_Unite *ptunite;
1542 pS_Unite ptu;
1543 pS_Entree Entreesc;
1544 int cr = 0;
1545 int len;
1546 char *ptc, Ndt[TAILLE_NOM_DONNEE];
1547
1548
1549
1550
1551
1552 if ((cr = check_dateheure (ldt, lhr)) < 0)
1553 return cr;
1554 cclean (NomDon, Ndt, lnd);
1555
1556 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
1557 Entreesc->union_var.lval = *Entrees;
1558 Entreesc->ps_suivant = NULL;
1559
1560 cr = TSGrpX (Ndt, Entreesc, *XI, *XF, *NbMax, *Extract, &ptunite, NumVer,
1561 Certif, Date, Heure, NbMes, MaxReel, X, Y, Coord);
1562
1563 if (!cr)
1564 {
1565 if (ptunite)
1566 {
1567 ptc = (char *) Unite;
1568 ptu = ptunite;
1569
1570 do
1571 {
1572 if (ptu->nom)
1573 {
1574 len = strlen (ptu->nom);
1575 memcpy (ptc, ptu->nom, ((lut >= len) ? len : lut));
1576 if (lut > len)
1577 memset (ptc + sizeof (char) * len, ' ', (lut - len));
1578 }
1579 ptc += sizeof (char) * lut;
1580 }
1581 while (ptu = ptu->ps_suivant);
1582 free (ptunite);
1583 }
1584 clean_dateheure (Date, ldt, Heure, lhr);
1585 }
1586 free (Entreesc);
1587 return (cr);
1588 }
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600 int
1601 tsldiag_ (NumChoc, NbDiag, Listed, ld)
1602
1603 Longint *NumChoc, *NbDiag;
1604 char *Listed[];
1605 int ld;
1606 {
1607 Longint cr = 0;
1608 int len, i;
1609 char *ptc;
1610
1611 char *ldiag[50];
1612
1613 cr = TSLDiag (*NumChoc, NbDiag, ldiag);
1614
1615 if (cr == 0)
1616 {
1617 ptc = (char *) Listed;
1618 for (i = 0; i < *NbDiag; i++)
1619 {
1620 len = strlen (ldiag[i]);
1621
1622 memcpy (ptc, ldiag[i], ((ld >= len) ? len : ld));
1623 if (ld > len)
1624 memset (ptc + sizeof (char) * len, ' ', (ld - len));
1625 ptc += sizeof (char) * ld;
1626 }
1627
1628 }
1629 return ((int) cr);
1630 }
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642 int
1643 tsltrait_ (NbTrait, Listet, ld)
1644
1645 Longint *NbTrait;
1646 char *Listet[];
1647 int ld;
1648 {
1649 Longint cr = 0;
1650 int len, i;
1651 char *ptc;
1652
1653 char *ltrait[50];
1654
1655 cr = TSLTrait (NbTrait, ltrait);
1656
1657 if (cr == 0)
1658 {
1659 ptc = (char *) Listet;
1660 for (i = 0; i < *NbTrait; i++)
1661 {
1662 len = strlen (ltrait[i]);
1663
1664 memcpy (ptc, ltrait[i], ((ld >= len) ? len : ld));
1665 if (ld > len)
1666 memset (ptc + sizeof (char) * len, ' ', (ld - len));
1667 ptc += sizeof (char) * ld;
1668 }
1669
1670 }
1671 return ((int) cr);
1672 }
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685 int
1686 tslsig_ (NumChoc, diag_name, NbSig, ListeS, ld, ls)
1687
1688 Longint *NumChoc, *NbSig;
1689 char *diag_name, *ListeS[];
1690 int ld, ls;
1691 {
1692 Longint cr = 0;
1693 int len, i;
1694
1695 char *lsig[95], *ptc;
1696 char Ndt[PREPASIZE + 1];
1697
1698 cclean (diag_name, Ndt, ld);
1699
1700 cr = TSLSig (*NumChoc, Ndt, NbSig, lsig);
1701 if (cr == 0)
1702 {
1703 ptc = (char *) ListeS;
1704 for (i = 0; i < *NbSig; i++)
1705 {
1706 len = strlen (lsig[i]);
1707 memcpy (ptc, lsig[i], ((ld >= len) ? len : ls));
1708 if (ls > len)
1709 memset (ptc + sizeof (char) * len, ' ', (ls - len));
1710 ptc += sizeof (char) * ls;
1711 }
1712 }
1713 return ((int) cr);
1714 }
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728 int
1729 tsrqparm_ (NumChoc, diag, obj, param, nval, buff, nrep, ld, lo, lp, lb)
1730
1731 Longint *NumChoc;
1732 char *diag, *obj, *param, *buff;
1733 int *nval, *nrep, ld, lo, lp, lb;
1734 {
1735 Longint cr = 0, fpar;
1736 int offset = 0;
1737 int len, i = 0;
1738 char Ndiag[PREPASIZE + 1], Nobj[PREPASIZE + 1], Nparam[PREPASIZE + 1];
1739
1740 cclean (diag, Ndiag, ld);
1741 cclean (obj, Nobj, lo);
1742 cclean (param, Nparam, lp);
1743
1744 strcpy(buff,"a");
1745 cr = TSRqParm (*NumChoc, Ndiag, Nobj, Nparam, *nval, buff, nrep, &fpar);
1746
1747 return ((int) cr);
1748 }
1749
1750
1751
1752
1753
1754
1755 int
1756 tsrqdecl_ (NumChoc, decl, occur, date, ld)
1757
1758 Longint *NumChoc;
1759 char *decl;
1760 int *occur, ld;
1761 float *date;
1762 {
1763 Longint cr = 0;
1764 int offset = 0;
1765 int len, i = 0;
1766 char Ndt[PREPASIZE + 1];
1767
1768 cclean (decl, Ndt, ld);
1769
1770 cr = TSRqdecl (*NumChoc, Ndt, *occur, date);
1771
1772 return ((int) cr);
1773 }
1774
1775
1776
1777
1778
1779 int
1780 tsgetinfo_ (NumChoc)
1781
1782 int *NumChoc;
1783 {
1784 Longint cr = 0;
1785
1786 cr = TSGetinfo (NumChoc);
1787
1788 return ((int) cr);
1789 }
1790
1791
1792
1793
1794 int
1795 tstdata_ (NumChoc, ndiag, t_choc, t_param,ld )
1796 Longint *NumChoc;
1797 char * ndiag;
1798 Longint *t_choc, *t_param;
1799 int ld;
1800
1801 {
1802 Longint cr = 0;
1803
1804 cr = TSTData (*NumChoc,ndiag, t_choc, t_param);
1805
1806 return ((int)cr);
1807 }
1808
1809
1810
1811
1812 int
1813 tslgdiag_ (NumChoc, nomdiag, nbmes, ld )
1814 Longint *NumChoc, *nbmes;
1815 char *nomdiag;
1816 int ld;
1817 {
1818 Longint cr = 0;
1819 char Ndt[PREPASIZE + 1];
1820
1821 cclean (nomdiag, Ndt, ld);
1822
1823 cr = TSLgDiag (*NumChoc, Ndt, nbmes);
1824
1825 return ((int) cr);
1826 }
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844 int
1845 tsinitocctrait_ (NomTrait, Numchoc, Occur, lt)
1846
1847 char *NomTrait;
1848 Longint *Numchoc, *Occur;
1849 int lt;
1850 {
1851 pS_Entree Entreesc;
1852 int cr = 0;
1853 char Ndt[TAILLE_NOM_TRAITEMENT];
1854
1855 cclean (NomTrait, Ndt, lt);
1856
1857 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
1858 Entreesc->union_var.lval = *Numchoc;
1859 if (*Occur != 0) {
1860 Entreesc->ps_suivant = (pS_Entree) malloc (sizeof (struct S_Entree));
1861 Entreesc->ps_suivant->union_var.lval = *Occur;
1862 Entreesc->ps_suivant->ps_suivant = NULL;
1863 } else {
1864 Entreesc->ps_suivant = NULL;
1865 }
1866
1867 cr= TSInitOccTrait (Ndt, Entreesc);
1868 free(Entreesc);
1869 return (cr);
1870 }
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887 int
1888 tsupdateocctrait_ (NomTrait, Numchoc, Occur, Status, Dureems, lt)
1889 char *NomTrait;
1890 Longint *Numchoc, *Occur, *Status, *Dureems;
1891 int lt;
1892 {
1893 pS_Entree Entreesc;
1894 int cr = 0;
1895 char Ndt[TAILLE_NOM_TRAITEMENT];
1896
1897 cclean (NomTrait, Ndt, lt);
1898
1899 Entreesc = (pS_Entree) malloc (sizeof (struct S_Entree));
1900 Entreesc->union_var.lval = *Numchoc;
1901 if (*Occur != 0) {
1902 Entreesc->ps_suivant = (pS_Entree) malloc (sizeof (struct S_Entree));
1903 Entreesc->ps_suivant->union_var.lval = *Occur;
1904 Entreesc->ps_suivant->ps_suivant = NULL;
1905 } else {
1906 Entreesc->ps_suivant = NULL;
1907 }
1908
1909 cr= TSUpdateOccTrait (Ndt, Entreesc, Status, Dureems);
1910 free(Entreesc);
1911 return (cr);
1912 }
1913
1914
1915
1916 int
1917 cclean (chOld, chNew, Len)
1918
1919 char *chOld, *chNew;
1920 Longint Len;
1921 {
1922 int i = 0;
1923 char *pts, *ptd;
1924
1925 pts = chOld;
1926 ptd = chNew;
1927 while ((*pts != ' ') && (i < Len))
1928 {
1929 *ptd++ = *pts++;
1930 i++;
1931 }
1932 *ptd = '\0';
1933 return (0);
1934 }
1935
1936
1937
1938 int
1939 check_dateheure (ldate, lheure)
1940 int ldate, lheure;
1941 {
1942 if ((ldate < LDATE) || (lheure < LHEURE))
1943 return (-10);
1944
1945 return (0);
1946 }
1947
1948
1949
1950 int
1951 clean_dateheure (date, ldate, heure, lheure)
1952 char *date, *heure;
1953 int ldate, lheure;
1954 {
1955 int i;
1956 for (i = LDATE; i < ldate; i++)
1957 date[i] = ' ';
1958 for (i = LHEURE; i < lheure; i++)
1959 heure[i] = ' ';
1960 return (0);
1961 }