/* Emulate the X Resource Manager through the registry.
- Copyright (C) 1990, 1993, 1994, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1993-1994, 2001-2016 Free Software Foundation,
+ Inc.
This file is part of GNU Emacs.
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. */
+along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Kevin Gallo */
#include <config.h>
#include "lisp.h"
-#include "w32term.h"
+#include "w32term.h" /* for XrmDatabase, xrdb */
#include "blockinput.h"
#include <stdio.h>
-#include <string.h>
#define REG_ROOT "SOFTWARE\\GNU\\Emacs"
"emacs.tool-bar.attributeBackground:SystemButtonFace\0" \
"emacs.menu.attributeForeground:SystemMenuText\0" \
"emacs.menu.attributeBackground:SystemMenu\0" \
- "emacs.scroll-bar.attributeForeground:SystemScrollbar"
+ "emacs.scroll-bar.attributeForeground:SystemScrollbar\0"
/* Other possibilities for default faces:
*/
static char *
-w32_get_rdb_resource (rdb, resource)
- char *rdb;
- char *resource;
+w32_get_rdb_resource (const char *rdb, const char *resource)
{
- char *value = rdb;
+ char *value = (char *)rdb;
int len = strlen (resource);
while (*value)
return NULL;
}
-LPBYTE
-w32_get_string_resource (name, class, dwexptype)
- char *name, *class;
- DWORD dwexptype;
+static char *
+w32_get_string_resource (const char *name, const char *class, DWORD dwexptype)
{
LPBYTE lpvalue = NULL;
HKEY hrootkey = NULL;
trykey:
- BLOCK_INPUT;
+ block_input ();
/* Check both the current user and the local machine to see if we have
any resources */
if (RegOpenKeyEx (hive, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS)
{
- char *keyname;
+ const char *keyname;
if (RegQueryValueEx (hrootkey, name, NULL, &dwType, NULL, &cbData) == ERROR_SUCCESS
&& dwType == dwexptype)
}
ok = (keyname
- && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL
+ && (lpvalue = xmalloc (cbData)) != NULL
&& RegQueryValueEx (hrootkey, keyname, NULL, NULL, lpvalue, &cbData) == ERROR_SUCCESS);
RegCloseKey (hrootkey);
}
- UNBLOCK_INPUT;
+ unblock_input ();
if (!ok)
{
/* Check if there are Windows specific defaults defined. */
return w32_get_rdb_resource (SYSTEM_DEFAULT_RESOURCES, name);
}
- return (lpvalue);
+ return (char *)lpvalue;
}
/* Retrieve the string resource specified by NAME with CLASS from
database RDB. */
char *
-x_get_string_resource (rdb, name, class)
- XrmDatabase rdb;
- char *name, *class;
+x_get_string_resource (XrmDatabase rdb, const char *name, const char *class)
{
if (rdb)
{
char *resource;
- if (resource = w32_get_rdb_resource (rdb, name))
+ if ((resource = w32_get_rdb_resource (rdb, name)))
return resource;
- if (resource = w32_get_rdb_resource (rdb, class))
+ if ((resource = w32_get_rdb_resource (rdb, class)))
return resource;
}
- return (w32_get_string_resource (name, class, REG_SZ));
-}
+ if (inhibit_x_resources)
+ /* --quick was passed, so this is a no-op. */
+ return NULL;
-/* arch-tag: 755fce25-42d7-4acb-874f-2fb42336823d
- (do not change this comment) */
+ return w32_get_string_resource (name, class, REG_SZ);
+}