aboutsummaryrefslogtreecommitdiffstats
path: root/sys.c
diff options
context:
space:
mode:
authorThomas Bushnell <tb@debian.org>2005-10-27 12:00:49 -0700
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:29 -0800
commit4e063c0de0bf319c9201cefa6f399364041bb7b9 (patch)
tree61a326cd4ab69f610d2e10313db2a641b6d0b4dd /sys.c
parent5f7b0413c1bb0f96bb613ad74c0978f44116a136 (diff)
parent302e3218b7d487539ec305bf23881a6ee7d5be99 (diff)
downloadscm-4e063c0de0bf319c9201cefa6f399364041bb7b9.tar.gz
scm-4e063c0de0bf319c9201cefa6f399364041bb7b9.zip
Import Debian changes 5e1-1debian/5e1-1
scm (5e1-1) unstable; urgency=low * New upstream release. (Closes: #335970) * debian/rules (SCM_OPTIONS): Remove -F turtlegr; the file supporting this option seems to have gone by the wayside. * debian/rules (binary-arch): Don't try to install grtest.scm; it's gone now. * debian/rules (build-stamp): Use tee to capture output of ./build so that we can capture a copy of the file in the build log. * scm.1: Fix spelling errors in manual page: verobse -> verbose; qoutes -> quotes; aguments -> arguments; neccessary -> necessary; preceeds -> precedes. syncronization -> synchronization. (Closes: #300131) * debian/postinst, debian/prerm: Assume that install-docs is in the standard place, and test for it there with test -x. (Closes: #292996)
Diffstat (limited to 'sys.c')
-rw-r--r--sys.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sys.c b/sys.c
index 0ace3a5..8308fba 100644
--- a/sys.c
+++ b/sys.c
@@ -61,13 +61,14 @@ SCM *loc_try_create_file;
#ifndef STDC_HEADERS
char *ttyname P((int fd));
char *tmpnam P((char *s));
- sizet fwrite ();
# ifdef sun
# ifndef __SVR4
int fputs P((char *s, FILE* stream));
int fputc P((char c, FILE* stream));
int fflush P((FILE* stream));
# endif
+# else
+ sizet fwrite ();
# endif
int fgetc P((FILE* stream));
int fclose P((FILE* stream));
@@ -1679,9 +1680,9 @@ SCM scm_make_cont()
return cont;
}
static char s_sstale[] = "strangely stale";
-void scm_dynthrow(tocont, val)
+void scm_dynthrow(tocont, arg1, arg2, rest)
SCM tocont;
- SCM val;
+ SCM arg1, arg2, rest;
{
CONTINUATION *cont = CONT(tocont);
if (cont->stkbse != CONT(rootcont)->stkbse)
@@ -1708,9 +1709,14 @@ void scm_dynthrow(tocont, val)
scm_trace_env = cont->other.stkframe[2];
scm_trace = cont->other.stkframe[3];
#endif
+ if (!UNBNDP(arg2) && IM_VALUES_TOKEN == scm_env_tmp) {
+ scm_env_cons(arg2, rest);
+ arg2 = UNDEFINED;
+ }
ALLOW_INTS;
}
- throw_to_continuation(cont, val, CONT(rootcont));
+ if (!UNBNDP(arg2)) return; /* eval will signal wrong number of args */
+ throw_to_continuation(cont, arg1, CONT(rootcont));
wta(tocont, s_sstale, s_cont);
}