View | Details | Raw Unified | Return to bug 143727
Collapse All | Expand All

(-)spice/files/patch-src_include_os_bsd_h (-4 / +3 lines)
Lines 1-6 Link Here
1
--- src/include/os_bsd.h.orig	Sat Apr 24 18:09:46 1993
1
--- src/include/os_bsd.h.orig	1993-04-24 23:09:46.000000000 +0000
2
+++ src/include/os_bsd.h	Mon Nov 12 03:14:36 2007
2
+++ src/include/os_bsd.h	2010-02-09 16:25:54.000000000 +0000
3
@@ -8,18 +8,35 @@
3
@@ -8,18 +8,34 @@
4
 
4
 
5
 #include "os_unix.h"
5
 #include "os_unix.h"
6
 
6
 
Lines 8-14 Link Here
8
+#define HAS_STDLIB		/* #include <stdlib.h> for libc defs	*/
8
+#define HAS_STDLIB		/* #include <stdlib.h> for libc defs	*/
9
+#define HAS_SYSVDIRS		/* <sys/dirent.h>			*/
9
+#define HAS_SYSVDIRS		/* <sys/dirent.h>			*/
10
+#define HAS_INTWAITSTATUS	/* wait(2)  takes an int *, not a union */
10
+#define HAS_INTWAITSTATUS	/* wait(2)  takes an int *, not a union */
11
+#define HAS_STRINGS		/* use <strings.h> instead of <string.h> */
12
+#define HAS_STRCHR		/* strchr(3) instead of index(3)	*/
11
+#define HAS_STRCHR		/* strchr(3) instead of index(3)	*/
13
+#define HAS_ATRIGH		/* acosh(3), asinh(3), atanh(3)         */
12
+#define HAS_ATRIGH		/* acosh(3), asinh(3), atanh(3)         */
14
+#define HAS_FLOAT_H		/* float.h				*/
13
+#define HAS_FLOAT_H		/* float.h				*/
(-)spice/files/patch-src_lib_ckt_noisean_c (+25 lines)
Line 0 Link Here
1
--- src/lib/ckt/noisean.c.orig	2010-02-10 00:07:14.000000000 +0000
2
+++ src/lib/ckt/noisean.c	2010-02-10 00:11:12.000000000 +0000
3
@@ -2,6 +2,9 @@
4
 Copyright 1990 Regents of the University of California.  All rights reserved.
5
 Author: 1987 Gary W. Ng
6
 **********/
7
+/* Patch to noisean.c by Richard D. McRoberts.
8
+ *
9
+ */
10
 
11
 #include "spice.h"
12
 #include <stdio.h>
