Commit 7f1a9b52 authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

Added module command

parent 4718765c
......@@ -273,6 +273,7 @@ src/Cat.c -text
src/Change.c -text
src/Change_e5slm.c -text
src/Cloudlayer.c -text
src/Command.c -text
src/Comp.c -text
src/Compc.c -text
src/Complextorect.c -text
......
......@@ -2,7 +2,7 @@
This file is part of CDO. CDO is a collection of Operators to
manipulate and analyse Climate model Data.
Copyright (C) 2003-2008 Uwe Schulzweida, Uwe.Schulzweida@zmaw.de
Copyright (C) 2003-2010 Uwe Schulzweida, Uwe.Schulzweida@zmaw.de
See COPYING file for copying and redistribution conditions.
This program is free software; you can redistribute it and/or modify
......@@ -20,8 +20,6 @@
*/
#include <string.h>
#include "cdi.h"
#include "cdo.h"
#include "cdo_int.h"
......
/*
This file is part of CDO. CDO is a collection of Operators to
manipulate and analyse Climate model Data.
Copyright (C) 2003-2010 Uwe Schulzweida, Uwe.Schulzweida@zmaw.de
See COPYING file for copying and redistribution conditions.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
/*
This module contains the following operators:
*/
#include <ctype.h> /* isspace */
#include "cdi.h"
#include "cdo.h"
#include "cdo_int.h"
int streamID = 0;
int vlistID = 0;
int varID = 0;
int levelID = 0;
int tsID = 0;
double *array = NULL;
#define MAX_LINE 256
int Done = 0;
int com_help(char *);
int com_list(char *);
int com_quit(char *);
int com_stat(char *);
int com_vars(char *);
//int com_stat(char *);
typedef struct {
char *name; /* User printable name of the function. */
int (*func)(char *); /* Function to call to do the job. */
char *doc; /* Documentation for this function. */
}
command_t;
command_t commands[] = {
{ "help", com_help, "Display this text" },
{ "?", com_help, "Synonym for 'help'" },
{ "list", com_list, "List files in DIR" },
{ "quit", com_quit, "Quit using CDO" },
{ "stat", com_stat, "Statistic for selected field" },
{ "vars", com_vars, "list variables" },
// { "stat", com_stat, "Print out statistics on FILE" },
{ NULL, NULL, NULL }
};
/* Return non-zero if ARG is a valid argument for CALLER, else print
an error message and return zero. */
int valid_argument (char *caller, char *arg)
{
if (!arg || !*arg)
{
fprintf (stderr, "%s: Argument required.\n", caller);
return (0);
}
return (1);
}
/* Print out help for ARG, or for all of the commands if ARG is not present. */
int com_help(char *arg)
{
int i;
int printed = 0;
for ( i = 0; commands[i].name; i++ )
{
if (!*arg || (strcmp (arg, commands[i].name) == 0))
{
printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
printed++;
}
}
if ( !printed )
{
printf ("No commands match â%sâ. Possibilties are:\n", arg);
for (i = 0; commands[i].name; i++)
{
/* Print in six columns. */
if ( printed == 6 )
{
printed = 0;
printf ("\n");
}
printf("%s\t", commands[i].name);
printed++;
}
if (printed) printf ("\n");
}
return (0);
}
/* List the file(s) named in arg. */
int com_list(char *arg)
{
if (!arg)
arg = "";
return (0);
}
/* The user wishes to quit using this program. Just set DONE non-zero. */
int com_quit(char *arg)
{
Done = 1;
return (0);
}
int com_stat(char *arg)
{
int nrecs;
nrecs = streamInqTimestep(streamID, tsID);
if ( nrecs == 0 )
{
fprintf(stderr, "Timestep %d out of range!\n", tsID);
}
else
{
int i;
int nmiss;
int gridsize;
double fmin = 1.e50 , fmax = -1.e50, fmean = 0;
streamReadVarSlice(streamID, varID, levelID, array, &nmiss);
gridsize = gridInqSize(vlistInqVarGrid(vlistID, varID));
for ( i = 0; i < gridsize; ++i )
{
if ( array[i] < fmin ) fmin = array[i];
if ( array[i] > fmax ) fmax = array[i];
fmean += array[i];
}
fmean /= gridsize;
fprintf(stdout, "%g %g %g\n", fmin, fmean, fmax);
}
return (0);
}
int com_vars(char *arg)
{
int varID;
int nvars = vlistNvars(vlistID);
if (!arg)
arg = "";
printf("com_vars: %s %d\n", arg, nvars);
for ( varID = 0; varID < nvars; ++varID )
{
fprintf(stdout,"varID %d\n", varID);
}
return (0);
}
/* Look up NAME as the name of a command, and return a pointer to that
command. Return a NULL pointer if NAME isn't a command name. */
command_t *find_command(char *name)
{
int i;
for ( i = 0; commands[i].name; i++ )
if ( strcmp(name, commands[i].name) == 0)
return (&commands[i]);
return ((command_t *)NULL);
}
/* Execute a command line. */
int execute_line(char *line)
{
int i;
command_t *command;
char *word;
/* Isolate the command word. */
i = 0;
while ( line[i] && isspace(line[i])) i++;
word = line + i;
while ( line[i] && !isspace(line[i])) i++;
if ( line[i] ) line[i++] = '\0';
command = find_command(word);
if ( !command )
{
fprintf (stderr, "%s: No such command!\n", word);
return (-1);
}
/* Get argument to command, if any. */
while ( isspace(line[i]) ) i++;
word = line + i;
/* Call the function. */
return ((*(command->func)) (word));
}
/* Strip isspace from the start and end of STRING. Return a pointer into STRING. */
char *stripwhite(char *string)
{
char *s, *t;
for (s = string; isspace(*s); s++)
;
if (*s == 0)
return (s);
t = s + strlen (s) - 1;
while (t > s && isspace(*t))
t--;
*++t = '\0';
return s;
}
void readcmd(const char *prompt, char *line, int size)
{
fputs(prompt, stdout);
fflush(stdout);
*line = '\0';
if ( fgets(line, size, stdin) )
{
char *newline = strchr(line, '\n'); /* check for trailing '\n' */
if ( newline )
*newline = '\0'; /* overwrite the '\n' with a terminating null */
}
}
void *Command(void *argument)
{
static char func[] = "Command";
int nrecs;
int tsID, recID, varID, levelID;
int gridsize;
int nmiss;
int taxisID;
double s_utime, s_stime;
double e_utime, e_stime;
double c_cputime = 0, c_usertime = 0, c_systime = 0;
char line[MAX_LINE];
char *s;
cdoInitialize(argument);
processStartTime(&s_utime, &s_stime);
streamID = streamOpenRead(cdoStreamName(0));
if ( streamID < 0 ) cdiError(streamID, "Open failed on %s", cdoStreamName(0));
vlistID = streamInqVlist(streamID);
taxisID = vlistInqTaxis(vlistID);
gridsize = vlistGridsizeMax(vlistID);
array = (double *) malloc(gridsize*sizeof(double));
/* Loop reading and executing lines until the user quits. */
while ( !Done )
{
readcmd("cdo cmd> ", line, MAX_LINE);
/* Remove leading and trailing whitespace from the line.
Then, if there is anything left, add it to the history list
and execute it. */
s = stripwhite(line);
if ( *s ) execute_line(s);
}
/*
while ( readline(stdin, line, MAX_LINE) )
{
linep = line;
if ( strcmp(linep, "exit") == 0 ) break;
else if ( strcmp(linep, "vars") == 0 )
{
int varID;
int nvars = vlistNvars(vlistID);
for ( varID = 0; varID < nvars; ++nvars )
{
fprintf(stdout,"varID %d\n", varID);
}
}
}
*/
/*
tsID = 0;
while ( (nrecs = streamInqTimestep(streamID, tsID)) )
{
for ( recID = 0; recID < nrecs; recID++ )
{
streamInqRecord(streamID, &varID, &levelID);
streamReadRecord(streamID, array, &nmiss);
}
tsID++;
}
*/
streamClose(streamID);
if ( array ) free(array);
cdoProcessTime(&e_utime, &e_stime);
c_usertime = e_utime - s_utime;
c_systime = e_stime - s_stime;
c_cputime = c_usertime + c_systime;
s_utime = e_utime;
s_stime = e_stime;
cdoPrint("%.2fs %.2fs %.2fs", c_usertime, c_systime, c_cputime);
cdoFinish();
return (0);
}
......@@ -13,13 +13,14 @@ cdo_SOURCES = Arith.c \
Change.c \
Change_e5slm.c \
Cloudlayer.c \
Command.c \
Comp.c \
Compc.c \
Complextorect.c \
Cond.c \
Cond2.c \
Condc.c \
Consecstat.c \
Complextorect.c \
Copy.c \
Deltime.c \
Detrend.c \
......
......@@ -68,72 +68,73 @@ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am_cdo_OBJECTS = Arith.$(OBJEXT) Arithc.$(OBJEXT) Arithdays.$(OBJEXT) \
Arithlat.$(OBJEXT) Cat.$(OBJEXT) CDItest.$(OBJEXT) \
Change.$(OBJEXT) Change_e5slm.$(OBJEXT) Cloudlayer.$(OBJEXT) \
Comp.$(OBJEXT) Compc.$(OBJEXT) Cond.$(OBJEXT) Cond2.$(OBJEXT) \
Condc.$(OBJEXT) Consecstat.$(OBJEXT) Complextorect.$(OBJEXT) \
Copy.$(OBJEXT) Deltime.$(OBJEXT) Detrend.$(OBJEXT) \
Diff.$(OBJEXT) Echam5ini.$(OBJEXT) Enlarge.$(OBJEXT) \
Enlargegrid.$(OBJEXT) Ensstat.$(OBJEXT) Eofcoeff.$(OBJEXT) \
EOFs.$(OBJEXT) Exprf.$(OBJEXT) Filedes.$(OBJEXT) \
Fillmiss.$(OBJEXT) Filter.$(OBJEXT) Fldrms.$(OBJEXT) \
Fldstat.$(OBJEXT) Fldstat2.$(OBJEXT) Fourier.$(OBJEXT) \
Gengrid.$(OBJEXT) Gradsdes.$(OBJEXT) Gridboxstat.$(OBJEXT) \
Gridcell.$(OBJEXT) Harmonic.$(OBJEXT) Histogram.$(OBJEXT) \
Importamsr.$(OBJEXT) Importbinary.$(OBJEXT) \
Importcmsaf.$(OBJEXT) Importobs.$(OBJEXT) Info.$(OBJEXT) \
Input.$(OBJEXT) Intgrid.$(OBJEXT) Intgridtraj.$(OBJEXT) \
Intlevel.$(OBJEXT) Inttime.$(OBJEXT) Intntime.$(OBJEXT) \
Intyear.$(OBJEXT) Invert.$(OBJEXT) Invertlev.$(OBJEXT) \
Log.$(OBJEXT) Maskbox.$(OBJEXT) Mastrfu.$(OBJEXT) \
Math.$(OBJEXT) Merge.$(OBJEXT) Mergegrid.$(OBJEXT) \
Mergetime.$(OBJEXT) Merstat.$(OBJEXT) Monarith.$(OBJEXT) \
Mrotuv.$(OBJEXT) Mrotuvb.$(OBJEXT) Ninfo.$(OBJEXT) \
Nmltest.$(OBJEXT) Output.$(OBJEXT) Outputgmt.$(OBJEXT) \
Pinfo.$(OBJEXT) Pressure.$(OBJEXT) Regres.$(OBJEXT) \
Remap.$(OBJEXT) Remapeta.$(OBJEXT) Replace.$(OBJEXT) \
Rotuv.$(OBJEXT) Runpctl.$(OBJEXT) Runstat.$(OBJEXT) \
Seascount.$(OBJEXT) Seaspctl.$(OBJEXT) Seasstat.$(OBJEXT) \
Selbox.$(OBJEXT) Select.$(OBJEXT) Selvar.$(OBJEXT) \
Seloperator.$(OBJEXT) Selrec.$(OBJEXT) Seltime.$(OBJEXT) \
Set.$(OBJEXT) Setbox.$(OBJEXT) Setgatt.$(OBJEXT) \
Setgrid.$(OBJEXT) Sethalo.$(OBJEXT) Setmiss.$(OBJEXT) \
Setrange.$(OBJEXT) Setrcaname.$(OBJEXT) Settime.$(OBJEXT) \
Setzaxis.$(OBJEXT) Showinfo.$(OBJEXT) Sinfo.$(OBJEXT) \
Smooth9.$(OBJEXT) Sort.$(OBJEXT) Sorttimestamp.$(OBJEXT) \
Specinfo.$(OBJEXT) Spectral.$(OBJEXT) Spectrum.$(OBJEXT) \
Split.$(OBJEXT) Splitrec.$(OBJEXT) Splitsel.$(OBJEXT) \
Splittime.$(OBJEXT) Splityear.$(OBJEXT) Subtrend.$(OBJEXT) \
Templates.$(OBJEXT) Test.$(OBJEXT) Tests.$(OBJEXT) \
Timcount.$(OBJEXT) Timpctl.$(OBJEXT) Timsort.$(OBJEXT) \
Timselpctl.$(OBJEXT) Timselstat.$(OBJEXT) Timstat.$(OBJEXT) \
Timstat2.$(OBJEXT) Timstat3.$(OBJEXT) Tinfo.$(OBJEXT) \
Tocomplex.$(OBJEXT) Transpose.$(OBJEXT) Trend.$(OBJEXT) \
Trms.$(OBJEXT) Tstepcount.$(OBJEXT) Vardup.$(OBJEXT) \
Vargen.$(OBJEXT) Varrms.$(OBJEXT) Vertint.$(OBJEXT) \
Vertstat.$(OBJEXT) Vertwind.$(OBJEXT) Wind.$(OBJEXT) \
Writegrid.$(OBJEXT) Writerandom.$(OBJEXT) Yhourstat.$(OBJEXT) \
Ydaypctl.$(OBJEXT) Ydaystat.$(OBJEXT) Ydrunpctl.$(OBJEXT) \
Ydrunstat.$(OBJEXT) Ymonarith.$(OBJEXT) Ymonpctl.$(OBJEXT) \
Ymonstat.$(OBJEXT) Yseaspctl.$(OBJEXT) Yseasstat.$(OBJEXT) \
Zonstat.$(OBJEXT) cdilib.$(OBJEXT) commandline.$(OBJEXT) \
exception.$(OBJEXT) expr_yacc.$(OBJEXT) expr_lex.$(OBJEXT) \
expr.$(OBJEXT) cdo.$(OBJEXT) cdo_pthread.$(OBJEXT) \
cdo_vlist.$(OBJEXT) field.$(OBJEXT) fieldc.$(OBJEXT) \
field2.$(OBJEXT) fieldmer.$(OBJEXT) fieldzon.$(OBJEXT) \
fieldmem.$(OBJEXT) gradsdeslib.$(OBJEXT) grid.$(OBJEXT) \
grid_gme.$(OBJEXT) grid_lcc.$(OBJEXT) grid_rot.$(OBJEXT) \
griddes.$(OBJEXT) griddes_nc.$(OBJEXT) griddes_h5.$(OBJEXT) \
hetaeta.$(OBJEXT) history.$(OBJEXT) institution.$(OBJEXT) \
interpol.$(OBJEXT) job.$(OBJEXT) modules.$(OBJEXT) \
namelist.$(OBJEXT) normal.$(OBJEXT) pipe.$(OBJEXT) \
process.$(OBJEXT) remaplib.$(OBJEXT) timer.$(OBJEXT) \
realtime.$(OBJEXT) pstream.$(OBJEXT) table.$(OBJEXT) \
userlog.$(OBJEXT) util.$(OBJEXT) legendre.$(OBJEXT) \
fouriertrans.$(OBJEXT) specspace.$(OBJEXT) readline.$(OBJEXT) \
juldate.$(OBJEXT) vinterp.$(OBJEXT) zaxis.$(OBJEXT) \
par_io.$(OBJEXT) pthread_debug.$(OBJEXT) color.$(OBJEXT) \
list.$(OBJEXT) percentiles.$(OBJEXT) nth_element.$(OBJEXT) \
ecacore.$(OBJEXT) ecautil.$(OBJEXT) EcaIndices.$(OBJEXT) \
Hi.$(OBJEXT) Wct.$(OBJEXT) statistic.$(OBJEXT)
Command.$(OBJEXT) Comp.$(OBJEXT) Compc.$(OBJEXT) \
Complextorect.$(OBJEXT) Cond.$(OBJEXT) Cond2.$(OBJEXT) \
Condc.$(OBJEXT) Consecstat.$(OBJEXT) Copy.$(OBJEXT) \
Deltime.$(OBJEXT) Detrend.$(OBJEXT) Diff.$(OBJEXT) \
Echam5ini.$(OBJEXT) Enlarge.$(OBJEXT) Enlargegrid.$(OBJEXT) \
Ensstat.$(OBJEXT) Eofcoeff.$(OBJEXT) EOFs.$(OBJEXT) \
Exprf.$(OBJEXT) Filedes.$(OBJEXT) Fillmiss.$(OBJEXT) \
Filter.$(OBJEXT) Fldrms.$(OBJEXT) Fldstat.$(OBJEXT) \
Fldstat2.$(OBJEXT) Fourier.$(OBJEXT) Gengrid.$(OBJEXT) \
Gradsdes.$(OBJEXT) Gridboxstat.$(OBJEXT) Gridcell.$(OBJEXT) \
Harmonic.$(OBJEXT) Histogram.$(OBJEXT) Importamsr.$(OBJEXT) \
Importbinary.$(OBJEXT) Importcmsaf.$(OBJEXT) \
Importobs.$(OBJEXT) Info.$(OBJEXT) Input.$(OBJEXT) \
Intgrid.$(OBJEXT) Intgridtraj.$(OBJEXT) Intlevel.$(OBJEXT) \
Inttime.$(OBJEXT) Intntime.$(OBJEXT) Intyear.$(OBJEXT) \
Invert.$(OBJEXT) Invertlev.$(OBJEXT) Log.$(OBJEXT) \
Maskbox.$(OBJEXT) Mastrfu.$(OBJEXT) Math.$(OBJEXT) \
Merge.$(OBJEXT) Mergegrid.$(OBJEXT) Mergetime.$(OBJEXT) \
Merstat.$(OBJEXT) Monarith.$(OBJEXT) Mrotuv.$(OBJEXT) \
Mrotuvb.$(OBJEXT) Ninfo.$(OBJEXT) Nmltest.$(OBJEXT) \
Output.$(OBJEXT) Outputgmt.$(OBJEXT) Pinfo.$(OBJEXT) \
Pressure.$(OBJEXT) Regres.$(OBJEXT) Remap.$(OBJEXT) \
Remapeta.$(OBJEXT) Replace.$(OBJEXT) Rotuv.$(OBJEXT) \
Runpctl.$(OBJEXT) Runstat.$(OBJEXT) Seascount.$(OBJEXT) \
Seaspctl.$(OBJEXT) Seasstat.$(OBJEXT) Selbox.$(OBJEXT) \
Select.$(OBJEXT) Selvar.$(OBJEXT) Seloperator.$(OBJEXT) \
Selrec.$(OBJEXT) Seltime.$(OBJEXT) Set.$(OBJEXT) \
Setbox.$(OBJEXT) Setgatt.$(OBJEXT) Setgrid.$(OBJEXT) \
Sethalo.$(OBJEXT) Setmiss.$(OBJEXT) Setrange.$(OBJEXT) \
Setrcaname.$(OBJEXT) Settime.$(OBJEXT) Setzaxis.$(OBJEXT) \
Showinfo.$(OBJEXT) Sinfo.$(OBJEXT) Smooth9.$(OBJEXT) \
Sort.$(OBJEXT) Sorttimestamp.$(OBJEXT) Specinfo.$(OBJEXT) \
Spectral.$(OBJEXT) Spectrum.$(OBJEXT) Split.$(OBJEXT) \
Splitrec.$(OBJEXT) Splitsel.$(OBJEXT) Splittime.$(OBJEXT) \
Splityear.$(OBJEXT) Subtrend.$(OBJEXT) Templates.$(OBJEXT) \
Test.$(OBJEXT) Tests.$(OBJEXT) Timcount.$(OBJEXT) \
Timpctl.$(OBJEXT) Timsort.$(OBJEXT) Timselpctl.$(OBJEXT) \
Timselstat.$(OBJEXT) Timstat.$(OBJEXT) Timstat2.$(OBJEXT) \
Timstat3.$(OBJEXT) Tinfo.$(OBJEXT) Tocomplex.$(OBJEXT) \
Transpose.$(OBJEXT) Trend.$(OBJEXT) Trms.$(OBJEXT) \
Tstepcount.$(OBJEXT) Vardup.$(OBJEXT) Vargen.$(OBJEXT) \
Varrms.$(OBJEXT) Vertint.$(OBJEXT) Vertstat.$(OBJEXT) \
Vertwind.$(OBJEXT) Wind.$(OBJEXT) Writegrid.$(OBJEXT) \
Writerandom.$(OBJEXT) Yhourstat.$(OBJEXT) Ydaypctl.$(OBJEXT) \
Ydaystat.$(OBJEXT) Ydrunpctl.$(OBJEXT) Ydrunstat.$(OBJEXT) \
Ymonarith.$(OBJEXT) Ymonpctl.$(OBJEXT) Ymonstat.$(OBJEXT) \
Yseaspctl.$(OBJEXT) Yseasstat.$(OBJEXT) Zonstat.$(OBJEXT) \
cdilib.$(OBJEXT) commandline.$(OBJEXT) exception.$(OBJEXT) \
expr_yacc.$(OBJEXT) expr_lex.$(OBJEXT) expr.$(OBJEXT) \
cdo.$(OBJEXT) cdo_pthread.$(OBJEXT) cdo_vlist.$(OBJEXT) \
field.$(OBJEXT) fieldc.$(OBJEXT) field2.$(OBJEXT) \
fieldmer.$(OBJEXT) fieldzon.$(OBJEXT) fieldmem.$(OBJEXT) \
gradsdeslib.$(OBJEXT) grid.$(OBJEXT) grid_gme.$(OBJEXT) \
grid_lcc.$(OBJEXT) grid_rot.$(OBJEXT) griddes.$(OBJEXT) \
griddes_nc.$(OBJEXT) griddes_h5.$(OBJEXT) hetaeta.$(OBJEXT) \
history.$(OBJEXT) institution.$(OBJEXT) interpol.$(OBJEXT) \
job.$(OBJEXT) modules.$(OBJEXT) namelist.$(OBJEXT) \
normal.$(OBJEXT) pipe.$(OBJEXT) process.$(OBJEXT) \
remaplib.$(OBJEXT) timer.$(OBJEXT) realtime.$(OBJEXT) \
pstream.$(OBJEXT) table.$(OBJEXT) userlog.$(OBJEXT) \
util.$(OBJEXT) legendre.$(OBJEXT) fouriertrans.$(OBJEXT) \
specspace.$(OBJEXT) readline.$(OBJEXT) juldate.$(OBJEXT) \
vinterp.$(OBJEXT) zaxis.$(OBJEXT) par_io.$(OBJEXT) \
pthread_debug.$(OBJEXT) color.$(OBJEXT) list.$(OBJEXT) \
percentiles.$(OBJEXT) nth_element.$(OBJEXT) ecacore.$(OBJEXT) \
ecautil.$(OBJEXT) EcaIndices.$(OBJEXT) Hi.$(OBJEXT) \
Wct.$(OBJEXT) statistic.$(OBJEXT)
cdo_OBJECTS = $(am_cdo_OBJECTS)
cdo_DEPENDENCIES =
am_cdotest_OBJECTS = cdilib.$(OBJEXT) cdotest.$(OBJEXT)
......@@ -288,13 +289,14 @@ cdo_SOURCES = Arith.c \
Change.c \
Change_e5slm.c \
Cloudlayer.c \
Command.c \
Comp.c \
Compc.c \
Complextorect.c \
Cond.c \
Cond2.c \
Condc.c \
Consecstat.c \
Complextorect.c \
Copy.c \
Deltime.c \
Detrend.c \
......@@ -653,6 +655,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Change.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Change_e5slm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Cloudlayer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Command.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Comp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Compc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Complextorect.Po@am__quote@
......
......@@ -47,12 +47,13 @@ void *CDItest(void *argument);
void *Change(void *argument);
void *Change_e5slm(void *argument);
void *Cloudlayer(void *argument);
void *Command(void *argument);
void *Comp(void *argument);
void *Compc(void *argument);
void *Complextorect(void *argument);
void *Cond(void *argument);
void *Cond2(void *argument);
void *Condc(void *argument);
void *Complextorect(void *argument);
void *Consecstat(void *argument);
void *Copy(void *argument);
void *Deltime(void *argument);
......@@ -245,12 +246,13 @@ void *Wct(void *argument);
#define ChangeOperators {"chcode", "chtabnum", "chname", "chlevel", "chlevelc", "chlevelv", "chltype"}
#define Change_e5slmOperators {"change_e5slm", "change_e5lsm", "change_e5mask"}
#define CloudlayerOperators {"cloudlayer"}
#define CommandOperators {"command", "com", "cmd"}
#define CompOperators {"eq", "ne", "le", "lt", "ge", "gt"}
#define CompcOperators {"eqc", "nec", "lec", "ltc", "gec", "gtc"}
#define ComplextorectOperators {"complextorect"}
#define CondOperators {"ifthen", "ifnotthen"}
#define Cond2Operators {"ifthenelse"}
#define CondcOperators {"ifthenc", "ifnotthenc"}
#define ComplextorectOperators {"complextorect"}
#define ConsecstatOperators {"consects", "consecsum"}
#define CopyOperators {"copy", "selall"}
#define DeltimeOperators {"delday", "del29feb"}
......@@ -479,12 +481,13 @@ static modules_t Modules[] =
{ Change, ChangeHelp, ChangeOperators, CDI_REAL, 1, 1 },
{ Change_e5slm, NULL, Change_e5slmOperators, CDI_REAL, 1, 1 },
{ Cloudlayer, NULL, CloudlayerOperators, CDI_REAL, 1, 1 },
{ Command, NULL, CommandOperators, CDI_REAL, 1, 0 },
{ Comp, CompHelp, CompOperators, CDI_REAL, 2, 1 },
{ Compc, CompcHelp, CompcOperators, CDI_REAL, 1, 1 },
{ Complextorect, NULL, ComplextorectOperators, CDI_COMP, 1, 2 },
{ Cond, CondHelp, CondOperators, CDI_REAL, 2, 1 },
{ Cond2, Cond2Help, Cond2Operators, CDI_REAL, 3, 1 },
{ Condc, CondcHelp, CondcOperators, CDI_REAL, 1, 1 },
{ Complextorect, NULL, ComplextorectOperators, CDI_COMP, 1, 2 },
{ Consecstat, ConsecstatHelp, ConsecstatOperators, CDI_REAL, 1, 1 },
{ Copy, CopyHelp, CopyOperators, CDI_REAL, -1, 1 },
{ Deltime, NULL, DeltimeOperators, CDI_REAL, 1, 1 },
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment