projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed dependent/independent variable separation
[pspp]
/
src
/
error.c
diff --git
a/src/error.c
b/src/error.c
index e062f5ccf428febb1f24d5a993b0264dbe8d675d..28da450ed86bc7cb0f80e05beb5a3d78688f3de4 100644
(file)
--- a/
src/error.c
+++ b/
src/error.c
@@
-14,8
+14,8
@@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 5
9 Temple Place - Suite 330
, Boston, MA
- 0211
1-1307
, USA. */
+ Foundation, Inc., 5
1 Franklin Street, Fifth Floor
, Boston, MA
+ 0211
0-1301
, USA. */
#include <config.h>
#include "error.h"
#include <config.h>
#include "error.h"
@@
-25,7
+25,9
@@
#include <stdlib.h>
#include "alloc.h"
#include "command.h"
#include <stdlib.h>
#include "alloc.h"
#include "command.h"
-#include "getline.h"
+#include "getl.h"
+#include "glob.h"
+#include "lexer.h"
#include "main.h"
#include "output.h"
#include "settings.h"
#include "main.h"
#include "output.h"
#include "settings.h"
@@
-33,6
+35,10
@@
#include "var.h"
#include "version.h"
#include "var.h"
#include "version.h"
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
int err_error_count;
int err_warning_count;
int err_error_count;
int err_warning_count;
@@
-51,27
+57,16
@@
static int nfile_loc, mfile_loc;
void
tmsg (int class, const char *title, const char *format, ...)
{
void
tmsg (int class, const char *title, const char *format, ...)
{
- char buf[1024];
-
- /* Format the message into BUF. */
- {
- va_list args;
+ struct error e;
+ va_list args;
- va_start (args, format);
- vsnprintf (buf, 1024, format, args);
- va_end (args);
- }
-
- /* Output the message. */
- {
- struct error e;
+ e.class = class;
+ err_location (&e.where);
+ e.title = title;
- e.class = class;
- err_location (&e.where);
- e.title = title;
- e.text = buf;
- err_vmsg (&e);
- }
+ va_start (args, format);
+ err_vmsg (&e, format, args);
+ va_end (args);
}
/* Writes error message in CLASS, with text FORMAT, formatted with
}
/* Writes error message in CLASS, with text FORMAT, formatted with
@@
-79,31
+74,16
@@
tmsg (int class, const char *title, const char *format, ...)
void
msg (int class, const char *format, ...)
{
void
msg (int class, const char *format, ...)
{
- struct string buf;
-
- ds_init (&buf, 1024);
-
- /* Format the message into BUF. */
- {
- va_list args;
+ struct error e;
+ va_list args;
- va_start (args, format);
- ds_vprintf (&buf, format, args);
- va_end (args);
- }
-
- /* Output the message. */
- {
- struct error e;
+ e.class = class;
+ err_location (&e.where);
+ e.title = NULL;
- e.class = class;
- err_location (&e.where);
- e.title = NULL;
- e.text = buf.string;
- err_vmsg (&e);
- }
-
- ds_destroy (&buf);
+ va_start (args, format);
+ err_vmsg (&e, format, args);
+ va_end (args);
}
/* Terminate due to fatal error in input. */
}
/* Terminate due to fatal error in input. */
@@
-146,7
+126,7
@@
err_push_file_locator (const struct file_locator *f)
else
mfile_loc *= 2;
else
mfile_loc *= 2;
- file_loc = x
realloc (file_loc, mfile_loc *
sizeof *file_loc);
+ file_loc = x
nrealloc (file_loc, mfile_loc,
sizeof *file_loc);
}
file_loc[nfile_loc++] = f;
}
file_loc[nfile_loc++] = f;
@@
-227,10
+207,12
@@
err_hcf (int success)
getl_uninitialize ();
free(file_loc);
getl_uninitialize ();
free(file_loc);
+ file_loc = NULL;
+ nfile_loc = mfile_loc = 0;
+
outp_done ();
done_glob();
outp_done ();
done_glob();
-
exit (success ? EXIT_SUCCESS : EXIT_FAILURE);
}
exit (success ? EXIT_SUCCESS : EXIT_FAILURE);
}
@@
-239,7
+221,7
@@
static void dump_message (char *errbuf, unsigned indent,
void (*func) (const char *), unsigned width);
void
void (*func) (const char *), unsigned width);
void
-err_vmsg (const struct error *e)
+err_vmsg (const struct error *e
, const char *format, va_list args
)
{
/* Class flags. */
enum
{
/* Class flags. */
enum
@@
-285,7
+267,7
@@
err_vmsg (const struct error *e)
class &= ERR_CLASS_MASK;
assert (class >= 0 && class < ERR_CLASS_COUNT);
class &= ERR_CLASS_MASK;
assert (class >= 0 && class < ERR_CLASS_COUNT);
- assert (
e->tex
t != NULL);
+ assert (
forma
t != NULL);
ds_init (&msg, 64);
if (e->where.filename && (error_classes[class].flags & ERR_WITH_FILE))
ds_init (&msg, 64);
if (e->where.filename && (error_classes[class].flags & ERR_WITH_FILE))
@@
-310,7
+292,7
@@
err_vmsg (const struct error *e)
if (e->title)
ds_puts (&msg, e->title);
if (e->title)
ds_puts (&msg, e->title);
- ds_
puts (&msg, e->text
);
+ ds_
vprintf (&msg, format, args
);
/* FIXME: Check set_messages and set_errors to determine where to
send errors and messages.
/* FIXME: Check set_messages and set_errors to determine where to
send errors and messages.
@@
-504,11
+486,6
@@
dump_message (char *msg, unsigned indent, void (*func) (const char *),
memset (buf, ' ', indent);
memcpy (&buf[indent], cp, cp2 - cp);
memset (buf, ' ', indent);
memcpy (&buf[indent], cp, cp2 - cp);
- if ( hard_break)
- {
- buf[indent + idx + cp2 - cp] = '\n';
- ++idx;
- }
buf[indent + idx + cp2 - cp] = '\0';
func (buf);
cp = cp2;
buf[indent + idx + cp2 - cp] = '\0';
func (buf);
cp = cp2;
@@
-539,7
+516,9
@@
request_bug_report_and_abort(const char *msg )
"default_config_path: %s\n"
"include_path: %s\n"
"groff_font_path: %s\n"
"default_config_path: %s\n"
"include_path: %s\n"
"groff_font_path: %s\n"
- "locale_dir: %s\n",
+ "locale_dir: %s\n"
+ "compiler version: %s\n"
+ ,
bare_version,
version,
bare_version,
version,
@@
-549,7
+528,13
@@
request_bug_report_and_abort(const char *msg )
default_config_path,
include_path,
groff_font_path,
default_config_path,
include_path,
groff_font_path,
- locale_dir);
+ locale_dir,
+#ifdef __VERSION__
+ __VERSION__
+#else
+ "Unknown"
+#endif
+ );
if ( msg )
fprintf(stderr,"Diagnosis: %s\n",msg);
if ( msg )
fprintf(stderr,"Diagnosis: %s\n",msg);