⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inpdoopt.c

📁 另一款电路设计软件
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Thomas L. Quarles**********/    /* INPdoOpts(ckt,option card)     *  parse the options off of the given option card and add them to     *  the given circuit      */#include "spice.h"#include <stdio.h>#include "strext.h"#include "inpdefs.h"#include "ifsim.h"#include "util.h"#include "cpdefs.h"#include "fteext.h"#include "suffix.h"voidINPdoOpts(ckt,anal,optCard,tab)    GENERIC *ckt;    GENERIC *anal;    card *optCard;    INPtables *tab;{    char *line;    char *token;    char *errmsg;    IFvalue *val;    int error;    int i;    int which;    IFanalysis *prm;    which = -1;    i=0;    for(i=0;i<ft_sim->numAnalyses;i++) {        prm = ft_sim->analyses[i];        if(strcmp(prm->name,"options")==0) {            which = i;            break;        }        i++;    }    if(which == -1) {        optCard->error = INPerrCat(optCard->error,INPmkTemp(                "errr:  analysis options table not found\n"));        return;    }    line = optCard->line;    INPgetTok(&line,&token,1);    /* throw away '.option' */    while (*line) {        INPgetTok(&line,&token,1);        for(i=0;i<prm->numParms;i++) {            if(strcmp(token,prm->analysisParms[i].keyword) == 0) {                if(!(prm->analysisParms[i].dataType & IF_UNIMP_MASK)) {                    errmsg = (char *)MALLOC((45+strlen(token)) * sizeof(char));                    (void) sprintf(errmsg,                        " Warning: %s not yet implemented - ignored \n",token);                    optCard->error = INPerrCat(optCard->error,errmsg);                    val = INPgetValue(ckt,&line,                            prm->analysisParms[i].dataType, tab);                    break;                }                if(prm->analysisParms[i].dataType & IF_SET) {                    val = INPgetValue(ckt,&line,                            prm->analysisParms[i].dataType&IF_VARTYPES, tab);                    error = (*(ft_sim->setAnalysisParm))(ckt,anal,                            prm->analysisParms[i].id,val,(IFvalue*)NULL);                    if(error) {                        errmsg =(char *)MALLOC((35+strlen(token))*sizeof(char));                        (void) sprintf(errmsg,                                "Warning:  can't set optione %s\n", token);                        optCard->error = INPerrCat(optCard->error, errmsg);                    }                    break;                }            }        }        if(i == prm->numParms) {            errmsg = (char *)MALLOC(100 * sizeof(char));            (void) strcpy(errmsg," Error: unknown option - ignored\n");            optCard->error = INPerrCat(optCard->error,errmsg);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -