mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 14:00:21 +02:00
* Allow to convert an array of bytes to a list. Thanks to Masao Uebayashi.
This commit is contained in:
parent
4daecfeecc
commit
af7546ebe2
3 changed files with 42 additions and 28 deletions
1
THANKS
1
THANKS
|
@ -34,6 +34,7 @@ For fixes or providing information which led to a fix:
|
|||
Bill Schottstaedt
|
||||
Miroslav Silovic
|
||||
Dale P. Smith
|
||||
Masao Uebayashi
|
||||
Jacques A. Vidrine
|
||||
Brett Viren
|
||||
William Webber
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||
|
||||
* unif.c (scm_array_to_list): Added missing handling of arrays of
|
||||
bytes. Thanks to Masao Uebayashi for the bug report.
|
||||
|
||||
2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||
|
||||
* debug.c (scm_procedure_source): Use SCM_CLOSURE_FORMALS more
|
||||
|
|
|
@ -2108,36 +2108,44 @@ SCM_DEFINE (scm_array_to_list, "array->list", 1, 0, 0,
|
|||
res = scm_cons (SCM_BOOL(((long *) data)[k] & mask), res);
|
||||
return res;
|
||||
}
|
||||
case scm_tc7_uvect: {
|
||||
long *data = (long *)SCM_VELTS(v);
|
||||
for (k = SCM_UVECTOR_LENGTH(v) - 1; k >= 0; k--)
|
||||
res = scm_cons(scm_ulong2num(data[k]), res);
|
||||
return res;
|
||||
}
|
||||
case scm_tc7_ivect: {
|
||||
long *data = (long *)SCM_VELTS(v);
|
||||
for (k = SCM_UVECTOR_LENGTH(v) - 1; k >= 0; k--)
|
||||
res = scm_cons(scm_long2num(data[k]), res);
|
||||
return res;
|
||||
}
|
||||
case scm_tc7_svect: {
|
||||
short *data;
|
||||
data = (short *)SCM_VELTS(v);
|
||||
for (k = SCM_UVECTOR_LENGTH(v) - 1; k >= 0; k--)
|
||||
res = scm_cons(SCM_MAKINUM (data[k]), res);
|
||||
return res;
|
||||
}
|
||||
case scm_tc7_byvect:
|
||||
{
|
||||
signed char *data = (signed char *) SCM_VELTS (v);
|
||||
scm_sizet k = SCM_UVECTOR_LENGTH (v);
|
||||
while (k != 0)
|
||||
res = scm_cons (SCM_MAKINUM (data[--k]), res);
|
||||
return res;
|
||||
}
|
||||
case scm_tc7_uvect:
|
||||
{
|
||||
long *data = (long *)SCM_VELTS(v);
|
||||
for (k = SCM_UVECTOR_LENGTH(v) - 1; k >= 0; k--)
|
||||
res = scm_cons(scm_ulong2num(data[k]), res);
|
||||
return res;
|
||||
}
|
||||
case scm_tc7_ivect:
|
||||
{
|
||||
long *data = (long *)SCM_VELTS(v);
|
||||
for (k = SCM_UVECTOR_LENGTH(v) - 1; k >= 0; k--)
|
||||
res = scm_cons(scm_long2num(data[k]), res);
|
||||
return res;
|
||||
}
|
||||
case scm_tc7_svect:
|
||||
{
|
||||
short *data = (short *)SCM_VELTS(v);
|
||||
for (k = SCM_UVECTOR_LENGTH(v) - 1; k >= 0; k--)
|
||||
res = scm_cons(SCM_MAKINUM (data[k]), res);
|
||||
return res;
|
||||
}
|
||||
#ifdef HAVE_LONG_LONGS
|
||||
case scm_tc7_llvect: {
|
||||
long_long *data;
|
||||
data = (long_long *)SCM_VELTS(v);
|
||||
for (k = SCM_UVECTOR_LENGTH(v) - 1; k >= 0; k--)
|
||||
res = scm_cons(scm_long_long2num(data[k]), res);
|
||||
return res;
|
||||
}
|
||||
case scm_tc7_llvect:
|
||||
{
|
||||
long_long *data = (long_long *)SCM_VELTS(v);
|
||||
for (k = SCM_UVECTOR_LENGTH(v) - 1; k >= 0; k--)
|
||||
res = scm_cons(scm_long_long2num(data[k]), res);
|
||||
return res;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
case scm_tc7_fvect:
|
||||
{
|
||||
float *data = (float *) SCM_VELTS (v);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue