~ubuntu-branches/ubuntu/wily/eso-midas/wily-proposed

« back to all changes in this revision

Viewing changes to stdred/do/src/tbrules.c

  • Committer: Package Import Robot
  • Author(s): Ole Streicher
  • Date: 2014-04-22 14:44:58 UTC
  • Revision ID: package-import@ubuntu.com-20140422144458-okiwi1assxkkiz39
Tags: upstream-13.09pl1.2+dfsg
ImportĀ upstreamĀ versionĀ 13.09pl1.2+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*===========================================================================
 
2
  Copyright (C) 1993-2009 European Southern Observatory (ESO)
 
3
 
 
4
  This program is free software; you can redistribute it and/or 
 
5
  modify it under the terms of the GNU General Public License as 
 
6
  published by the Free Software Foundation; either version 2 of 
 
7
  the License, or (at your option) any later version.
 
8
 
 
9
  This program is distributed in the hope that it will be useful,
 
10
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
  GNU General Public License for more details.
 
13
 
 
14
  You should have received a copy of the GNU General Public 
 
15
  License along with this program; if not, write to the Free 
 
16
  Software Foundation, Inc., 675 Massachusetss Ave, Cambridge, 
 
17
  MA 02139, USA.
 
18
 
 
19
  Corresponding concerning ESO-MIDAS should be addressed as follows:
 
20
        Internet e-mail: midas@eso.org
 
21
        Postal address: European Southern Observatory
 
22
                        Data Management Division 
 
23
                        Karl-Schwarzschild-Strasse 2
 
24
                        D 85748 Garching bei Muenchen 
 
25
                        GERMANY
 
26
===========================================================================*/
 
27
 
 
28
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
29
..TYPE        Module
 
30
..NAME        tbrules.c
 
31
..LANGUAGE    C
 
32
..AUTHOR      IPG-ESO Garching
 
33
..CATEGORY    Data Organizer utilities 
 
34
..COMMENTS       This module implements the following Midas commands:
 
35
\begin{TeX}
 
36
\begin{enumerate}
 
37
\item {\tt CREATE/RULE table rule
 
38
\end{enumerate}
 
39
\end{TeX}
 
40
 
 
41
..VERSION  1.0   15-Mar-1993  Definition     M. Peron
 
42
 
 
43
 130703         last modif
 
44
-----------------------------------------------------------------*/
 
45
 
 
46
#include <atype.h>
 
47
#include <tblsys.h>
 
48
#include <tblerr.h>
 
49
#include <midas_def.h>
 
50
#include <str.h>
 
51
#include <macrogen.h>
 
52
 
 
53
#include <string.h>
 
54
#include <stdio.h>
 
55
 
 
56
extern int decrypt1(), tbl_hist();
 
57
 
 
58
 
 
59
char *mystand[] = { 
 
60
                  "TBLENGTH","TBLOFFST","TBLCONTR","TSELTABL",
 
61
                   "TLABL"
 
62
                  }; 
 
63
int main()
 
64
{
 
65
int status,tid,tid0,nrow,nicol;
 
66
int null, len, lennew, dummy;
 
67
int colc,colr;
 
68
int i,n,unit ;
 
69
char line[40],column[1+TBL_LABLEN];
 
70
char selecrit[256],outdescr[8],action[2];
 
71
char intable[60],label[1+TBL_LABLEN];
 
72
char temptable[60],*temp,text[60];
 
73
 
 
74
lennew = 0;
 
75
SCSPRO("tbrules");
 
76
strcpy(temptable,"TEMP_TAB");
 
77
SCKGETC("ACTION",1L,1L,&dummy,action);
 
78
SCKGETC("INPUTC",1L,8L,&dummy,outdescr);
 
79
for (i=0;i<5;i++) 
 
80
if ((n = stuindex(outdescr,mystand[i])) == 0 ){
 
81
   sprintf(text,"Error writing in standard descriptor: %s",outdescr);
 
82
   SCETER(1,text);
 
83
   }
 
84
SCKGETC("IN_A",1L,60L,&dummy,intable);
 
85
TCTOPN(intable,F_IO_MODE,&tid0);
 
86
if (action[0] == 'C') {
 
87
    TCIGET(tid0,&nicol,&dummy,&dummy,&dummy,&dummy);
 
88
    TCTINI("TEMP_TAB",F_TRANS,F_IO_MODE,2,nicol,&tid);
 
89
    TCCINI(tid,D_C_FORMAT,13L,"A13"," ","COLUMN",&colc);
 
90
    for (i=0; i<nicol; i++) {
 
91
        TCLGET(tid0,i+1,label);
 
92
        TCEWRC(tid,i+1,1L,label);
 
93
    }
 
94
    TCCINI(tid,D_C_FORMAT,40L,"A40"," ","RULE",&colr);
 
95
    }
 
96
else {
 
97
    TCTOPN(temptable,F_I_MODE,&tid);
 
98
    TCIGET(tid,&dummy,&nrow,&dummy,&dummy,&dummy);
 
99
    SCKGETC("INPUTC",1L,8L,&dummy,outdescr);
 
100
    temp = osmmget(256);
 
101
    oscfill(selecrit,256,'\0');
 
102
    for (i=0; i<nrow; i++) {
 
103
       status = TCERDC(tid,i+1,2L,line,&null);
 
104
       if (null) continue;
 
105
       *column = ':';
 
106
       TCERDC(tid,i+1,1L,column+1,&null);
 
107
       if (selecrit[0] != '\0') strcat(selecrit,".AND.");
 
108
       decrypt1(column,line,selecrit,temp);
 
109
       lennew = strlen(selecrit);
 
110
       len += lennew;
 
111
       }
 
112
    SCDWRC(tid0,outdescr,1L,selecrit,1L,lennew,&unit);
 
113
     }
 
114
tbl_hist(tid0);
 
115
SCSEPI();
 
116
return 0;
 
117
}
 
118
 
 
119
 
 
120
 
 
121