X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/0f2d19dd46f83f41177f61d585732b32a866d613..ca8cd13072bfab50580a254d42598aac35f8d9cc:/libguile/error.h?ds=sidebyside diff --git a/libguile/error.h b/libguile/error.h index c635c5d13..6dfbbc230 100644 --- a/libguile/error.h +++ b/libguile/error.h @@ -2,7 +2,7 @@ #ifndef ERRORH #define ERRORH -/* Copyright (C) 1995,1996 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,7 +16,8 @@ * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA * * As a special exception, the Free Software Foundation gives permission * for additional uses of the text contained in its release of GUILE. @@ -40,40 +41,43 @@ * * If you write modifications of your own for GUILE, it is your choice * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - */ + * If you do not wish that, delete this exception notice. */ -#include "__scm.h" -#include "pairs.h" +#include "libguile/__scm.h" - extern int scm_ints_disabled; -extern SCM system_error_sym; +/* GCC can be told that a function doesn't return; this helps it do + better error checking (for uninitialized variable use, for + example), and some optimization. */ +#ifdef __GNUC__ +#define SCM_NORETURN __attribute__ ((noreturn)) +#else +#define SCM_NORETURN +#endif -#ifdef __STDC__ -extern int scm_handle_it (int i); -extern void scm_warn (char *str1, char *str2); -extern SCM scm_errno (SCM arg); -extern SCM scm_perror (SCM arg); -extern void scm_def_err_response (void); -extern void scm_everr (SCM exp, SCM env, SCM arg, char *pos, char *s_subr); -extern SCM scm_wta (SCM arg, char *pos, char *s_subr); -extern void scm_init_error (void); - -#else /* STDC */ -extern int scm_handle_it (); -extern void scm_warn (); -extern SCM scm_errno (); -extern SCM scm_perror (); -extern void scm_def_err_response (); -extern void scm_everr (); -extern SCM scm_wta (); -extern void scm_init_error (); - -#endif /* STDC */ +extern void scm_error SCM_P ((SCM key, const char *subr, const char *message, + SCM args, SCM rest)) SCM_NORETURN; +extern SCM scm_error_scm SCM_P ((SCM key, SCM subr, SCM message, + SCM args, SCM rest)) SCM_NORETURN; +extern SCM scm_strerror (SCM err); +extern void scm_syserror SCM_P ((const char *subr)) SCM_NORETURN; +extern void scm_syserror_msg SCM_P ((const char *subr, const char *message, + SCM args, int eno)) SCM_NORETURN; +extern void scm_sysmissing SCM_P ((const char *subr)) SCM_NORETURN; +extern void scm_num_overflow SCM_P ((const char *subr)) SCM_NORETURN; +extern void scm_out_of_range SCM_P ((const char *subr, SCM bad_value)) + SCM_NORETURN; +extern void scm_wrong_num_args SCM_P ((SCM proc)) SCM_NORETURN; +extern void scm_wrong_type_arg SCM_P ((const char *subr, int pos, + SCM bad_value)) SCM_NORETURN; +extern void scm_memory_error SCM_P ((const char *subr)) SCM_NORETURN; +extern void scm_misc_error SCM_P ((const char *subr, const char *message, + SCM args)) SCM_NORETURN; +extern SCM scm_wta SCM_P ((SCM arg, const char *pos, const char *s_subr)); +extern void scm_init_error SCM_P ((void)); #endif /* ERRORH */