projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make text output left-justified in ascii and cairo drivers.
[pspp-builds.git]
/
src
/
libpspp
/
message.c
diff --git
a/src/libpspp/message.c
b/src/libpspp/message.c
index 227109145528d318f3963e7b3e295d11ef8602e9..6b4848a3ef4a135968fb20d91793e32420900cc0 100644
(file)
--- a/
src/libpspp/message.c
+++ b/
src/libpspp/message.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2006
, 2009
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
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
@@
-79,19
+79,27
@@
msg_done (void)
struct msg *
msg_dup(const struct msg *m)
{
struct msg *
msg_dup(const struct msg *m)
{
- struct msg *new_msg
= xmalloc (sizeof *m)
;
+ struct msg *new_msg;
- *new_msg = *m;
- new_msg->text = strdup(m->text);
+ new_msg = xmemdup (m, sizeof *m);
+ if (m->where.file_name != NULL)
+ new_msg->where.file_name = xstrdup (m->where.file_name);
+ new_msg->text = xstrdup (m->text);
return new_msg;
}
return new_msg;
}
+/* Frees a message created by msg_dup().
+
+ (Messages not created by msg_dup(), as well as their where.file_name
+ members, are typically not dynamically allocated, so this function should
+ not be used to destroy them.) */
void
void
-msg_destroy(struct msg *m)
+msg_destroy
(struct msg *m)
{
{
- free(m->text);
- free(m);
+ free (m->where.file_name);
+ free (m->text);
+ free (m);
}
/* Emits M as an error message.
}
/* Emits M as an error message.
@@
-101,6
+109,11
@@
msg_emit (struct msg *m)
{
if ( s_stream )
get_msg_location (s_stream, &m->where);
{
if ( s_stream )
get_msg_location (s_stream, &m->where);
+ else
+ {
+ m->where.file_name = NULL;
+ m->where.line_number = -1;
+ }
if (!messages_disabled)
msg_handler (m);
if (!messages_disabled)
msg_handler (m);