Description: <short summary of the patch>
TODO: Put a short summary on the line above and replace this paragraph
with a longer explanation of this change. Complete the meta-information
with other relevant fields (see below for details). To make it easier, the
information below has been extracted from the changelog. Adjust it or drop
it.
.
gcl (2.6.12-67) unstable; urgency=medium
.
* Version_2_6_13pre55
Author: Camm Maguire <camm@debian.org>
---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:
Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2018-03-03
--- gcl-2.6.12.orig/h/notcomp.h
+++ gcl-2.6.12/h/notcomp.h
@@ -374,3 +374,5 @@ EXTER gmp_randfnptr_t Mersenne_Twister_G
#endif
#define collect(p_,f_) (p_)=&(*(p_)=(f_))->c.c_cdr
+#define READ_STREAM_OR_FASD(strm_) \
+ type_of(strm_)==t_stream ? read_object_non_recursive(strm_) : fSread_fasd_top(strm_)
--- gcl-2.6.12.orig/o/cmpaux.c
+++ gcl-2.6.12/o/cmpaux.c
@@ -363,7 +363,7 @@ do_init(object *statVV) {
if (ch!='\n') {
struct fasd * fd;
- faslfile=FFN(fSopen_fasd)(faslfile,sKinput,OBJNULL,Cnil);
+ faslfile=fSopen_fasd(faslfile,sKinput,OBJNULL,Cnil);
fd=(struct fasd *)faslfile->v.v_self;
n=fix(fd->table_length);
fd->table->v.v_self=alloca(n*sizeof(object));
@@ -371,7 +371,7 @@ do_init(object *statVV) {
fd->table->v.v_dim=faslfile->v.v_self[1]->v.v_fillp=n;
}
- n=fix(type_of(faslfile)==t_stream ? read_object(faslfile) : FFN(fSread_fasd_top)(faslfile));
+ n=fix(READ_STREAM_OR_FASD(faslfile));
sSPinit->s.s_dbind=fasl_vec=fSmake_vector1_1(n,aet_object,Cnil);
/* switch SPinit to point to a vector of function addresses */
@@ -395,9 +395,9 @@ do_init(object *statVV) {
*/
/* Now we can run the forms f1 f2 in form= (%init f1 f2 ...) */
- FFN(fSload_stream)(faslfile,Cnil);
+ fSload_stream(faslfile,Cnil);
if (type_of(faslfile)!=t_stream)
- FFN(fSclose_fasd)(faslfile);
+ fSclose_fasd(faslfile);
}
--- gcl-2.6.12.orig/o/fasdump.c
+++ gcl-2.6.12/o/fasdump.c
@@ -561,6 +561,13 @@ DEFUN_NEW("READ-FASD-TOP",object,fSread_
{ RESTORE_FASD;
return result;}
}
+#ifdef STATIC_FUNCTION_POINTERS
+object
+fSread_fasd_top(object x) {
+ return FFN(fSread_fasd_top)(x);
+}
+#endif
+
object sLeq;
object sSPinit;
@@ -618,6 +625,12 @@ DEFUN_NEW("OPEN-FASD",object,fSopen_fasd
fd->table_length=current_fasd.table_length;
return result;
}}
+#ifdef STATIC_FUNCTION_POINTERS
+object
+fSopen_fasd(object stream, object direction, object eof, object tabl) {
+ return FFN(fSopen_fasd)(stream,direction,eof,tabl);
+}
+#endif
DEFUN_NEW("CLOSE-FASD",object,fSclose_fasd,SI,1,1,NONE,OO,OO,OO,OO,(object ar),"")
/* static object */
@@ -649,6 +662,12 @@ DEFUN_NEW("CLOSE-FASD",object,fSclose_fa
return ar;
}
+#ifdef STATIC_FUNCTION_POINTERS
+object
+fSclose_fasd(object ar) {
+ return FFN(fSclose_fasd)(ar);
+}
+#endif
#define HASHP(x) 1
--- gcl-2.6.12.orig/o/file.d
+++ gcl-2.6.12/o/file.d
@@ -1645,8 +1645,7 @@ DEFUN_NEW("LOAD-STREAM",object,fSload_st
for (;;) {
preserving_whitespace_flag = FALSE;
detect_eos_flag = TRUE;
- x = type_of(strm)==t_stream ? read_object_non_recursive(strm) : FFN(fSread_fasd_top)(strm);
- if (x == OBJNULL)
+ if ((x = READ_STREAM_OR_FASD(strm))==OBJNULL)
break;
{
object *base = vs_base, *top = vs_top, *lex = lex_env;
@@ -1672,6 +1671,12 @@ DEFUN_NEW("LOAD-STREAM",object,fSload_st
RETURN1(Ct);
}
+#ifdef STATIC_FUNCTION_POINTERS
+object
+fSload_stream(object strm,object print) {
+ return FFN(fSload_stream)(strm,print);
+}
+#endif
DEFUN_NEW("LOAD-FASL",object,fSload_fasl,SI,2,2,NONE,OO,OO,OO,OO,(object fasl_filename,object print),"") {