1 /*$Id: io_error.cc,v 1.1 2009-10-23 12:01:45 felix Exp $ -*- C++ -*-
2 * Copyright (C) 2001 Albert Davis
3 * Author: Albert Davis <aldavis@gnu.org>
5 * This file is part of "Gnucap", the Gnu Circuit Analysis Package
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 *------------------------------------------------------------------
23 * Collection of functions to handle all types of errors
24 * including user interrupts, system errors, overflow, etc.
26 //testing=script,sparse 2006.07.17
29 /*--------------------------------------------------------------------------*/
30 void error(int,const char*,...);
31 void error(int,const std::string
&);
32 /*--------------------------------------------------------------------------*/
34 Exception_CS::Exception_CS(const std::string
& Message
, const CS
& cmd
, unsigned cursor
)
36 _cmd(cmd
.fullstring()),
41 /*--------------------------------------------------------------------------*/
42 Exception_CS::Exception_CS(const std::string
& Message
, const CS
& cmd
)
44 _cmd(cmd
.fullstring()),
48 /*--------------------------------------------------------------------------*/
49 const std::string
Exception_CS::message()const
54 + '\n' + std::string(_cursor
, ' ') + "^ ? " + Exception::message();
56 s
= "... " + _cmd
.substr(_cursor
-36, 56)
57 + "\n ^ ? " + Exception::message();
61 /*--------------------------------------------------------------------------*/
62 /* error: error message printer
63 * print it, if severe enough
64 * terminate command, if really bad
66 void error(int badness
, const char* fmt
, ...)
68 if (badness
>= OPT::picky
) {
69 char buffer
[BIGBUFLEN
] = "";
71 va_start(arg_ptr
,fmt
);
72 vsprintf(buffer
,fmt
,arg_ptr
);
78 /*--------------------------------------------------------------------------*/
79 void error(int badness
, const std::string
& message
)
81 if (badness
>= OPT::picky
) {
86 /*--------------------------------------------------------------------------*/
87 /*--------------------------------------------------------------------------*/
88 // vim:ts=8:sw=2:noet: