# HG changeset patch # User Juanma Barranquero # Date 1046955604 0 # Node ID 8054c23b6726461c0703cdcd3b8619d75cc46cd0 # Parent bb427a9406c394b6d5231605fe8f84c5d1a31be7 (w32_make_rdb): New function. (w32_term_init): Use it to initialize xrdb member of w32_display_info struct. Delete leftover code. diff -r bb427a9406c3 -r 8054c23b6726 src/w32term.c --- a/src/w32term.c Thu Mar 06 12:56:56 2003 +0000 +++ b/src/w32term.c Thu Mar 06 13:00:04 2003 +0000 @@ -11134,6 +11134,61 @@ } +/* Create an xrdb-style database of resources to supercede registry settings. + The database is just a concatenation of C strings, finished by an additional + \0. The string are submitted to some basic normalization, so + + [ *]option[ *]:[ *]value... + + becomes + + option:value... + + but any whitespace following value is not removed. */ + +static char * +w32_make_rdb (xrm_option) + char *xrm_option; +{ + char *buffer = xmalloc (strlen (xrm_option) + 2); + char *current = buffer; + char ch; + int in_option = 1; + int before_value = 0; + + do { + ch = *xrm_option++; + + if (ch == '\n') + { + *current++ = '\0'; + in_option = 1; + before_value = 0; + } + else if (ch != ' ') + { + *current++ = ch; + if (in_option && (ch == ':')) + { + in_option = 0; + before_value = 1; + } + else if (before_value) + { + before_value = 0; + } + } + else if (!(in_option || before_value)) + { + *current++ = ch; + } + } while (ch); + + *current = '\0'; + + return buffer; +} + struct w32_display_info * w32_term_init (display_name, xrm_option, resource_name) Lisp_Object display_name; @@ -11151,23 +11206,12 @@ w32_initialized = 1; } - { - int argc = 0; - char *argv[3]; - - argv[0] = ""; - argc = 1; - if (xrm_option) - { - argv[argc++] = "-xrm"; - argv[argc++] = xrm_option; - } - } - w32_initialize_display_info (display_name); dpyinfo = &one_w32_display_info; + dpyinfo->xrdb = xrm_option ? w32_make_rdb (xrm_option) : NULL; + /* Put this display on the chain. */ dpyinfo->next = x_display_list; x_display_list = dpyinfo;