-static void line_add_colors(TEXT_BUFFER_REC *buffer, LINE_REC **line,
- int fg, int bg, int flags)
-{
- unsigned char data[20];
- int pos;
-
- /* get the fg & bg command chars */
- fg = fg < 0 ? LINE_COLOR_DEFAULT : fg & 0x0f;
- bg = LINE_COLOR_BG | (bg < 0 ? LINE_COLOR_DEFAULT : bg & 0x0f);
- if (flags & GUI_PRINT_FLAG_BOLD)
- fg |= LINE_COLOR_BOLD;
- if (flags & GUI_PRINT_FLAG_BLINK)
- bg |= LINE_COLOR_BLINK;
-
- pos = 0;
- if (fg != last_fg) {
- last_fg = fg;
- data[pos++] = 0;
- data[pos++] = fg == 0 ? LINE_CMD_COLOR0 : fg;
- }
- if (bg != last_bg) {
- last_bg = bg;
- data[pos++] = 0;
- data[pos++] = bg;
- }
-
- if ((flags & GUI_PRINT_FLAG_UNDERLINE) != (last_flags & GUI_PRINT_FLAG_UNDERLINE)) {
- data[pos++] = 0;
- data[pos++] = LINE_CMD_UNDERLINE;
- }
- if ((flags & GUI_PRINT_FLAG_REVERSE) != (last_flags & GUI_PRINT_FLAG_REVERSE)) {
- data[pos++] = 0;
- data[pos++] = LINE_CMD_REVERSE;
- }
- if (flags & GUI_PRINT_FLAG_INDENT) {
- data[pos++] = 0;
- data[pos++] = LINE_CMD_INDENT;
- }
-
- if (pos > 0)
- *line = textbuffer_insert(buffer, *line, data, pos, NULL);
-
- last_flags = flags;
-}
-
-static void line_add_indent_func(TEXT_BUFFER_REC *buffer, LINE_REC **line,
- const char *function)
-{
- GSList *list;
- unsigned char data[1+sizeof(INDENT_FUNC)];
-
- list = g_hash_table_lookup(indent_functions, function);
- if (list != NULL) {
- data[0] = LINE_CMD_INDENT_FUNC;
- memcpy(data+1, list->data, sizeof(INDENT_FUNC));
- *line = textbuffer_insert(buffer, *line,
- data, sizeof(data), NULL);
- }
-}
-