X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/411c1c65313aa4e22730ba9762e073881f4e299a..1873ef3b8986193803cee2721ee738f8dee39514:/src/xrdb.c diff --git a/src/xrdb.c b/src/xrdb.c index e21206d080..b4bc11838f 100644 --- a/src/xrdb.c +++ b/src/xrdb.c @@ -1,5 +1,5 @@ /* Deal with the X Resource Manager. - Copyright (C) 1990, 1993-1994, 2000-2014 Free Software Foundation, + Copyright (C) 1990, 1993-1994, 2000-2016 Free Software Foundation, Inc. Author: Joseph Arceneaux @@ -9,8 +9,8 @@ This file is part of GNU Emacs. 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 of the License, 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 @@ -43,11 +43,6 @@ along with GNU Emacs. If not, see . */ #include #endif -#ifdef USE_MOTIF -/* For Vdouble_click_time. */ -#include "keyboard.h" -#endif - /* X file search path processing. */ @@ -119,8 +114,8 @@ magic_db (const char *string, ptrdiff_t string_len, const char *class, while (p < string + string_len) { /* The chunk we're about to stick on the end of result. */ - const char *next = NULL; - ptrdiff_t next_len; + const char *next = p; + ptrdiff_t next_len = 1; if (*p == '%') { @@ -137,10 +132,13 @@ magic_db (const char *string, ptrdiff_t string_len, const char *class, break; case 'C': - next = (x_customization_string - ? x_customization_string - : ""); - next_len = strlen (next); + if (x_customization_string) + { + next = x_customization_string; + next_len = strlen (next); + } + else + next_len = 0; break; case 'N': @@ -176,17 +174,11 @@ magic_db (const char *string, ptrdiff_t string_len, const char *class, return NULL; } } - else - next = p, next_len = 1; /* Do we have room for this component followed by a '\0'? */ if (path_size - path_len <= next_len) - { - if (min (PTRDIFF_MAX, SIZE_MAX) / 2 - 1 - path_len < next_len) - memory_full (SIZE_MAX); - path_size = (path_len + next_len + 1) * 2; - path = xrealloc (path, path_size); - } + path = xpalloc (path, &path_size, path_len - path_size + next_len + 1, + -1, sizeof *path); memcpy (path + path_len, next, next_len); path_len += next_len; @@ -385,10 +377,11 @@ get_environ_db (void) { char *home = gethomedir (); ptrdiff_t homelen = strlen (home); + Lisp_Object system_name = Fsystem_name (); ptrdiff_t filenamesize = (homelen + sizeof xdefaults - + SBYTES (Vsystem_name)); + + SBYTES (system_name)); p = filename = xrealloc (home, filenamesize); - lispstpcpy (stpcpy (filename + homelen, xdefaults), Vsystem_name); + lispstpcpy (stpcpy (filename + homelen, xdefaults), system_name); } db = XrmGetFileDatabase (p); @@ -666,7 +659,7 @@ main (int argc, char **argv) /* In a real program, you'd want to also do this: */ display->db = xdb; - while (1) + while (true) { char query_name[90]; char query_class[90];