extern int scols_symbols_set_branch(struct libscols_symbols *sb, const char *str);
extern int scols_symbols_set_vertical(struct libscols_symbols *sb, const char *str);
extern int scols_symbols_set_right(struct libscols_symbols *sb, const char *str);
+extern int scols_symbols_set_title_wrap(struct libscols_symbols *sb, const char *str);
/* cell.c */
extern int scols_reset_cell(struct libscols_cell *ce);
global:
scols_line_refer_column_data;
scols_line_set_column_data;
+ scols_symbols_set_title_wrap;
scols_table_enable_nowrap;
scols_table_set_title;
} SMARTCOLS_2.27;
char *branch;
char *vert;
char *right;
+ char *title_wrap;
};
/*
* symbols.c - routines for symbol handling
*
* Copyright (C) 2014 Ondrej Oprala <ooprala@redhat.com>
+ * Copyright (C) 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com>
*
* This file may be redistributed under the terms of the
* GNU Lesser General Public License.
free(sy->branch);
free(sy->vert);
free(sy->right);
+ free(sy->title_wrap);
free(sy);
}
}
return 0;
}
+/**
+ * scols_symbols_set_title_wrap:
+ * @sb: a pointer to a struct libscols_symbols instance
+ * @str: a string which will represent the symbols which wraps title output
+ *
+ * Returns: 0, a negative value in case of an error.
+ */
+int scols_symbols_set_title_wrap(struct libscols_symbols *sb, const char *str)
+{
+ char *p = NULL;
+
+ assert(sb);
+
+ if (!sb)
+ return -EINVAL;
+ if (str) {
+ p = strdup(str);
+ if (!p)
+ return -ENOMEM;
+ }
+ free(sb->title_wrap);
+ sb->title_wrap = p;
+ return 0;
+}
+
/**
* scols_copy_symbols:
* @sb: a pointer to a struct libscols_symbols instance
rc = scols_symbols_set_vertical(ret, sb->vert);
if (!rc)
rc = scols_symbols_set_right(ret, sb->right);
+ if (!rc)
+ rc = scols_symbols_set_title_wrap(ret, sb->title_wrap);
if (!rc)
return ret;
return NULL;
}
-
-
scols_symbols_set_vertical(tb->symbols, "| ");
scols_symbols_set_right(tb->symbols, "`-");
}
+ scols_symbols_set_title_wrap(tb->symbols, " ");
}
return 0;
fputs(tb->title, tb->out);
for (i = len; i < tb->termwidth; i++)
- fputs(" ", tb->out);
+ fputs(tb->symbols->title_wrap, tb->out);
break;
case SCOLS_TITLE_CENTER:
for (i = 0; i <= (tb->termwidth - len) / 2; i++)
- fputs(" ", tb->out);
+ fputs(tb->symbols->title_wrap, tb->out);
fputs(tb->title, tb->out);
i += len;
for (; i < tb->termwidth; i++)
- fputs(" ", tb->out);
+ fputs(tb->symbols->title_wrap, tb->out);
break;
case SCOLS_TITLE_RIGHT:
for (i = 0; i < tb->termwidth - len; i++)
- fputs(" ", tb->out);
+ fputs(tb->symbols->title_wrap, tb->out);
fputs(tb->title, tb->out);