Mercurial > hg > octave-terminal
changeset 222:a592507b3bad
[project @ 1993-11-14 10:54:16 by jwe]
Initial revision
author | jwe |
---|---|
date | Sun, 14 Nov 1993 10:54:16 +0000 |
parents | e2110730e556 |
children | 82c050e70f7a |
files | libcruft/misc/lo-error.cc liboctave/lo-error.h |
diffstat | 2 files changed, 130 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/libcruft/misc/lo-error.cc @@ -0,0 +1,76 @@ +// error.cc -*- C++ -*- +/* + +Copyright (C) 1992, 1993 John W. Eaton + +This file is part of Octave. + +Octave is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +Octave is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, write to the Free +Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifdef __GNUG__ +#pragma implementation +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> + +#include "liboctave-error.h" + +static +liboctave_error_handler default_liboctave_error_handler = liboctave_fatal; + +static +liboctave_error_handler current_liboctave_error_handler = liboctave_fatal; + +static void +verror (const char *name, const char *fmt, va_list args) +{ + if (name != (char *) NULL) + fprintf (stderr, "%s: ", name); + + vfprintf (stderr, fmt, args); + fprintf (stderr, "\n"); + fflush (stderr); +} + +void +set_liboctave_error_handler (liboctave_error_handler f) +{ + if (f) + current_liboctave_error_handler = f; + else + current_liboctave_error_handler = default_liboctave_error_handler; +} + +void +liboctave_fatal (const char *fmt, ...) +{ + va_list args; + va_start (args, fmt); + verror ("fatal", fmt, args); + va_end (args); + + exit (1); +} + +/* +;;; Local Variables: *** +;;; mode: C++ *** +;;; page-delimiter: "^/\\*" *** +;;; End: *** +*/
new file mode 100644 --- /dev/null +++ b/liboctave/lo-error.h @@ -0,0 +1,54 @@ +// error.h -*- C++ -*- +/* + +Copyright (C) 1992, 1993 John W. Eaton + +This file is part of Octave. + +Octave is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +Octave is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, write to the Free +Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#if !defined (_error_h) +#define _error_h 1 + +#ifdef __GNUG__ +#pragma interface +#endif + +// Tell g++ that fatal doesn't return; + +#ifdef __GNUG__ +typedef void v_fcn_cpc_x (const char *, ...); +volatile v_fcn_cpc_x fatal; +#endif + +typedef void (*liboctave_error_handler) (const char *, ...); + +extern void set_liboctave_error_handler (liboctave_error_handler f); + +extern void liboctave_fatal (const char *fmt, ...); + +// Current error state. +extern int error_state; + +#endif + +/* +;;; Local Variables: *** +;;; mode: C++ *** +;;; page-delimiter: "^/\\*" *** +;;; End: *** +*/