summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamm Maguire <camm@debian.org>2014-04-02 18:21:06 +0000
committerCamm Maguire <camm@debian.org>2014-04-02 18:33:15 +0000
commit3e4c0e5c34312a15c827c0dcaa9f8b0c7fd62c40 (patch)
tree1e81ad8d2cb1e929821ecf7a93b45933d94fe999
parent1e8744ab26db371da257ae78368bcf320c4c6dae (diff)
downloadgcl-3e4c0e5c34312a15c827c0dcaa9f8b0c7fd62c40.tar.gz
NO_SETBUF cleanups
-rwxr-xr-xgcl/o/file.d36
-rwxr-xr-xgcl/o/sgbc.c18
2 files changed, 28 insertions, 26 deletions
diff --git a/gcl/o/file.d b/gcl/o/file.d
index 9562a7e9..06f90c9a 100755
--- a/gcl/o/file.d
+++ b/gcl/o/file.d
@@ -365,38 +365,38 @@ BEGIN:
}
}
-#ifndef NO_SETBUF
void
-setup_stream_buffer(x)
- object x;
-{char *buf=alloc_contblock(BUFSIZ);
- x->sm.sm_buffer = buf;
- setbuf(x->sm.sm_fp, buf);
+setup_stream_buffer(object x) {
+#ifndef NO_SETBUF
+ char *buf=alloc_contblock(BUFSIZ);
+ x->sm.sm_buffer = buf;
+ setbuf(x->sm.sm_fp, buf);
+#else
+ setvbuf(x->sm.sm_fp,NULL,_IONBF,0);
+ x->sm.sm_buffer=0;
+#endif
}
static void
-deallocate_stream_buffer(strm)
-object strm;
-{
+deallocate_stream_buffer(object strm) {
/* SGC contblock pages: Its possible this is on an old page CM 20030827 */
- if (strm->sm.sm_buffer)
- {
+ if (strm->sm.sm_buffer) {
#ifdef SGC
- insert_maybe_sgc_contblock(strm->sm.sm_buffer, BUFSIZ);
+ insert_maybe_sgc_contblock(strm->sm.sm_buffer, BUFSIZ);
#else
- insert_contblock(strm->sm.sm_buffer, BUFSIZ);
+ insert_contblock(strm->sm.sm_buffer, BUFSIZ);
#endif
- strm->sm.sm_buffer = 0;}
-/* else */
-/* printf("no buffer? %p \n",strm->sm.sm_fp); */
+ if (strm->sm.sm_fp)
+ setvbuf(strm->sm.sm_fp,NULL,_IONBF,0);
+ strm->sm.sm_buffer = 0;
+ }
#ifndef FCLOSE_SETBUF_OK
strm->sm.sm_fp->_base = NULL;
#endif
+
}
-/* end ifndef NO_SETBUF */
-#endif
DEFVAR("*ALLOW-GZIPPED-FILE*",sSAallow_gzipped_fileA,SI,sLnil,"");
diff --git a/gcl/o/sgbc.c b/gcl/o/sgbc.c
index b41b6c65..1d405d76 100755
--- a/gcl/o/sgbc.c
+++ b/gcl/o/sgbc.c
@@ -1278,19 +1278,21 @@ sgc_start(void) {
writable_pages=0;
for (pi=cell_list_head;pi;pi=pi->next) {
- void *v,*ve;
if (pi->sgc_flags&SGC_WRITABLE)
SET_WRITABLE(page(pi));
else
tm_of(pi->type)->tm_alt_npage++;
#ifndef NO_SETBUF /*FIXME, implement restartable getc with read in readc_stream*/
- if (pi->type!=(tm=tm_of(t_stream))->tm_type) continue;
- for (v=pagetochar(page(pi)),ve=v+tm->tm_nppage*tm->tm_size;v<ve;v+=tm->tm_size) {
- object x=v;
- if (type_of(x)!=t_stream || is_free(x)) continue;
- if (x->sm.sm_buffer)
- for (i=page(x->sm.sm_buffer);i<=page(x->sm.sm_buffer+BUFSIZ-1);i++)
- SET_WRITABLE(i);
+ {
+ void *v,*ve;
+ if (pi->type!=(tm=tm_of(t_stream))->tm_type) continue;
+ for (v=pagetochar(page(pi)),ve=v+tm->tm_nppage*tm->tm_size;v<ve;v+=tm->tm_size) {
+ object x=v;
+ if (type_of(x)!=t_stream || is_free(x)) continue;
+ if (x->sm.sm_buffer)
+ for (i=page(x->sm.sm_buffer);i<=page(x->sm.sm_buffer+BUFSIZ-1);i++)
+ SET_WRITABLE(i);
+ }
}
#endif
}