return ptr ;
}
+#ifdef __STDC__
+#include <stdarg.h>
+
+/* VARARGS1 */
+void fatal(const char *fmt, ...) {
+ va_list ap;
+
+ /* Fatal internal error */
+ fprintf(STDOUT,"%s: fatal internal error, ",progname) ;
+ va_start(ap, fmt);
+ vfprintf(STDOUT,fmt,ap);
+ va_end(ap);
+ fprintf(STDOUT,"\n") ;
+ quit(-2) ;
+}
+
+
+/* VARARGS1 */
+void vprint(const char *fmt, ...) {
+ va_list ap;
+
+ /* Diagnostic print, no auto NL */
+ va_start(ap, fmt);
+ vfprintf(STDOUT,fmt,ap);
+ va_end(ap);
+}
+
+#ifdef DEBUG
+prns(s) register char *s ; {
+ for ( ; *s ; s++ ) {
+ putc((*s&0377)&~NO_SCAN,STDOUT) ;
+ }
+ putc('\n',STDOUT) ;
+}
+#endif
+
+/* VARARGS1 */
+void fuerror(const char *fmt, ...) {
+ va_list ap;
+
+ /* Fatal user error */
+ fprintf(STDOUT,"%s: ",progname) ;
+ va_start(ap, fmt);
+ vfprintf(STDOUT,fmt,ap);
+ va_end(ap);
+ fprintf(STDOUT,"\n") ;
+ quit(-1) ;
+}
+
+/* VARARGS1 */
+void werror(const char *fmt, ...) {
+ va_list ap;
+
+ /* Warning user error, w_flag */
+ if ( w_flag ) return ;
+ fprintf(STDOUT,"%s: warning, ",progname) ;
+ va_start(ap, fmt);
+ vfprintf(STDOUT,fmt,ap);
+ va_end(ap);
+ fprintf(STDOUT,"\n") ;
+}
+
+/* VARARGS1 */
+void error(const char *fmt, ...) {
+ va_list ap;
+
+ /* User error, it is the callers responsibility to quit */
+ fprintf(STDOUT,"%s: ",progname) ;
+ va_start(ap, fmt);
+ vfprintf(STDOUT,fmt,ap);
+ va_end(ap);
+ fprintf(STDOUT,"\n") ;
+ n_error++ ;
+}
+#
+#else
/* VARARGS1 */
fatal(fmt,p1,p2,p3,p4,p5,p6,p7) char *fmt ; {
/* Fatal internal error */
fprintf(STDOUT,"\n") ;
n_error++ ;
}
+#endif
do_flush() {
fflush(stdout) ;