Commit 5e073ec7 authored by Paul Eggert's avatar Paul Eggert

* frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right

here, since it parses constructs like leading '-' and spaces,
which are not wanted; and it overflows with large numbers.
Instead, simply match F[0-9]+, which is what is wanted anyway.
parent d0f4e1f5
2011-04-18 Paul Eggert <eggert@cs.ucla.edu>
* frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
here, since it parses constructs like leading '-' and spaces,
which are not wanted; and it overflows with large numbers.
Instead, simply match F[0-9]+, which is what is wanted anyway.
* alloc.c: Remove unportable assumptions about struct layout.
(SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
(SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
......
......@@ -2154,18 +2154,15 @@ store_in_alist (Lisp_Object *alistptr, Lisp_Object prop, Lisp_Object val)
static int
frame_name_fnn_p (char *str, EMACS_INT len)
{
if (len > 1 && str[0] == 'F')
if (len > 1 && str[0] == 'F' && '0' <= str[1] && str[1] <= '9')
{
char *end_ptr;
long int n;
errno = 0;
n = strtol (str + 1, &end_ptr, 10);
if (end_ptr == str + len
&& INT_MIN <= n && n <= INT_MAX
&& ((LONG_MIN < n && n < LONG_MAX) || errno != ERANGE))
char *p = str + 2;
while ('0' <= *p && *p <= '9')
p++;
if (p == str + len)
return 1;
}
return 0;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment