Modified show command (Phil Barker)
This commit is contained in:
parent
008c9d7a4c
commit
e9db216a83
|
|
@ -1,3 +1,7 @@
|
|||
2007-10-8 Paolo Nenzi <p.nenzi@ieee.org>
|
||||
*src/frontend/{device.c, device.h}: modified 'show' command to match
|
||||
SmartSpice syntax from Phil Barker patch.
|
||||
|
||||
2007-10-8 Paolo Nenzi <p.nenzi@ieee.org>
|
||||
* src/frontend/plotting/plotit.c, src/frontend/{nutimp.c, parse.c},
|
||||
src/maths/ni/{niconv.c, niiter.c}, src/spicelib/analysis/dctran.c:
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ all_show(wordlist *wl, int mode)
|
|||
if (!cp_getvar("width", VT_NUM, (char *) &screen_width))
|
||||
screen_width = DEF_WIDTH;
|
||||
count = (screen_width - LEFT_WIDTH) / (DEV_WIDTH + 1);
|
||||
count = 1;
|
||||
|
||||
n = 0;
|
||||
do {
|
||||
|
|
@ -87,6 +88,12 @@ all_show(wordlist *wl, int mode)
|
|||
/* find the parameter list and the nextgroup */
|
||||
for (w = wl; w && !nextgroup; w = next) {
|
||||
next = w->wl_next;
|
||||
|
||||
if ( eq(w->wl_word, "*") ) {
|
||||
tfree(w->wl_word);
|
||||
w->wl_word = strdup("all");
|
||||
}
|
||||
|
||||
if (eq(w->wl_word, "++") || eq(w->wl_word, "all")) {
|
||||
if (params) {
|
||||
param_flag = DGEN_ALLPARAMS;
|
||||
|
|
@ -152,59 +159,222 @@ all_show(wordlist *wl, int mode)
|
|||
instances = 1;
|
||||
if (dg->flags & DGEN_INSTANCE) {
|
||||
instances = 2;
|
||||
printf(" %s: %s\n",
|
||||
n += 1;
|
||||
|
||||
fprintf(cp_out,"%s:\n", dg->instance->GENname);
|
||||
fprintf(cp_out," %-19s= %s\n", "model", dg->model->GENmodName);
|
||||
|
||||
listdg = dg;
|
||||
|
||||
if (param_flag) {
|
||||
param_forall(dg, param_flag);
|
||||
}
|
||||
else if (!params) {
|
||||
param_forall(dg, DGEN_DEFPARAMS);
|
||||
}
|
||||
if (params) {
|
||||
wl_forall(params, listparam, dg);
|
||||
}
|
||||
|
||||
} else if (ft_sim->devices[dg->dev_type_no]->numModelParms) {
|
||||
fprintf(cp_out," %s models (%s)\n",
|
||||
ft_sim->devices[dg->dev_type_no]->name,
|
||||
ft_sim->devices[dg->dev_type_no]->description);
|
||||
n += 1;
|
||||
i = 0;
|
||||
do {
|
||||
fprintf(cp_out,"%*s", LEFT_WIDTH, "model");
|
||||
j = dgen_for_n(dg, count, printstr, "m", i);
|
||||
i += 1;
|
||||
fprintf(cp_out,"\n");
|
||||
} while (j);
|
||||
fprintf(cp_out,"\n");
|
||||
|
||||
if (param_flag)
|
||||
param_forall(dg, param_flag);
|
||||
else if (!params)
|
||||
param_forall(dg, DGEN_DEFPARAMS);
|
||||
if (params)
|
||||
wl_forall(params, listparam, dg);
|
||||
fprintf(cp_out,"\n");
|
||||
}
|
||||
}
|
||||
|
||||
wl = nextgroup;
|
||||
|
||||
} while (wl);
|
||||
|
||||
if (!n) {
|
||||
if (instances == 0)
|
||||
printf("No matching instances or models\n");
|
||||
else if (instances == 1)
|
||||
printf("No matching models\n");
|
||||
else
|
||||
printf("No matching elements\n");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
all_show_old(wordlist *wl, int mode)
|
||||
{
|
||||
wordlist *params, *nextgroup, *thisgroup;
|
||||
wordlist *prev, *next, *w;
|
||||
int screen_width;
|
||||
dgen *dg, *listdg;
|
||||
int instances;
|
||||
int i, j, n;
|
||||
int param_flag, dev_flag;
|
||||
|
||||
if (!ft_curckt) {
|
||||
fprintf(cp_err, "Error: no circuit loaded\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (wl && wl->wl_word && eq(wl->wl_word, "-v")) {
|
||||
old_show(wl->wl_next);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!cp_getvar("width", VT_NUM, (char *) &screen_width))
|
||||
screen_width = DEF_WIDTH;
|
||||
count = (screen_width - LEFT_WIDTH) / (DEV_WIDTH + 1);
|
||||
|
||||
n = 0;
|
||||
do {
|
||||
prev = NULL;
|
||||
params = NULL;
|
||||
nextgroup = NULL;
|
||||
thisgroup = wl;
|
||||
param_flag = 0;
|
||||
dev_flag = 0;
|
||||
|
||||
/* find the parameter list and the nextgroup */
|
||||
for (w = wl; w && !nextgroup; w = next) {
|
||||
next = w->wl_next;
|
||||
|
||||
if ( eq(w->wl_word, "*") ) {
|
||||
tfree(w->wl_word);
|
||||
w->wl_word = strdup("all");
|
||||
}
|
||||
|
||||
if (eq(w->wl_word, "++") || eq(w->wl_word, "all")) {
|
||||
if (params) {
|
||||
param_flag = DGEN_ALLPARAMS;
|
||||
if (prev)
|
||||
prev->wl_next = w->wl_next;
|
||||
else
|
||||
params = next;
|
||||
} else {
|
||||
dev_flag = DGEN_ALLDEVS;
|
||||
if (prev)
|
||||
prev->wl_next = w->wl_next;
|
||||
else
|
||||
thisgroup = next;
|
||||
}
|
||||
/* w must not be freed here */
|
||||
w = NULL;
|
||||
} else if (eq(w->wl_word, "+")) {
|
||||
if (params) {
|
||||
param_flag = DGEN_DEFPARAMS;
|
||||
if (prev)
|
||||
prev->wl_next = w->wl_next;
|
||||
else
|
||||
params = next;
|
||||
} else {
|
||||
dev_flag = DGEN_DEFDEVS;
|
||||
if (prev)
|
||||
prev->wl_next = w->wl_next;
|
||||
else
|
||||
thisgroup = next;
|
||||
}
|
||||
/* w must not be freed here */
|
||||
w = NULL;
|
||||
} else if (eq(w->wl_word, ":")) {
|
||||
/* w must not be freed here */
|
||||
w = NULL;
|
||||
if (!params) {
|
||||
params = next;
|
||||
if (prev)
|
||||
prev->wl_next = NULL;
|
||||
else
|
||||
thisgroup = NULL;
|
||||
} else {
|
||||
if (prev)
|
||||
prev->wl_next = next;
|
||||
else
|
||||
params = next;
|
||||
}
|
||||
} else if (eq(w->wl_word, ";") || eq(w->wl_word, ",")) {
|
||||
nextgroup = next;
|
||||
/* w must not be freed here */
|
||||
w = NULL;
|
||||
if (prev)
|
||||
prev->wl_next = NULL;
|
||||
break;
|
||||
}
|
||||
prev = w;
|
||||
}
|
||||
|
||||
instances = 0;
|
||||
for (dg = dgen_init(ft_curckt->ci_ckt, thisgroup, 1, dev_flag, mode);
|
||||
dg; dgen_nth_next(&dg, count))
|
||||
{
|
||||
instances = 1;
|
||||
if (dg->flags & DGEN_INSTANCE) {
|
||||
instances = 2;
|
||||
fprintf(cp_out," %s: %s\n",
|
||||
ft_sim->devices[dg->dev_type_no]->name,
|
||||
ft_sim->devices[dg->dev_type_no]->description);
|
||||
n += 1;
|
||||
|
||||
i = 0;
|
||||
do {
|
||||
printf("%*s", LEFT_WIDTH, "device");
|
||||
j = dgen_for_n(dg, count, printstr, "n", i);
|
||||
i += 1;
|
||||
printf("\n");
|
||||
fprintf(cp_out,"%*s", LEFT_WIDTH, "device");
|
||||
j = dgen_for_n(dg, count, printstr, "n", i);
|
||||
i += 1;
|
||||
fprintf(cp_out,"\n");
|
||||
} while (j);
|
||||
|
||||
if (ft_sim->devices[dg->dev_type_no]->numModelParms) {
|
||||
i = 0;
|
||||
do {
|
||||
printf("%*s", LEFT_WIDTH, "model");
|
||||
fprintf(cp_out,"%*s", LEFT_WIDTH, "model");
|
||||
j = dgen_for_n(dg, count, printstr, "m", i);
|
||||
i += 1;
|
||||
printf("\n");
|
||||
fprintf(cp_out,"\n");
|
||||
} while (j);
|
||||
}
|
||||
listdg = dg;
|
||||
|
||||
if (param_flag)
|
||||
param_forall(dg, param_flag);
|
||||
param_forall_old(dg, param_flag);
|
||||
else if (!params)
|
||||
param_forall(dg, DGEN_DEFPARAMS);
|
||||
param_forall_old(dg, DGEN_DEFPARAMS);
|
||||
if (params)
|
||||
wl_forall(params, listparam, dg);
|
||||
printf("\n");
|
||||
fprintf(cp_out,"\n");
|
||||
|
||||
} else if (ft_sim->devices[dg->dev_type_no]->numModelParms) {
|
||||
printf(" %s models (%s)\n",
|
||||
fprintf(cp_out," %s models (%s)\n",
|
||||
ft_sim->devices[dg->dev_type_no]->name,
|
||||
ft_sim->devices[dg->dev_type_no]->description);
|
||||
n += 1;
|
||||
i = 0;
|
||||
do {
|
||||
printf("%*s", LEFT_WIDTH, "model");
|
||||
j = dgen_for_n(dg, count, printstr, "m", i);
|
||||
i += 1;
|
||||
printf("\n");
|
||||
fprintf(cp_out,"%*s", LEFT_WIDTH, "model");
|
||||
j = dgen_for_n(dg, count, printstr, "m", i);
|
||||
i += 1;
|
||||
fprintf(cp_out,"\n");
|
||||
} while (j);
|
||||
printf("\n");
|
||||
fprintf(cp_out,"\n");
|
||||
|
||||
if (param_flag)
|
||||
param_forall(dg, param_flag);
|
||||
param_forall_old(dg, param_flag);
|
||||
else if (!params)
|
||||
param_forall(dg, DGEN_DEFPARAMS);
|
||||
param_forall_old(dg, DGEN_DEFPARAMS);
|
||||
if (params)
|
||||
wl_forall(params, listparam, dg);
|
||||
printf("\n");
|
||||
fprintf(cp_out,"\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -228,16 +398,16 @@ printstr(dgen *dg, char *name)
|
|||
/* va: ' ' is no flag for %s; \? avoids trigraph warning */
|
||||
if (*name == 'n') {
|
||||
if (dg->instance)
|
||||
printf(" %*.*s", DEV_WIDTH, DEV_WIDTH, dg->instance->GENname);
|
||||
fprintf(cp_out," %*.*s", DEV_WIDTH, DEV_WIDTH, dg->instance->GENname);
|
||||
else
|
||||
printf(" %*s", DEV_WIDTH, "<\?\?\?\?\?\?\?>");
|
||||
fprintf(cp_out," %*s", DEV_WIDTH, "<\?\?\?\?\?\?\?>");
|
||||
} else if (*name == 'm') {
|
||||
if (dg->model)
|
||||
printf(" %*.*s", DEV_WIDTH, DEV_WIDTH, dg->model->GENmodName);
|
||||
fprintf(cp_out," %*.*s", DEV_WIDTH, DEV_WIDTH, dg->model->GENmodName);
|
||||
else
|
||||
printf(" %*s", DEV_WIDTH, "<\?\?\?\?\?\?\?>");
|
||||
fprintf(cp_out," %*s", DEV_WIDTH, "<\?\?\?\?\?\?\?>");
|
||||
} else
|
||||
printf(" %*s", DEV_WIDTH, "<error>");
|
||||
fprintf(cp_out," %*s", DEV_WIDTH, "<error>");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -259,6 +429,45 @@ param_forall(dgen *dg, int flags)
|
|||
plist = ft_sim->devices[dg->dev_type_no]->modelParms;
|
||||
}
|
||||
|
||||
for (i = 0; i < xcount; i++) {
|
||||
if (plist[i].dataType & IF_ASK) {
|
||||
if ((((CKTcircuit *) (dg->ckt))->CKTrhsOld
|
||||
|| (plist[i].dataType & IF_SET))
|
||||
&& (!(plist[i].dataType & (IF_REDUNDANT | IF_UNINTERESTING))
|
||||
|| (flags == DGEN_ALLPARAMS
|
||||
&& !(plist[i].dataType & IF_REDUNDANT))))
|
||||
{
|
||||
j = 0;
|
||||
do {
|
||||
fprintf(cp_out," %-19s=", plist[i].keyword);
|
||||
|
||||
k = dgen_for_n(dg, count, printvals, (plist + i), j);
|
||||
fprintf(cp_out,"\n");
|
||||
j += 1;
|
||||
|
||||
} while (k);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
param_forall_old(dgen *dg, int flags)
|
||||
{
|
||||
int i, j, k, found;
|
||||
int xcount;
|
||||
IFparm *plist;
|
||||
|
||||
found = 0;
|
||||
|
||||
if (dg->flags & DGEN_INSTANCE) {
|
||||
xcount = *ft_sim->devices[dg->dev_type_no]->numInstanceParms;
|
||||
plist = ft_sim->devices[dg->dev_type_no]->instanceParms;
|
||||
} else {
|
||||
xcount = *ft_sim->devices[dg->dev_type_no]->numModelParms;
|
||||
plist = ft_sim->devices[dg->dev_type_no]->modelParms;
|
||||
}
|
||||
|
||||
for (i = 0; i < xcount; i++) {
|
||||
if (plist[i].dataType & IF_ASK) {
|
||||
if ((((CKTcircuit *) (dg->ckt))->CKTrhsOld
|
||||
|
|
@ -270,12 +479,12 @@ param_forall(dgen *dg, int flags)
|
|||
j = 0;
|
||||
do {
|
||||
if (!j)
|
||||
printf("%*.*s", LEFT_WIDTH, LEFT_WIDTH,
|
||||
plist[i].keyword);
|
||||
fprintf(cp_out,"%*.*s", LEFT_WIDTH, LEFT_WIDTH,
|
||||
plist[i].keyword);
|
||||
else
|
||||
printf("%*.*s", LEFT_WIDTH, LEFT_WIDTH, " ");
|
||||
k = dgen_for_n(dg, count, printvals, (plist + i), j);
|
||||
printf("\n");
|
||||
fprintf(cp_out,"%*.*s", LEFT_WIDTH, LEFT_WIDTH, " ");
|
||||
k = dgen_for_n(dg, count, printvals_old, (plist + i), j);
|
||||
fprintf(cp_out,"\n");
|
||||
j += 1;
|
||||
} while (k);
|
||||
}
|
||||
|
|
@ -315,10 +524,10 @@ listparam(wordlist *p, dgen *dg)
|
|||
j = 0;
|
||||
do {
|
||||
if (!j)
|
||||
printf("%*.*s", LEFT_WIDTH, LEFT_WIDTH, p->wl_word);
|
||||
fprintf(cp_out,"%*.*s", LEFT_WIDTH, LEFT_WIDTH, p->wl_word);
|
||||
else
|
||||
printf("%*.*s", LEFT_WIDTH, LEFT_WIDTH, " ");
|
||||
k = dgen_for_n(dg, count, printvals, (plist + i), j);
|
||||
fprintf(cp_out,"%*.*s", LEFT_WIDTH, LEFT_WIDTH, " ");
|
||||
k = dgen_for_n(dg, count, printvals_old, (plist + i), j);
|
||||
printf("\n");
|
||||
j += 1;
|
||||
} while (k > 0);
|
||||
|
|
@ -326,11 +535,11 @@ listparam(wordlist *p, dgen *dg)
|
|||
j = 0;
|
||||
do {
|
||||
if (!j)
|
||||
printf("%*.*s", LEFT_WIDTH, LEFT_WIDTH, p->wl_word);
|
||||
fprintf(cp_out,"%*.*s", LEFT_WIDTH, LEFT_WIDTH, p->wl_word);
|
||||
else
|
||||
printf("%*s", LEFT_WIDTH, " ");
|
||||
fprintf(cp_out,"%*s", LEFT_WIDTH, " ");
|
||||
k = dgen_for_n(dg, count, bogus1, 0, j);
|
||||
printf("\n");
|
||||
fprintf(cp_out,"\n");
|
||||
j += 1;
|
||||
} while (k > 0);
|
||||
}
|
||||
|
|
@ -338,11 +547,11 @@ listparam(wordlist *p, dgen *dg)
|
|||
j = 0;
|
||||
do {
|
||||
if (!j)
|
||||
printf("%*.*s", LEFT_WIDTH, LEFT_WIDTH, p->wl_word);
|
||||
fprintf(cp_out,"%*.*s", LEFT_WIDTH, LEFT_WIDTH, p->wl_word);
|
||||
else
|
||||
printf("%*s", LEFT_WIDTH, " ");
|
||||
fprintf(cp_out,"%*s", LEFT_WIDTH, " ");
|
||||
k = dgen_for_n(dg, count, bogus2, 0, j);
|
||||
printf("\n");
|
||||
fprintf(cp_out,"\n");
|
||||
j += 1;
|
||||
} while (k > 0);
|
||||
}
|
||||
|
|
@ -350,13 +559,13 @@ listparam(wordlist *p, dgen *dg)
|
|||
|
||||
int bogus1(dgen *dg)
|
||||
{
|
||||
printf(" %*s", DEV_WIDTH, "---------");
|
||||
fprintf(cp_out," %*s", DEV_WIDTH, "---------");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int bogus2(dgen *dg)
|
||||
{
|
||||
printf(" %*s", DEV_WIDTH, "?????????");
|
||||
fprintf(cp_out," %*s", DEV_WIDTH, "?????????");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -383,9 +592,9 @@ printvals(dgen *dg, IFparm *p, int i)
|
|||
|
||||
if (i >= n) {
|
||||
if (i == 0)
|
||||
printf(" -");
|
||||
fprintf(cp_out," -");
|
||||
else
|
||||
printf(" ");
|
||||
fprintf(cp_out," ");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -393,54 +602,141 @@ printvals(dgen *dg, IFparm *p, int i)
|
|||
/* va: ' ' is no flag for %s */
|
||||
switch ((p->dataType & IF_VARTYPES) & ~IF_VECTOR) {
|
||||
case IF_FLAG:
|
||||
printf(" % *d", DEV_WIDTH, val.v.vec.iVec[i]);
|
||||
fprintf(cp_out," %d", val.v.vec.iVec[i]);
|
||||
break;
|
||||
case IF_INTEGER:
|
||||
printf(" % *d", DEV_WIDTH, val.v.vec.iVec[i]);
|
||||
fprintf(cp_out," %d", val.v.vec.iVec[i]);
|
||||
break;
|
||||
case IF_REAL:
|
||||
printf(" % *.6g", DEV_WIDTH, val.v.vec.rVec[i]);
|
||||
fprintf(cp_out," %.6g", val.v.vec.rVec[i]);
|
||||
break;
|
||||
case IF_COMPLEX:
|
||||
if (!(i % 2))
|
||||
printf(" % *.6g", DEV_WIDTH, val.v.vec.cVec[i / 2].real);
|
||||
fprintf(cp_out," %.6g", val.v.vec.cVec[i / 2].real);
|
||||
else
|
||||
printf(" % *.6g", DEV_WIDTH, val.v.vec.cVec[i / 2].imag);
|
||||
fprintf(cp_out," %.6g", val.v.vec.cVec[i / 2].imag);
|
||||
break;
|
||||
case IF_STRING:
|
||||
printf(" %*.*s", DEV_WIDTH, DEV_WIDTH, val.v.vec.sVec[i]);
|
||||
fprintf(cp_out," %s", val.v.vec.sVec[i]);
|
||||
break;
|
||||
case IF_INSTANCE:
|
||||
printf(" %*.*s", DEV_WIDTH, DEV_WIDTH, val.v.vec.uVec[i]);
|
||||
fprintf(cp_out," %s", val.v.vec.uVec[i]);
|
||||
break;
|
||||
default:
|
||||
printf(" %*.*s", DEV_WIDTH, DEV_WIDTH, " ******** ");
|
||||
fprintf(cp_out," %s", " ******** ");
|
||||
}
|
||||
} else {
|
||||
switch ((p->dataType & IF_VARTYPES) & ~IF_VECTOR) {
|
||||
case IF_FLAG:
|
||||
printf(" % *d", DEV_WIDTH, val.iValue);
|
||||
fprintf(cp_out," %d", val.iValue);
|
||||
break;
|
||||
case IF_INTEGER:
|
||||
printf(" % *d", DEV_WIDTH, val.iValue);
|
||||
fprintf(cp_out," %d", val.iValue);
|
||||
break;
|
||||
case IF_REAL:
|
||||
printf(" % *.6g", DEV_WIDTH, val.rValue);
|
||||
fprintf(cp_out," %.6g", val.rValue);
|
||||
break;
|
||||
case IF_COMPLEX:
|
||||
if (i % 2)
|
||||
printf(" % *.6g", DEV_WIDTH, val.cValue.real);
|
||||
fprintf(cp_out," %.6g", val.cValue.real);
|
||||
else
|
||||
printf(" % *.6g", DEV_WIDTH, val.cValue.imag);
|
||||
fprintf(cp_out," %.6g", val.cValue.imag);
|
||||
break;
|
||||
case IF_STRING:
|
||||
printf(" %*.*s", DEV_WIDTH, DEV_WIDTH, val.sValue);
|
||||
fprintf(cp_out," %s", val.sValue);
|
||||
break;
|
||||
case IF_INSTANCE:
|
||||
printf(" %*.*s", DEV_WIDTH, DEV_WIDTH, val.uValue);
|
||||
fprintf(cp_out," %s", val.uValue);
|
||||
break;
|
||||
default:
|
||||
printf(" %*.*s", DEV_WIDTH, DEV_WIDTH, " ******** ");
|
||||
fprintf(cp_out," %s", " ******** ");
|
||||
}
|
||||
}
|
||||
|
||||
return n - 1;
|
||||
}
|
||||
|
||||
int
|
||||
printvals_old(dgen *dg, IFparm *p, int i)
|
||||
{
|
||||
IFvalue val;
|
||||
int n;
|
||||
|
||||
if (dg->flags & DGEN_INSTANCE)
|
||||
(*ft_sim->askInstanceQuest)(ft_curckt->ci_ckt, dg->instance,
|
||||
p->id, &val, &val);
|
||||
else
|
||||
(*ft_sim->askModelQuest)(ft_curckt->ci_ckt, dg->model,
|
||||
p->id, &val, &val);
|
||||
|
||||
if (p->dataType & IF_VECTOR)
|
||||
n = val.v.numValue;
|
||||
else
|
||||
n = 1;
|
||||
|
||||
if (((p->dataType & IF_VARTYPES) & ~IF_VECTOR) == IF_COMPLEX)
|
||||
n *= 2;
|
||||
|
||||
if (i >= n) {
|
||||
if (i == 0)
|
||||
fprintf(cp_out," -");
|
||||
else
|
||||
fprintf(cp_out," ");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (p->dataType & IF_VECTOR) {
|
||||
/* va: ' ' is no flag for %s */
|
||||
switch ((p->dataType & IF_VARTYPES) & ~IF_VECTOR) {
|
||||
case IF_FLAG:
|
||||
fprintf(cp_out," % *d", DEV_WIDTH, val.v.vec.iVec[i]);
|
||||
break;
|
||||
case IF_INTEGER:
|
||||
fprintf(cp_out," % *d", DEV_WIDTH, val.v.vec.iVec[i]);
|
||||
break;
|
||||
case IF_REAL:
|
||||
fprintf(cp_out," % *.6g", DEV_WIDTH, val.v.vec.rVec[i]);
|
||||
break;
|
||||
case IF_COMPLEX:
|
||||
if (!(i % 2))
|
||||
fprintf(cp_out," % *.6g", DEV_WIDTH, val.v.vec.cVec[i / 2].real);
|
||||
else
|
||||
fprintf(cp_out," % *.6g", DEV_WIDTH, val.v.vec.cVec[i / 2].imag);
|
||||
break;
|
||||
case IF_STRING:
|
||||
fprintf(cp_out," %*.*s", DEV_WIDTH, DEV_WIDTH, val.v.vec.sVec[i]);
|
||||
break;
|
||||
case IF_INSTANCE:
|
||||
fprintf(cp_out," %*.*s", DEV_WIDTH, DEV_WIDTH, val.v.vec.uVec[i]);
|
||||
break;
|
||||
default:
|
||||
fprintf(cp_out," %*.*s", DEV_WIDTH, DEV_WIDTH, " ******** ");
|
||||
}
|
||||
} else {
|
||||
switch ((p->dataType & IF_VARTYPES) & ~IF_VECTOR) {
|
||||
case IF_FLAG:
|
||||
fprintf(cp_out," % *d", DEV_WIDTH, val.iValue);
|
||||
break;
|
||||
case IF_INTEGER:
|
||||
fprintf(cp_out," % *d", DEV_WIDTH, val.iValue);
|
||||
break;
|
||||
case IF_REAL:
|
||||
fprintf(cp_out," % *.6g", DEV_WIDTH, val.rValue);
|
||||
break;
|
||||
case IF_COMPLEX:
|
||||
if (i % 2)
|
||||
fprintf(cp_out," % *.6g", DEV_WIDTH, val.cValue.real);
|
||||
else
|
||||
fprintf(cp_out," % *.6g", DEV_WIDTH, val.cValue.imag);
|
||||
break;
|
||||
case IF_STRING:
|
||||
fprintf(cp_out," %*.*s", DEV_WIDTH, DEV_WIDTH, val.sValue);
|
||||
break;
|
||||
case IF_INSTANCE:
|
||||
fprintf(cp_out," %*.*s", DEV_WIDTH, DEV_WIDTH, val.uValue);
|
||||
break;
|
||||
default:
|
||||
fprintf(cp_out," %*.*s", DEV_WIDTH, DEV_WIDTH, " ******** ");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,10 +14,12 @@ void com_showmod(wordlist *wl);
|
|||
void com_show(wordlist *wl);
|
||||
int printstr(dgen *dg, char *name);
|
||||
void param_forall(dgen *dg, int flags);
|
||||
void param_forall_old(dgen *dg, int flags);
|
||||
void listparam(wordlist *p, dgen *dg);
|
||||
int bogus1(dgen *dg);
|
||||
int bogus2(dgen *dg);
|
||||
int printvals(dgen *dg, IFparm *p, int i);
|
||||
int printvals_old(dgen *dg, IFparm *p, int i);
|
||||
void old_show(wordlist *wl);
|
||||
void com_alter(wordlist *wl);
|
||||
void com_altermod(wordlist *wl);
|
||||
|
|
|
|||
Loading…
Reference in New Issue