Mercurial > emacs
changeset 50038:8054c23b6726
(w32_make_rdb): New function.
(w32_term_init): Use it to initialize xrdb member of w32_display_info struct.
Delete leftover code.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Thu, 06 Mar 2003 13:00:04 +0000 |
parents | bb427a9406c3 |
children | 479f0fd3607c |
files | src/w32term.c |
diffstat | 1 files changed, 57 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- 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;