# HG changeset patch # User Gerd Moellmann # Date 976269574 0 # Node ID 020c1a0abaf67b5a7a8bfa1cf9e15a6e428d5fcf # Parent 385981407528d3e96de9a079966c061697bcb5ec (read1): Change the way buffers are reallocated to be portable and less obfuscated. diff -r 385981407528 -r 020c1a0abaf6 src/lread.c --- a/src/lread.c Fri Dec 08 09:59:12 2000 +0000 +++ b/src/lread.c Fri Dec 08 09:59:34 2000 +0000 @@ -1,5 +1,5 @@ /* Lisp parsing and input streams. - Copyright (C) 1985, 86, 87, 88, 89, 93, 94, 95, 97, 98, 1999 + Copyright (C) 1985, 86, 87, 88, 89, 93, 94, 95, 97, 98, 99, 2000 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2120,9 +2120,10 @@ { if (end - p < MAX_MULTIBYTE_LENGTH) { - char *new = (char *) xrealloc (read_buffer, read_buffer_size *= 2); - p += new - read_buffer; - read_buffer += new - read_buffer; + int offset = p - read_buffer; + read_buffer = (char *) xrealloc (read_buffer, + read_buffer_size *= 2); + p = read_buffer + offset; end = read_buffer + read_buffer_size; } @@ -2260,10 +2261,10 @@ { if (end - p < MAX_MULTIBYTE_LENGTH) { - char *new = (char *) xrealloc (read_buffer, - read_buffer_size *= 2); - p += new - read_buffer; - read_buffer += new - read_buffer; + int offset = p - read_buffer; + read_buffer = (char *) xrealloc (read_buffer, + read_buffer_size *= 2); + p = read_buffer + offset; end = read_buffer + read_buffer_size; } @@ -2283,10 +2284,11 @@ if (p == end) { - char *new = (char *) xrealloc (read_buffer, read_buffer_size *= 2); - p += new - read_buffer; - read_buffer += new - read_buffer; -/* end = read_buffer + read_buffer_size; */ + int offset = p - read_buffer; + read_buffer = (char *) xrealloc (read_buffer, + read_buffer_size *= 2); + p = read_buffer + offset; + end = read_buffer + read_buffer_size; } *p = 0; if (c >= 0)