summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/dynl-dl.c2
-rw-r--r--libguile/gsubr.c1
-rw-r--r--libguile/numbers.c81
-rw-r--r--libguile/srcprop.c28
-rw-r--r--libguile/unif.c2
5 files changed, 72 insertions, 42 deletions
diff --git a/libguile/dynl-dl.c b/libguile/dynl-dl.c
index 4de429dbd..4d85292d9 100644
--- a/libguile/dynl-dl.c
+++ b/libguile/dynl-dl.c
@@ -87,7 +87,9 @@ sysdep_dynl_func (symb, handle, subr)
{
void *fptr;
char *err;
+#if defined(USCORE) && !defined(DLSYM_ADDS_USCORE)
char *usymb;
+#endif
#if defined(USCORE) && !defined(DLSYM_ADDS_USCORE)
usymb = (char *) malloc (strlen (symb) + 2);
diff --git a/libguile/gsubr.c b/libguile/gsubr.c
index 266efc3b6..609c431f1 100644
--- a/libguile/gsubr.c
+++ b/libguile/gsubr.c
@@ -161,6 +161,7 @@ scm_gsubr_apply(args)
case 9: return (*fcn)(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8]);
case 10: return (*fcn)(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9]);
}
+ return 0; /* Never reached. */
}
diff --git a/libguile/numbers.c b/libguile/numbers.c
index e5a69e96e..e9814845a 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -1241,13 +1241,17 @@ idbl2str(f, a)
# else
efmt = (exp < -3) || (exp > wp+2);
if (!efmt)
- if (exp < 0) {
- a[ch++] = '0';
- a[ch++] = '.';
- dpt = exp;
- while (++dpt) a[ch++] = '0';
- } else
- dpt = exp+1;
+ {
+ if (exp < 0)
+ {
+ a[ch++] = '0';
+ a[ch++] = '.';
+ dpt = exp;
+ while (++dpt) a[ch++] = '0';
+ }
+ else
+ dpt = exp+1;
+ }
else
dpt = 1;
# endif
@@ -1266,19 +1270,23 @@ idbl2str(f, a)
} while (wp--);
if (dpt > 0)
+ {
# ifndef ENGNOT
- if ((dpt > 4) && (exp > 6)) {
- d = (a[0]=='-'?2:1);
- for (i = ch++; i > d; i--)
- a[i] = a[i-1];
- a[d] = '.';
- efmt = 1;
- } else
+ if ((dpt > 4) && (exp > 6))
+ {
+ d = (a[0]=='-'?2:1);
+ for (i = ch++; i > d; i--)
+ a[i] = a[i-1];
+ a[d] = '.';
+ efmt = 1;
+ }
+ else
# endif
- {
- while (--dpt) a[ch++] = '0';
- a[ch++] = '.';
- }
+ {
+ while (--dpt) a[ch++] = '0';
+ a[ch++] = '.';
+ }
+ }
if (a[ch-1]=='.') a[ch++]='0'; /* trailing zero */
if (efmt && exp) {
a[ch++] = 'e';
@@ -2617,12 +2625,16 @@ scm_difference(x, y)
SCM_ASRTGO(SCM_INEXP(x), badx);
SCM_ASRTGO(SCM_NIMP(y) && SCM_INEXP(y), bady);
# endif
- if SCM_CPLXP(x)
- if SCM_CPLXP(y)
- return scm_makdbl(SCM_REAL(x)-SCM_REAL(y), SCM_IMAG(x)-SCM_IMAG(y));
- else
- return scm_makdbl(SCM_REAL(x)-SCM_REALPART(y), SCM_IMAG(x));
- return scm_makdbl(SCM_REALPART(x)-SCM_REALPART(y), SCM_CPLXP(y)?-SCM_IMAG(y):0.0);
+ if (SCM_CPLXP (x))
+ {
+ if (SCM_CPLXP (y))
+ return scm_makdbl (SCM_REAL (x) - SCM_REAL (y),
+ SCM_IMAG (x) - SCM_IMAG (y));
+ else
+ return scm_makdbl (SCM_REAL (x) - SCM_REALPART(y), SCM_IMAG (x));
+ }
+ return scm_makdbl (SCM_REALPART (x) - SCM_REALPART (y),
+ SCM_CPLXP(y) ? - SCM_IMAG (y) : 0.0);
}
if SCM_UNBNDP(y) {x = -SCM_INUM(x); goto checkx;}
if SCM_NINUMP(y) {
@@ -2763,14 +2775,19 @@ scm_product(x, y)
bady: scm_wta(y, (char *)SCM_ARG2, s_product);
# endif
# endif
- if SCM_CPLXP(x)
- if SCM_CPLXP(y)
- return scm_makdbl(SCM_REAL(x)*SCM_REAL(y)-SCM_IMAG(x)*SCM_IMAG(y),
- SCM_REAL(x)*SCM_IMAG(y)+SCM_IMAG(x)*SCM_REAL(y));
- else
- return scm_makdbl(SCM_REAL(x)*SCM_REALPART(y), SCM_IMAG(x)*SCM_REALPART(y));
- return scm_makdbl(SCM_REALPART(x)*SCM_REALPART(y),
- SCM_CPLXP(y)?SCM_REALPART(x)*SCM_IMAG(y):0.0);
+ if (SCM_CPLXP(x))
+ {
+ if (SCM_CPLXP(y))
+ return scm_makdbl (SCM_REAL (x) * SCM_REAL (y)
+ - SCM_IMAG (x) * SCM_IMAG (y),
+ SCM_REAL (x) * SCM_IMAG (y)
+ + SCM_IMAG (x) * SCM_REAL (y));
+ else
+ return scm_makdbl (SCM_REAL (x) * SCM_REALPART (y),
+ SCM_IMAG (x) * SCM_REALPART(y));
+ }
+ return scm_makdbl (SCM_REALPART (x) * SCM_REALPART (y),
+ SCM_CPLXP (y) ? SCM_REALPART (x) * SCM_IMAG (y) : 0.0);
}
if SCM_NINUMP(y) {
# ifdef SCM_BIGDIG
diff --git a/libguile/srcprop.c b/libguile/srcprop.c
index 733c3b26b..195b69964 100644
--- a/libguile/srcprop.c
+++ b/libguile/srcprop.c
@@ -284,18 +284,26 @@ scm_set_source_property_x (obj, key, datum)
p = SCM_EOL;
}
if (scm_i_breakpoint == key)
- if (SCM_FALSEP (datum))
- CLEARSRCPROPBRK (SCM_NIMP (p) && SRCPROPSP (p)
+ {
+ if (SCM_FALSEP (datum))
+ CLEARSRCPROPBRK (SCM_NIMP (p) && SRCPROPSP (p)
+ ? p
+ : SCM_WHASHSET (scm_source_whash, h,
+ scm_make_srcprops (0,
+ 0,
+ SCM_UNDEFINED,
+ SCM_UNDEFINED,
+ p)));
+ else
+ SETSRCPROPBRK (SCM_NIMP (p) && SRCPROPSP (p)
? p
: SCM_WHASHSET (scm_source_whash, h,
- scm_make_srcprops (0, 0, SCM_UNDEFINED,
- SCM_UNDEFINED, p)));
- else
- SETSRCPROPBRK (SCM_NIMP (p) && SRCPROPSP (p)
- ? p
- : SCM_WHASHSET (scm_source_whash, h,
- scm_make_srcprops (0, 0, SCM_UNDEFINED,
- SCM_UNDEFINED, p)));
+ scm_make_srcprops (0,
+ 0,
+ SCM_UNDEFINED,
+ SCM_UNDEFINED,
+ p)));
+ }
else if (scm_i_line == key)
{
if (SCM_NIMP (p) && SRCPROPSP (p))
diff --git a/libguile/unif.c b/libguile/unif.c
index 9a675954a..6e53451fb 100644
--- a/libguile/unif.c
+++ b/libguile/unif.c
@@ -569,6 +569,7 @@ scm_dimensions_to_uniform_array (dims, prot, fill)
scm_array_dim *s;
SCM ra;
if (SCM_INUMP (dims))
+ {
if (SCM_INUM (dims) < SCM_LENGTH_MAX)
{
SCM answer;
@@ -588,6 +589,7 @@ scm_dimensions_to_uniform_array (dims, prot, fill)
}
else
dims = scm_cons (dims, SCM_EOL);
+ }
SCM_ASSERT (SCM_NULLP (dims) || (SCM_NIMP (dims) && SCM_CONSP (dims)),
dims, SCM_ARG1, s_dimensions_to_uniform_array);
ra = scm_shap2ra (dims, s_dimensions_to_uniform_array);