aboutsummaryrefslogtreecommitdiffstats
path: root/rope.c
diff options
context:
space:
mode:
authorThomas Bushnell <tb@debian.org>2006-10-23 23:31:59 -0700
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:35 -0800
commit906cc4f0899080f1b832af98b7ccbcc257b8a64e (patch)
tree14e3ec231debdca4da9c1a3ccc0536033c1c8a4b /rope.c
parent3d573fa54db0fdcae8b2a20356faa46c8e335206 (diff)
parent50eb784bfcf15ee3c6b0b53d747db92673395040 (diff)
downloadscm-906cc4f0899080f1b832af98b7ccbcc257b8a64e.tar.gz
scm-906cc4f0899080f1b832af98b7ccbcc257b8a64e.zip
Import Debian changes 5e3-1debian/5e3-1
scm (5e3-1) unstable; urgency=low * New upstream release. * debian/control (Architecture): Add ia64 to list of supported archs. Now everything but s390 is listed. (Closes: #335980) (Build-Depends): Require at least version 3a4 of slib. * Change to continue.h from version 5e1-2 repeated here. * Change to xgen.scm from version 5e2-4 repeated here. * Change to scm.1 from version 5e2-4 repeated here.
Diffstat (limited to 'rope.c')
-rw-r--r--rope.c48
1 files changed, 33 insertions, 15 deletions
diff --git a/rope.c b/rope.c
index c8a4d09..6f48982 100644
--- a/rope.c
+++ b/rope.c
@@ -168,6 +168,15 @@ short num2short(num, pos, s_caller)
if (INUMP(num) && lres==res) return res;
wta(num, pos, s_caller);
}
+signed char num2char(num, pos, s_caller)
+ SCM num;
+ char *pos, *s_caller;
+{
+ long lres = INUM((long)num);
+ char res = lres;
+ if (INUMP(num) && lres==res) return res;
+ wta(num, pos, s_caller);
+}
#ifdef FLOATS
double num2dbl(num, pos, s_caller)
SCM num;
@@ -318,21 +327,25 @@ unsigned long scm_addr(args, s_name)
break;
# ifdef FLOATS
# ifdef SINGLES
- case tc7_fvect:
- ptr = (unsigned long)&(((float *)CDR(v))[pos]);
+ case tc7_VfloC32: pos = 2 * pos;
+ case tc7_VfloR32: ptr = (unsigned long)&(((float *)CDR(v))[pos]);
break;
# endif
- case tc7_cvect: pos = 2 * pos;
- case tc7_dvect: ptr = (unsigned long)&(((double *)CDR(v))[pos]);
+ case tc7_VfloC64: pos = 2 * pos;
+ case tc7_VfloR64: ptr = (unsigned long)&(((double *)CDR(v))[pos]);
break;
# endif
- case tc7_bvect: ASRTGO(0==(pos%LONG_BIT), outrng);
+ case tc7_Vbool: ASRTGO(0==(pos%LONG_BIT), outrng);
pos = pos/LONG_BIT;
- case tc7_uvect:
- case tc7_ivect:
+ case tc7_VfixN32:
+ case tc7_VfixZ32:
case tc7_vector: ptr = (unsigned long)&(VELTS(v)[pos]);
break;
- case tc7_svect: ptr = (unsigned long)&(((short *)CDR(v))[pos]);
+ case tc7_VfixN16:
+ case tc7_VfixZ16: ptr = (unsigned long)&(((short *)CDR(v))[pos]);
+ break;
+ case tc7_VfixN8:
+ case tc7_VfixZ8: ptr = (unsigned long)&(((char *)CDR(v))[pos]);
break;
outrng: wta(MAKINUM(pos), (char *)OUTOFRANGE, s_name);
default:
@@ -358,21 +371,26 @@ unsigned long scm_base_addr(v, s_name)
break;
# ifdef FLOATS
# ifdef SINGLES
- case tc7_fvect:
+ case tc7_VfloC32: pos = 2 * pos;
+ case tc7_VfloR32:
ptr = (unsigned long)&(((float *)CDR(v))[pos]);
break;
# endif
- case tc7_cvect: pos = 2 * pos;
- case tc7_dvect: ptr = (unsigned long)&(((double *)CDR(v))[pos]);
+ case tc7_VfloC64: pos = 2 * pos;
+ case tc7_VfloR64: ptr = (unsigned long)&(((double *)CDR(v))[pos]);
break;
# endif
- case tc7_bvect: ASRTGO(0==(pos%LONG_BIT), outrng);
+ case tc7_Vbool: ASRTGO(0==(pos%LONG_BIT), outrng);
pos = pos/LONG_BIT;
- case tc7_uvect:
- case tc7_ivect:
+ case tc7_VfixN32:
+ case tc7_VfixZ32:
case tc7_vector: ptr = (unsigned long)&(VELTS(v)[pos]);
break;
- case tc7_svect: ptr = (unsigned long)&(((short *)CDR(v))[pos]);
+ case tc7_VfixN16:
+ case tc7_VfixZ16: ptr = (unsigned long)&(((short *)CDR(v))[pos]);
+ break;
+ case tc7_VfixN8:
+ case tc7_VfixZ8: ptr = (unsigned long)&(((char *)CDR(v))[pos]);
break;
outrng: wta(MAKINUM(pos), (char *)OUTOFRANGE, s_name);
default: