extern void exitsh(int xno);
extern void done(void);
extern void rmtemp(IOPTR base);
+/* stak.c */
+extern STKPTR getstak(int asize);
+extern STKPTR locstak(void);
+extern STKPTR savstak(void);
+extern STKPTR endstak(register STRING argp);
+extern void tdystak(register STKPTR x);
+extern void stakchk(void);
+extern STKPTR cpystak(STKPTR x);
+
+
+
+
/* string.c */
extern char *movstr(register const char *a, register char *b);
extern int any(char c, const char *s);
#include "defs.h"
-STKPTR stakbot = nullstr;
+STKPTR stakbot = (void *)nullstr;
/* ======== storage allocation ======== */
-STKPTR getstak(asize)
-int asize;
+STKPTR getstak(int asize)
{ /* allocate requested stack */
register STKPTR oldstak;
register int size;
return (oldstak);
}
-STKPTR locstak()
+STKPTR locstak(void)
{ /* set up stack for local use
* should be followed by `endstak'
*/
return (stakbot);
}
-STKPTR savstak()
+STKPTR savstak(void)
{
+ /* FIXME: check assert doesn't suck in stdio */
assert(staktop == stakbot);
return (stakbot);
}
-STKPTR endstak(argp)
-register STRING argp;
+STKPTR endstak(register STRING argp)
{ /* tidy up after `locstak' */
register STKPTR oldstak;
*argp++ = 0;
return (oldstak);
}
-void tdystak(x)
-register STKPTR x;
+void tdystak(register STKPTR x)
{
/* try to bring stack back to x */
while (ADR(stakbsy) > ADR(x)
;
}
staktop = stakbot = max(ADR(x), ADR(stakbas));
- rmtemp(x);
+ rmtemp((const char *)x);
}
-stakchk()
+void stakchk(void)
{
if ((brkend - stakbas) > BRKINCR + BRKINCR) {
setbrk(-BRKINCR);
- ;
}
}
-STKPTR cpystak(x)
-STKPTR x;
+STKPTR cpystak(STKPTR x)
{
return (endstak(movstr(x, locstak())));
}