13
@@ -107,8 +110,12 @@
14
 	error = CKTop(ckt, (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITJCT,
15
 		(ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITFLOAT,
16
 		ckt->CKTdcMaxIter);
17
+	if (error) return(error);
18
 
19
+	ckt->CKTmode = (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITSMSIG;
20
+	error = CKTload(ckt);
21
 	if (error) return(error);
22
+
23
         data = (Ndata*)MALLOC(sizeof(Ndata));
24
 	step = 0;
25
 	data->freq = job->NstartFreq;
(-)spice/files/patch-src_lib_ckt_traninit_c (+14 lines)
Line 0 Link Here
1
--- src/lib/ckt/traninit.c.orig	2010-02-09 23:52:59.000000000 +0000
2
+++ src/lib/ckt/traninit.c	2010-02-09 23:57:48.000000000 +0000
3
@@ -22,7 +22,10 @@
4
     ckt->CKTinitTime = ((TRANan*)job)->TRANinitTime;
5
     ckt->CKTmaxStep = ((TRANan*)job)->TRANmaxStep;
6
     if(ckt->CKTmaxStep == 0) {
7
-	ckt->CKTmaxStep = (ckt->CKTfinalTime-ckt->CKTinitTime)/50;
8
+	if ( ckt->CKTstep < (ckt->CKTfinalTime - ckt->CKTinitTime)/50.0) {
9
+		   ckt->CKTmaxStep = ckt->CKTstep; }
10
+    	else
11
+    	     { ckt->CKTmaxStep = (ckt->CKTfinalTime - ckt->CKTinitTime)/50.0; }
12
     }
13
     ckt->CKTdelmin = 1e-9*ckt->CKTmaxStep;	/* XXX */
14
     ckt->CKTmode = ((TRANan*)job)->TRANmode;
(-)spice/files/patch-src_lib_dev_bsim1_bimpar_c (+11 lines)
Line 0 Link Here
1
--- src/lib/dev/bsim1/b1mpar.c.orig	2010-02-09 16:02:41.000000000 +0000
2
+++ src/lib/dev/bsim1/b1mpar.c	2010-02-09 16:03:44.000000000 +0000
3
@@ -287,7 +287,7 @@
4
             mod->B1gateBulkOverlapCapGiven = TRUE;
5
             break;
6
         case  BSIM1_MOD_XPART :
7
-            mod->B1channelChargePartitionFlag = value->iValue;
8
+            mod->B1channelChargePartitionFlag = value->rValue;
9
             mod->B1channelChargePartitionFlagGiven = TRUE;
10
             break;
11
         case  BSIM1_MOD_RSH :
(-)spice/files/patch-src_lib_dev_mos6_mos6load_c (+11 lines)
Line 0 Link Here
1
--- src/lib/dev/mos6/mos6load.c.orig	2010-02-09 16:16:28.000000000 +0000
2
+++ src/lib/dev/mos6/mos6load.c	2010-02-09 16:16:53.000000000 +0000
3
@@ -509,7 +509,7 @@
4
                 }
5
 		vdshere = vds * here->MOS6mode;
6
                 von=(here->MOS6tVbi*model->MOS6type)+model->MOS6gamma*sarg
7
-		    - model->MOS6gamma1 * vbsvbd;
8
+		    - model->MOS6gamma1 * vbsvbd
9
 		    - model->MOS6sigma  * vdshere;
10
                 vgon = (here->MOS6mode==1?vgs:vgd) - von;
11
 
(-)spice/files/patch-src_lib_fte_outitf_c (+11 lines)
Line 0 Link Here
1
--- src/lib/fte/outitf.c.orig	2010-02-09 15:49:01.000000000 +0000
2
+++ src/lib/fte/outitf.c	2010-02-09 15:49:55.000000000 +0000
3
@@ -353,7 +353,7 @@
4
 
5
     data->name = copy(name);
6
 
7
-    unique = devname;
8
+    unique = copy(devname);
9
     INPinsert(&unique, (INPtables *) ft_curckt->ci_symtab);
10
     data->specName = unique;
11
 
(-)spice/files/patch-src_lib_fte_subckt_c (+22 lines)
Line 0 Link Here
1
--- src/lib/fte/subckt.c.orig	2010-02-09 15:25:54.000000000 +0000
2
+++ src/lib/fte/subckt.c	2010-02-09 15:57:52.000000000 +0000
3
@@ -648,6 +648,9 @@
4
         case 'f':
5
         case 'H':
6
         case 'h':
7
+	/* 2 lines here to fix w bug, NCF 1/31/95 */
8
+	case 'W':
9
+	case 'w':
10
         return (1);
11
     
12
         default:
13
@@ -944,7 +947,8 @@
14
         case 't': return (4);
15
         case 'u': return (3);
16
         case 'v': return (2);
17
-        case 'w': return (3);
18
+	/* change 3 to 2 here to fix w bug, NCF 1/31/95 */
19
+        case 'w': return (2);
20
         case 'z': return (3);
21
 
22
         default:
(-)spice/files/patch-src_lib_fte_where_c (+18 lines)
Line 0 Link Here
1
--- src/lib/fte/where.c.orig	2010-02-09 15:32:23.000000000 +0000
2
+++ src/lib/fte/where.c	2010-02-09 15:35:36.000000000 +0000
3
@@ -17,6 +17,15 @@
4
 {
5
 	char	*msg;
6
 
7
+	/*CDHW typing where with no current circuit caused crashes CDHW*/
8
+	if (!ft_curckt) {
9
+		fprintf(cp_err, "There is no current circuit\n");
10
+		return;
11
+	}
12
+	else if (ft_curckt->ci_ckt != "") {
13
+		fprintf(cp_err, "No unconverged node found.\n");
14
+	  return;
15
+	}
16
 	msg = (*ft_sim->nonconvErr)((GENERIC *) (ft_curckt->ci_ckt), 0);
17
 
18
 	printf("%s", msg);
(-)spice/files/patch-src_lib_inp_inpgtok_c (+41 lines)
Line 0 Link Here
1
--- src/lib/inp/inpgtok.c.orig	2010-02-09 15:39:09.000000000 +0000
2
+++ src/lib/inp/inpgtok.c	2010-02-09 15:43:10.000000000 +0000
3
@@ -27,6 +27,7 @@
4
 	int gobble; /* eat non-whitespace trash AFTER token? */
5
 {
6
     char * point;
7
+    int signstate;
8
 
9
     /* scan along throwing away garbage characters */
10
     for(point = *line;*point != '\0' ; point++ ) {
11
@@ -41,6 +42,7 @@
12
     /* mark beginning of token */
13
     *line = point;
14
     /* now find all good characters */
15
+    signstate = 0;
16
     for(point = *line;*point!='\0';point++) {
17
         if(*point == ' ') break;
18
         if(*point == '\t') break;
19
@@ -48,6 +50,22 @@
20
         if(*point == '(') break;
21
         if(*point == ')') break;
22
         if(*point == ',') break;
23
+       /* This is not complex enough to catch all errors, but it will
24
+          get the "good" parses */
25
+	if(*point == '+' && (signstate == 1 || signstate == 3)) break;
26
+	if(*point == '-' && (signstate == 1 || signstate == 3)) break;
27
+	if(*point == '*') break;
28
+	if(*point == '/') break;
29
+	if(*point == '^') break;
30
+	if (isdigit(*point) || *point == '.') {
31
+	    if (signstate > 1)                              
32
+	        signstate = 3;
33
+	    else
34
+	        signstate = 1;
35
+	} else if (tolower(*point) == 'e' && signstate == 1)
36
+	    signstate = 2;
37
+	else
38
+	    signstate = 3;
39
     }
40
     if (point == *line && *point)	/* Weird items, 1 char */
41
 	point++;
(-)spice/files/patch-src_lib_inp_inpptree_c (-2 / +11 lines)
Lines 1-5 Link Here
1
--- src/lib/inp/inpptree.c.orig	Mon May  3 02:16:54 1993
1
--- src/lib/inp/inpptree.c.orig	1993-05-03 09:16:54.000000000 +0000
2
+++ src/lib/inp/inpptree.c	Sun May 14 09:34:56 2006
2
+++ src/lib/inp/inpptree.c	2010-02-09 15:45:52.000000000 +0000
3
@@ -1,6 +1,8 @@
3
@@ -1,6 +1,8 @@
4
 /**********
4
 /**********
5
 Copyright 1990 Regents of the University of California.  All rights reserved.
5
 Copyright 1990 Regents of the University of California.  All rights reserved.
Lines 32-34 Link Here
32
         }
32
         }
33
         break;
33
         break;
34
 
34
 
35
@@ -977,7 +971,7 @@
36
             break;
37
         }
38
 
39
-	td = INPevaluate(&sbuf, &err, 0);
40
+	td = INPevaluate(&sbuf, &err, 1);
41
         if (err == OK) {
42
             el.token = TOK_VALUE;
43
             el.type = TYP_NUM;

Return to bug 143727