diff options
author | Thomas Bushnell <tb@debian.org> | 2006-10-23 23:31:59 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:35 -0800 |
commit | 906cc4f0899080f1b832af98b7ccbcc257b8a64e (patch) | |
tree | 14e3ec231debdca4da9c1a3ccc0536033c1c8a4b /rope.c | |
parent | 3d573fa54db0fdcae8b2a20356faa46c8e335206 (diff) | |
parent | 50eb784bfcf15ee3c6b0b53d747db92673395040 (diff) | |
download | scm-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.c | 48 |
1 files changed, 33 insertions, 15 deletions
@@ -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: |