Jspice3
inperror.c File Reference
#include "spice.h"
#include "ifsim.h"
#include "iferrmsg.h"
#include "misc.h"
Include dependency graph for inperror.c:

Go to the source code of this file.

Macros

#define MSG(a)
 

Functions

char * INPerror (int type)
 

Variables

IFfrontEndSPfrontEnd
 

Macro Definition Documentation

#define MSG (   a)
Value:
val = tmalloc(2+strlen(a));\
if(val) {\
(void)strcpy(val,a);\
break;\
}\
(*(SPfrontEnd->IFerror))(E_PANIC,nomem,(IFuid *)NULL);\
break;
#define E_PANIC
Definition: iferrmsg.h:19
char * strcpy()
if(TDesc==NULL)
Definition: cd.c:1326
IFfrontEnd * SPfrontEnd
Definition: main.c:917
char * tmalloc()
GENERIC * IFuid
Definition: ifsim.h:72
#define NULL
Definition: spdefs.h:121
Definition: sced.h:120

Definition at line 19 of file inperror.c.

Function Documentation

char* INPerror ( int  type)

Definition at line 30 of file inperror.c.

33 {
34 
35 static char *from = "%s detected in routine %s";
36 static char *unknownError = "Unknown error code %d";
37 static char *Pause = "Pause requested";
38 static char *panic = "Impossible error - can't occur";
39 static char *exists = "Device already exists, existing one being used";
40 static char *nodev = "No such device";
41 static char *nomod = "No such model";
42 static char *noanal = "No such analysis type";
43 static char *noterm = "No such terminal on this device";
44 static char *badparm = "No such parameter on this device";
45 static char *nomem = "Out of Memory";
46 static char *nodecon = "Warning: old connection replaced";
47 static char *unsupp = "Action unsupported by this simulator";
48 static char *parmval = "Parameter value is illegal";
49 static char *notempty = "Can't delete - still referenced";
50 static char *nochange = "Sorry, simulator can't handle that now";
51 static char *notfound = "Not found";
52 static char *syntax = "Parse error";
53 
54 char *val;
55 char *tmp;
56 
57  switch(type) {
58  default:
59  if (errMsg) {
60  val = tmalloc(strlen(errMsg)+5);
61  strcpy(val,errMsg);
62  txfree(errMsg);
63  errMsg = NULL;
64  break;
65  }
66  else {
67  val = tmalloc(strlen(unknownError) +10);
68  if (val) {
69  (void) sprintf(val,unknownError,type);
70  break;
71  }
72  }
73  (*(SPfrontEnd->IFerror))(E_PANIC,nomem,(IFuid *)NULL);
74  break;
75  case E_PAUSE:
76  MSG(Pause)
77  case OK:
78  return(NULL);
79  case E_PANIC:
80  MSG(panic)
81  case E_EXISTS:
82  MSG(exists)
83  case E_NODEV:
84  MSG(nodev)
85  case E_NOMOD:
86  MSG(nomod)
87  case E_NOANAL:
88  MSG(noanal)
89  case E_NOTERM:
90  MSG(noterm)
91  case E_BADPARM:
92  MSG(badparm)
93  case E_NOMEM:
94  MSG(nomem)
95  case E_NODECON:
96  MSG(nodecon)
97  case E_UNSUPP:
98  MSG(unsupp)
99  case E_PARMVAL:
100  MSG(parmval)
101  case E_NOTEMPTY:
102  MSG(notempty)
103  case E_NOCHANGE:
104  MSG(nochange)
105  case E_NOTFOUND:
106  MSG(notfound)
107  case E_SYNTAX:
108  if (errMsg) {
109  val = tmalloc(strlen(syntax) + strlen(errMsg) + 5);
110  (void) sprintf(val,"%s: %s",syntax,errMsg);
111  txfree(errMsg);
112  errMsg = NULL;
113  }
114  else {
115  MSG(syntax)
116  }
117  }
118  if (errRtn) {
119  tmp = tmalloc(strlen(from) + strlen(val) + strlen(errRtn) + 5);
120  sprintf(tmp, from, val ,errRtn);
121  txfree(val);
122  return (tmp);
123  }
124  else {
125  return (val);
126  }
127  /*NOTREACHED*/
128 }
#define E_PAUSE
Definition: iferrmsg.h:15
#define E_NOTEMPTY
Definition: iferrmsg.h:33
#define E_PANIC
Definition: iferrmsg.h:19
#define E_NODEV
Definition: iferrmsg.h:22
char * strcpy()
if(TDesc==NULL)
Definition: cd.c:1326
static int nodev()
Definition: display.c:476
char * errMsg
Definition: main.c:42
#define E_SYNTAX
Definition: iferrmsg.h:37
#define E_NOTFOUND
Definition: iferrmsg.h:35
IFfrontEnd * SPfrontEnd
Definition: main.c:917
#define E_BADPARM
Definition: iferrmsg.h:26
#define E_EXISTS
Definition: iferrmsg.h:20
#define OK
Definition: iferrmsg.h:17
char * tmalloc()
#define E_PARMVAL
Definition: iferrmsg.h:32
GENERIC * IFuid
Definition: ifsim.h:72
void txfree()
#define NULL
Definition: spdefs.h:121
Definition: types.c:18
#define E_NOANAL
Definition: iferrmsg.h:24
#define E_NODECON
Definition: iferrmsg.h:28
#define E_NOMEM
Definition: iferrmsg.h:27
#define E_NOCHANGE
Definition: iferrmsg.h:34
#define E_NOMOD
Definition: iferrmsg.h:23
#define E_NOTERM
Definition: iferrmsg.h:25
return(True)
char * errRtn
Definition: main.c:41
#define E_UNSUPP
Definition: iferrmsg.h:30
#define MSG(a)
Definition: inperror.c:19

Variable Documentation

IFfrontEnd* SPfrontEnd

Definition at line 917 of file main.c.