]> code.delx.au - gnu-emacs/blobdiff - src/w32reg.c
Prefer `message1' over `message'.
[gnu-emacs] / src / w32reg.c
index 2313213bcfe78f173fb18a9d77af0327e742cffd..e7c4e9ea3513abf66f03ec1302196ca61084d693 100644 (file)
@@ -1,13 +1,13 @@
 /* Emulate the X Resource Manager through the registry.
-   Copyright (C) 1990, 1993, 1994, 2001, 2002, 2003, 2004,
-                 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+   Copyright (C) 1990, 1993-1994, 2001-2013 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 3, 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
@@ -15,9 +15,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 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 */
 
@@ -27,7 +25,6 @@ Boston, MA 02110-1301, USA.  */
 #include "blockinput.h"
 
 #include <stdio.h>
-#include <string.h>
 
 #define REG_ROOT "SOFTWARE\\GNU\\Emacs"
 
@@ -59,9 +56,7 @@ Boston, MA 02110-1301, USA.  */
 */
 
 static char *
-w32_get_rdb_resource (rdb, resource)
-     char *rdb;
-     char *resource;
+w32_get_rdb_resource (char *rdb, char *resource)
 {
   char *value = rdb;
   int len = strlen (resource);
@@ -78,10 +73,8 @@ w32_get_rdb_resource (rdb, resource)
   return NULL;
 }
 
-LPBYTE
-w32_get_string_resource (name, class, dwexptype)
-     char *name, *class;
-     DWORD dwexptype;
+static LPBYTE
+w32_get_string_resource (char *name, char *class, DWORD dwexptype)
 {
   LPBYTE lpvalue = NULL;
   HKEY hrootkey = NULL;
@@ -92,7 +85,7 @@ w32_get_string_resource (name, class, dwexptype)
 
  trykey:
 
-  BLOCK_INPUT;
+  block_input ();
 
   /* Check both the current user and the local machine to see if we have
      any resources */
@@ -117,13 +110,13 @@ w32_get_string_resource (name, class, 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)
     {
@@ -148,22 +141,21 @@ w32_get_string_resource (name, class, dwexptype)
    database RDB. */
 
 char *
-x_get_string_resource (rdb, name, class)
-     XrmDatabase rdb;
-     char *name, *class;
+x_get_string_resource (XrmDatabase rdb, char *name, 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);
+}