ascii_flush,
};
\f
-enum wrap_mode
- {
- WRAP_WORD,
- WRAP_CHAR,
- WRAP_WORD_CHAR
- };
-
static void ascii_expand_line (struct ascii_driver *, int y, int length);
static void ascii_layout_cell (struct ascii_driver *,
const struct table_cell *,
int bb[TABLE_N_AXES][2],
- int clip[TABLE_N_AXES][2], enum wrap_mode wrap,
+ int clip[TABLE_N_AXES][2],
int *width, int *height);
static void
bb[V][0] = 0;
bb[V][1] = INT_MAX;
clip[H][0] = clip[H][1] = clip[V][0] = clip[V][1] = 0;
- ascii_layout_cell (a, cell, bb, clip, WRAP_WORD, max_width, &h);
+ ascii_layout_cell (a, cell, bb, clip, max_width, &h);
if (strchr (cell->contents, ' '))
{
bb[H][1] = 1;
- ascii_layout_cell (a, cell, bb, clip, WRAP_WORD, min_width, &h);
+ ascii_layout_cell (a, cell, bb, clip, min_width, &h);
}
else
*min_width = *max_width;
bb[V][0] = 0;
bb[V][1] = INT_MAX;
clip[H][0] = clip[H][1] = clip[V][0] = clip[V][1] = 0;
- ascii_layout_cell (a, cell, bb, clip, WRAP_WORD, &w, &h);
+ ascii_layout_cell (a, cell, bb, clip, &w, &h);
return h;
}
struct ascii_driver *a = a_;
int w, h;
- ascii_layout_cell (a, cell, bb, clip, WRAP_WORD, &w, &h);
+ ascii_layout_cell (a, cell, bb, clip, &w, &h);
}
/* Ensures that at least the first LENGTH characters of line Y in
static void
ascii_layout_cell (struct ascii_driver *a, const struct table_cell *cell,
int bb[TABLE_N_AXES][2], int clip[TABLE_N_AXES][2],
- enum wrap_mode wrap, int *width, int *height)
+ int *width, int *height)
{
size_t length = strlen (cell->contents);
int y, pos;
line_len = new_line - line;
/* Word wrap. */
- if (pos + line_len < length && wrap != WRAP_CHAR)
+ if (pos + line_len < length)
{
size_t space_len = line_len;
while (space_len > 0 && !isspace ((unsigned char) line[space_len]))
space_len--;
if (space_len > 0)
line_len = space_len;
- else if (wrap == WRAP_WORD)
+ else
{
while (pos + line_len < length
&& !isspace ((unsigned char) line[line_len]))
\f
/* ascii_close_page () and support routines. */
+
+#if HAVE_DECL_SIGWINCH
static struct ascii_driver *the_driver;
static void
{
update_page_size (the_driver, false);
}
+#endif
static bool
ascii_open_page (struct ascii_driver *a)
a->file = fn_open (a->file_name, a->append ? "a" : "w");
if (a->file != NULL)
{
+#if HAVE_DECL_SIGWINCH
if ( isatty (fileno (a->file)))
{
struct sigaction action;
a->auto_length = true;
sigaction (SIGWINCH, &action, NULL);
}
-
+#endif
if (a->init != NULL)
fputs (a->init, a->file);
}
output_title_line (FILE *out, int width, const char *left, const char *right)
{
struct string s = DS_EMPTY_INITIALIZER;
- ds_put_char_multiple (&s, ' ', width);
+ ds_put_byte_multiple (&s, ' ', width);
if (left != NULL)
{
size_t length = MIN (strlen (left), width);
size_t length = MIN (strlen (right), width);
memcpy (ds_end (&s) - length, right, length);
}
- ds_put_char (&s, '\n');
+ ds_put_byte (&s, '\n');
fputs (ds_cstr (&s), out);
ds_destroy (&s);
}