# HG changeset patch # User Jeff Sparkes # Date 1302784818 14400 # Node ID 5ec4534daf1664edc0120d99486e71cb82827c7a # Parent a63e666bb68adcbfb8fbc0cf11320dc6fa2ac08c# Parent 5256fedd50e6a02c8604791d6b8889860b1dcdda Merge tty display color cells change that I couldn't push. diff -r a63e666bb68a -r 5ec4534daf16 src/ChangeLog --- a/src/ChangeLog Tue Apr 12 13:01:07 2011 +0100 +++ b/src/ChangeLog Thu Apr 14 08:40:18 2011 -0400 @@ -33,6 +33,16 @@ Add GC_EXTERNAL_LIST_LOOP_{3,4}, analogous to GC_EXTERNAL_LIST_LOOP_2. +2011-03-28 Jeff Sparkes + + * console-tty-impl.h (struct tty_console): Add field for number of + displayable colors. + * device-tty.c (tty_device_system_metrics): Return metrics for + num-color-cells and num-bit-planes. Tracker issue 757. + * device.c: There are two required args for device-system-metric. + * redisplay-tty.c (init_tty_for_redisplay): Retrieve number of + colors from terminal description. Default to 2 if none found. + 2011-03-24 Jerry James * alloc.c (listu): Assemble the list in the right order so we don't @@ -79,6 +89,8 @@ * unicode.c (Funicode_precedence_list): "occurrance" -> "occurrence". * window.c (struct window_mirror_stats): "Ancilliary" -> "Ancillary". +======= +>>>>>>> other 2011-03-20 Mats Lidell * alloca.c (find_stack_direction): diff -r a63e666bb68a -r 5ec4534daf16 src/console-tty-impl.h --- a/src/console-tty-impl.h Tue Apr 12 13:01:07 2011 +0100 +++ b/src/console-tty-impl.h Thu Apr 14 08:40:18 2011 -0400 @@ -63,6 +63,8 @@ int height; int width; + int colors; + /* The count of frame number. */ int frame_count; diff -r a63e666bb68a -r 5ec4534daf16 src/device-tty.c --- a/src/device-tty.c Tue Apr 12 13:01:07 2011 +0100 +++ b/src/device-tty.c Thu Apr 14 08:40:18 2011 -0400 @@ -196,6 +196,10 @@ case DM_size_device: return Fcons (make_int (CONSOLE_TTY_DATA (con)->width), make_int (CONSOLE_TTY_DATA (con)->height)); + case DM_num_bit_planes: + return make_int (log2 (CONSOLE_TTY_DATA (con)->colors)); + case DM_num_color_cells: + return make_int (CONSOLE_TTY_DATA (con)->colors); default: /* No such device metric property for TTY devices */ return Qunbound; } diff -r a63e666bb68a -r 5ec4534daf16 src/device.c --- a/src/device.c Tue Apr 12 13:01:07 2011 +0100 +++ b/src/device.c Thu Apr 14 08:40:18 2011 -0400 @@ -1057,8 +1057,8 @@ return DEVICE_PRINTER_P (decode_device (device)) ? Qt : Qnil; } -DEFUN ("device-system-metric", Fdevice_system_metric, 1, 3, 0, /* -Get a metric for DEVICE as provided by the system. +DEFUN ("device-system-metric", Fdevice_system_metric, 2, 3, 0, /* +Get DEVICE METRIC as provided by the system. METRIC must be a symbol specifying requested metric. Note that the metrics returned are these provided by the system internally, not read from resources, diff -r a63e666bb68a -r 5ec4534daf16 src/redisplay-tty.c --- a/src/redisplay-tty.c Tue Apr 12 13:01:07 2011 +0100 +++ b/src/redisplay-tty.c Thu Apr 14 08:40:18 2011 -0400 @@ -1116,6 +1116,13 @@ if (CONSOLE_TTY_DATA (c)->width <= 0 || CONSOLE_TTY_DATA (c)->height <= 0) return TTY_SIZE_UNSPECIFIED; + CONSOLE_TTY_DATA (c)->colors = tgetnum("Co"); + if (CONSOLE_TTY_DATA (c)->colors == 0) + CONSOLE_TTY_DATA (c)->colors = tgetnum("colors"); + if (CONSOLE_TTY_DATA (c)->colors == 0) + /* There is always foreground and background. */ + CONSOLE_TTY_DATA (c)->colors = 2; + /* * Initialize cursor motion information. */