projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Completely rewrite src/data/format.[ch], to achieve better
[pspp-builds.git]
/
src
/
output
/
table.c
diff --git
a/src/output/table.c
b/src/output/table.c
index 1b120124a4ce8022893d153e2b0d91117070ee41..029fd5d07ddc57db49395c02717e45664d93ab57 100644
(file)
--- a/
src/output/table.c
+++ b/
src/output/table.c
@@
-1,5
+1,5
@@
/* PSPP - computes sample statistics.
/* PSPP - computes sample statistics.
- Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000
, 2006
Free Software Foundation, Inc.
Written by Ben Pfaff <blp@gnu.org>.
This program is free software; you can redistribute it and/or
Written by Ben Pfaff <blp@gnu.org>.
This program is free software; you can redistribute it and/or
@@
-18,26
+18,32
@@
02110-1301, USA. */
#include <config.h>
02110-1301, USA. */
#include <config.h>
+
#include "table.h"
#include "table.h"
+
#include <ctype.h>
#include <stdarg.h>
#include <limits.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdarg.h>
#include <limits.h>
#include <stdlib.h>
+
+#include "output.h"
+#include "manager.h"
+
+#include <data/format.h>
+#include <data/variable.h>
#include <libpspp/alloc.h>
#include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
#include <libpspp/compiler.h>
#include <libpspp/compiler.h>
-#include <data/format.h>
#include <libpspp/magic.h>
#include <libpspp/misc.h>
#include <libpspp/magic.h>
#include <libpspp/misc.h>
-#include "minmax.h"
-#include "output.h"
#include <libpspp/pool.h>
#include <libpspp/pool.h>
-#include "manager.h"
-#include
<data/variable.h>
+
+#include
"minmax.h"
#include "gettext.h"
#define _(msgid) gettext (msgid)
\f
#include "gettext.h"
#define _(msgid) gettext (msgid)
\f
-struct som_table_class tab_table_class;
+
const
struct som_table_class tab_table_class;
static char *command_name;
/* Returns the font to use for a cell with the given OPTIONS. */
static char *command_name;
/* Returns the font to use for a cell with the given OPTIONS. */
@@
-86,6
+92,7
@@
void
tab_destroy (struct tab_table *t)
{
assert (t != NULL);
tab_destroy (struct tab_table *t)
{
assert (t != NULL);
+ free (t->title);
pool_destroy (t->container);
}
pool_destroy (t->container);
}
@@
-305,7
+312,7
@@
tab_box (struct tab_table *t, int f_h, int f_v, int i_h, int i_v,
x2, t->col_ofs, x2 + t->col_ofs,
y2, t->row_ofs, y2 + t->row_ofs,
t->nc, t->nr);
x2, t->col_ofs, x2 + t->col_ofs,
y2, t->row_ofs, y2 + t->row_ofs,
t->nc, t->nr);
-
abort
();
+
NOT_REACHED
();
}
#endif
}
#endif
@@
-434,10
+441,10
@@
tab_natural_width (struct tab_table *t, struct outp_driver *d, int c)
if (width == 0)
{
if (width == 0)
{
- width = d->prop_em_width * 8;
-#if DEBUGGING
- printf ("warning: table column %d contains no data.\n", c);
-#endif
+ /* FIXME: This is an ugly kluge to compensate for the fact
+ that we don't let joined cells contribute to column
+ widths. */
+ width = d->prop_em_width * 8;
}
{
}
{
@@
-556,7
+563,7
@@
tab_float (struct tab_table *table, int c, int r, unsigned char opt,
assert (r >= 0);
assert (r < table->nr);
assert (r >= 0);
assert (r < table->nr);
- f =
make_output_forma
t (FMT_F, w, d);
+ f =
fmt_for_outpu
t (FMT_F, w, d);
#if DEBUGGING
if (c + table->col_ofs < 0 || r + table->row_ofs < 0
#if DEBUGGING
if (c + table->col_ofs < 0 || r + table->row_ofs < 0
@@
-801,15
+808,15
@@
tab_offset (struct tab_table *t, int col, int row)
assert (t != NULL);
#if DEBUGGING
assert (t != NULL);
#if DEBUGGING
- if (row < -1 || row >
=
t->nr)
+ if (row < -1 || row > t->nr)
{
printf ("tab_offset(): row=%d in %d-row table\n", row, t->nr);
{
printf ("tab_offset(): row=%d in %d-row table\n", row, t->nr);
-
abort
();
+
NOT_REACHED
();
}
}
- if (col < -1 || col >
=
t->nc)
+ if (col < -1 || col > t->nc)
{
printf ("tab_offset(): col=%d in %d-column table\n", col, t->nc);
{
printf ("tab_offset(): col=%d in %d-column table\n", col, t->nc);
-
abort
();
+
NOT_REACHED
();
}
#endif
}
#endif
@@
-836,7
+843,7
@@
tab_next_row (struct tab_table *t)
\f
static struct tab_table *t;
static struct outp_driver *d;
\f
static struct tab_table *t;
static struct outp_driver *d;
-int tab_hit;
+
static
int tab_hit;
/* Set the current table to TABLE. */
static void
/* Set the current table to TABLE. */
static void
@@
-870,7
+877,7
@@
rule_to_spacing_type (unsigned char type)
case TAL_2:
return OUTP_L_DOUBLE;
default:
case TAL_2:
return OUTP_L_DOUBLE;
default:
-
abort
();
+
NOT_REACHED
();
}
}
}
}
@@
-1218,7
+1225,7
@@
tabi_render (int c0, int r0, int c1, int r1)
y = render_rows (y, c0, c1, (t->nr - t->b) * 2, t->nr * 2 + 1);
}
y = render_rows (y, c0, c1, (t->nr - t->b) * 2, t->nr * 2 + 1);
}
-struct som_table_class tab_table_class =
+
const
struct som_table_class tab_table_class =
{
tabi_table,
tabi_driver,
{
tabi_table,
tabi_driver,
@@
-1256,7
+1263,7
@@
translate_justification (unsigned int opt)
case TAB_CENTER:
return OUTP_CENTER;
default:
case TAB_CENTER:
return OUTP_CENTER;
default:
-
abort
();
+
NOT_REACHED
();
}
}
}
}
@@
-1275,7
+1282,7
@@
rule_to_draw_type (unsigned char type)
case TAL_2:
return OUTP_L_DOUBLE;
default:
case TAL_2:
return OUTP_L_DOUBLE;
default:
-
abort
();
+
NOT_REACHED
();
}
}
}
}