exit.c revision 1.2
11.1Sbrezak/*- 21.1Sbrezak * Copyright (c) 1993 John Brezak 31.1Sbrezak * All rights reserved. 41.1Sbrezak * 51.1Sbrezak * Redistribution and use in source and binary forms, with or without 61.1Sbrezak * modification, are permitted provided that the following conditions 71.1Sbrezak * are met: 81.1Sbrezak * 1. Redistributions of source code must retain the above copyright 91.1Sbrezak * notice, this list of conditions and the following disclaimer. 101.1Sbrezak * 2. Redistributions in binary form must reproduce the above copyright 111.1Sbrezak * notice, this list of conditions and the following disclaimer in the 121.1Sbrezak * documentation and/or other materials provided with the distribution. 131.1Sbrezak * 3. The name of the author may not be used to endorse or promote products 141.1Sbrezak * derived from this software without specific prior written permission. 151.1Sbrezak * 161.1Sbrezak * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR 171.1Sbrezak * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 181.1Sbrezak * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 191.2Sbrezak * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 201.1Sbrezak * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 211.1Sbrezak * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 221.1Sbrezak * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 231.1Sbrezak * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 241.1Sbrezak * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 251.1Sbrezak * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 261.1Sbrezak * POSSIBILITY OF SUCH DAMAGE. 271.1Sbrezak */ 281.2Sbrezak#include <stdarg.h> 291.1Sbrezak 301.1Sbrezak#ifndef lint 311.2Sbrezakstatic char rcsid[] = "$Id: exit.c,v 1.2 1994/05/08 16:11:22 brezak Exp $"; 321.1Sbrezak#endif /* not lint */ 331.1Sbrezak 341.2Sbrezakvoid 351.2Sbrezak#ifdef __STDC__ 361.2Sbrezakpanic(const char *fmt, ...) 371.2Sbrezak#else 381.2Sbrezakpanic(fmt /*, va_alist */) 391.2Sbrezak char *fmt; 401.2Sbrezak#endif 411.1Sbrezak{ 421.2Sbrezak va_list ap; 431.1Sbrezak 441.1Sbrezak static int paniced; 451.1Sbrezak 461.1Sbrezak if (!paniced) { 471.2Sbrezak paniced = 1; 481.2Sbrezak closeall(); 491.1Sbrezak } 501.1Sbrezak 511.2Sbrezak va_start(ap, fmt); 521.2Sbrezak printf(fmt, ap); 531.2Sbrezak printf("\n"); 541.2Sbrezak va_end(ap); 551.1Sbrezak _rtt(); 561.2Sbrezak} 571.2Sbrezak 581.2Sbrezakexit() 591.2Sbrezak{ 601.2Sbrezak panic("exit"); 611.1Sbrezak} 62