30 |
|
|
31 |
#define REG_ROOT "SOFTWARE\\GNU\\Emacs" |
#define REG_ROOT "SOFTWARE\\GNU\\Emacs" |
32 |
|
|
33 |
|
static char * |
34 |
|
w32_get_rdb_resource (rdb, resource) |
35 |
|
char *rdb; |
36 |
|
char *resource; |
37 |
|
{ |
38 |
|
char *value = rdb; |
39 |
|
int len = strlen (resource); |
40 |
|
|
41 |
|
while (*value) |
42 |
|
{ |
43 |
|
/* Comparison is case-insensitive because registry searches are too. */ |
44 |
|
if ((strnicmp (value, resource, len) == 0) && (value[len] == ':')) |
45 |
|
return xstrdup (&value[len + 1]); |
46 |
|
|
47 |
|
value = strchr (value, '\0') + 1; |
48 |
|
} |
49 |
|
|
50 |
|
return NULL; |
51 |
|
} |
52 |
|
|
53 |
LPBYTE |
LPBYTE |
54 |
w32_get_string_resource (name, class, dwexptype) |
w32_get_string_resource (name, class, dwexptype) |
55 |
char *name, *class; |
char *name, *class; |
119 |
|
|
120 |
char * |
char * |
121 |
x_get_string_resource (rdb, name, class) |
x_get_string_resource (rdb, name, class) |
122 |
int rdb; |
char *rdb; |
123 |
char *name, *class; |
char *name, *class; |
124 |
{ |
{ |
125 |
|
if (rdb) |
126 |
|
{ |
127 |
|
char *resource; |
128 |
|
|
129 |
|
if (resource = w32_get_rdb_resource (rdb, name)) |
130 |
|
return resource; |
131 |
|
if (resource = w32_get_rdb_resource (rdb, class)) |
132 |
|
return resource; |
133 |
|
} |
134 |
|
|
135 |
return (w32_get_string_resource (name, class, REG_SZ)); |
return (w32_get_string_resource (name, class, REG_SZ)); |
136 |
} |
} |