Remove "Written by Ben Pfaff <blp@gnu.org>" lines everywhere.
[pspp-builds.git] / src / output / table.h
index 678d6aa3a84b05e57364505c6ae0457485b653d4..00f14180433e6e19be5d8a8d9c03c0822509a6c6 100644 (file)
@@ -1,6 +1,5 @@
 /* PSPP - computes sample statistics.
    Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
-   Written by Ben Pfaff <blp@gnu.org>.
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
@@ -28,27 +27,28 @@ enum
   {
     TAB_NONE = 0,
 
-    /* Must match output.h: OUTP_T_JUST_*. */
     TAB_ALIGN_MASK = 03,       /* Alignment mask. */
     TAB_RIGHT = 00,            /* Right justify. */
     TAB_LEFT = 01,             /* Left justify. */
     TAB_CENTER = 02,           /* Center. */
 
-    /* Oddball cell types. */
-    TAB_JOIN = 010,            /* Joined cell. */
-    TAB_EMPTY = 020            /* Empty cell. */
+    /* Cell types. */
+    TAB_JOIN = 004,            /* Joined cell. */
+    TAB_EMPTY = 010,           /* Empty cell. */
+
+    /* Flags. */
+    TAB_EMPH = 020,             /* Emphasize cell contents. */
+    TAB_FIX = 040,              /* Use fixed font. */
   };
 
-/* Line styles.  These must match output.h:OUTP_L_*. */
+/* Line styles. */
 enum
   {
     TAL_0 = 0,                 /* No line. */
     TAL_1 = 1,                 /* Single line. */
     TAL_2 = 2,                 /* Double line. */
-    TAL_3 = 3,                 /* Special line of driver-defined style. */
+    TAL_GAP = 3,                /* Spacing but no line. */
     TAL_COUNT,                 /* Number of line styles. */
-
-    TAL_SPACING = 0200         /* Don't draw the line, just reserve space. */
   };
 
 /* Column styles.  Must correspond to SOM_COL_*. */
@@ -64,7 +64,7 @@ struct tab_joined_cell
     int x1, y1;
     int x2, y2;
     int hit;
-    struct fixed_string contents;
+    struct substring contents;
   };
 
 struct outp_driver;
@@ -79,17 +79,15 @@ struct tab_table
     /* Contents. */
     int col_style;             /* Columns: One of TAB_COL_*. */
     int col_group;             /* Number of rows per column group. */
-    struct fixed_string title; /* Table title. */
+    char *title;                /* Table title. */
     unsigned flags;            /* SOMF_*. */
     int nc, nr;                        /* Number of columns, rows. */
     int cf;                    /* Column factor for indexing purposes. */
     int l, r, t, b;            /* Number of header rows on each side. */
-    struct fixed_string *cc;   /* Cell contents; fixed_string *[nr][nc]. */
+    struct substring *cc;      /* Cell contents; substring *[nr][nc]. */
     unsigned char *ct;         /* Cell types; unsigned char[nr][nc]. */
     unsigned char *rh;         /* Horiz rules; unsigned char[nr+1][nc]. */
-    unsigned char *trh;                /* Types of horiz rules; [nr+1]. */
     unsigned char *rv;         /* Vert rules; unsigned char[nr][nc+1]. */
-    unsigned char *trv;                /* Types of vert rules; [nc+1]. */
     tab_dim_func *dim;         /* Calculates cell widths and heights. */
 
     /* Calculated during output. */
@@ -98,17 +96,11 @@ struct tab_table
     int *hrh;                  /* Heights of horizontal rules; [nr+1]. */
     int *wrv;                  /* Widths of vertical rules; [nc+1]. */
     int wl, wr, ht, hb;                /* Width/height of header rows/columns. */
-    int hr_tot, vr_tot;                /* Hrules total height, vrules total width. */
 
     /* Editing info. */
     int col_ofs, row_ofs;      /* X and Y offsets. */
-#if DEBUGGING
-    int reallocable;           /* Can table be reallocated? */
-#endif
   };
 
-extern int tab_hit;
-
 /* Number of rows in TABLE. */
 #define tab_nr(TABLE) ((TABLE)->nr)
 
@@ -134,7 +126,8 @@ void tab_resize (struct tab_table *, int nc, int nr);
 void tab_realloc (struct tab_table *, int nc, int nr);
 void tab_headers (struct tab_table *, int l, int r, int t, int b);
 void tab_columns (struct tab_table *, int style, int group);
-void tab_title (struct tab_table *, int format, const char *, ...);
+void tab_title (struct tab_table *, const char *, ...)
+     PRINTF_FORMAT (2, 3);
 void tab_flags (struct tab_table *, unsigned);
 void tab_submit (struct tab_table *);
 
@@ -155,8 +148,7 @@ enum
   {
     TAT_NONE = 0,              /* No options. */
     TAT_PRINTF = 0x0100,       /* Format the text string with sprintf. */
-    TAT_TITLE = 0x0204,                /* Title attributes. */
-    TAT_FIX = 0x0400,          /* Use fixed-pitch font. */
+    TAT_TITLE = 0x0200 | TAB_EMPH, /* Title attributes. */
     TAT_NOWRAP = 0x0800         /* No text wrap (tab_output_text() only). */
   };
 
@@ -177,7 +169,7 @@ void tab_joint_text (struct tab_table *, int x1, int y1, int x2, int y2,
 /* Cell low-level access. */
 #define tab_alloc(TABLE, AMT) pool_alloc ((TABLE)->container, (AMT))
 void tab_raw (struct tab_table *, int c, int r, unsigned opt,
-             struct fixed_string *);
+             struct substring *);
 
 /* Editing. */
 void tab_offset (struct tab_table *, int col, int row);