jcs's openbsd hax
openbsd
1#ifndef ERROR_H
2#define ERROR_H
3/* $OpenBSD: error.h,v 1.14 2024/05/21 05:00:48 jsg Exp $ */
4
5/*
6 * Copyright (c) 2001 Marc Espie.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT AND CONTRIBUTORS
18 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBSD
21 * PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29/* Error Print a tagged error message. The global
30 * MAKE variable must have been defined. This
31 * takes a format string and two optional
32 * arguments for it.
33 *
34 * Fatal Print an error message and exit. Also takes
35 * a format string and two arguments.
36 *
37 * Punt Aborts all jobs and exits with a message. Also
38 * takes a format string and two arguments.
39 *
40 * Finish Finish things up by printing the number of
41 * errors which occurred, as passed to it, and
42 * exiting.
43 */
44extern void Error(const char *, ...)
45 __attribute__((__format__ (printf, 1, 2)));
46extern void Fatal(const char *, ...)
47 __attribute__((__format__ (printf, 1, 2)));
48extern void Punt(const char *, ...)
49 __attribute__((__format__ (printf, 1, 2)));
50extern void Finish(void);
51
52/*
53 * Error levels for parsing. PARSE_FATAL means the process cannot continue
54 * once the makefile has been parsed. PARSE_WARNING means it can. Passed
55 * as the first argument to Parse_Error.
56 */
57#define PARSE_WARNING 2
58#define PARSE_FATAL 1
59extern void Parse_Error(int, const char *, ...)
60 __attribute__((__format__ (printf, 2, 3)));
61extern int fatal_errors;
62#endif