diff options
| author | Paul Eggert | 2011-08-29 09:01:33 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-08-29 09:01:33 -0700 |
| commit | d749b01b0c7daff6427373b787e56d06e6f4d223 (patch) | |
| tree | 45ff74c846305c36bd7387e62fc277f1a76239c2 /src/eval.c | |
| parent | 66c6fdd52e4e5d4b9a1133bf2c57444b8a6b0048 (diff) | |
| download | emacs-d749b01b0c7daff6427373b787e56d06e6f4d223.tar.gz emacs-d749b01b0c7daff6427373b787e56d06e6f4d223.zip | |
* eval.c (verror): Simplify by rewriting in terms of evxprintf,
which has the guts of the old verror function.
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/src/eval.c b/src/eval.c index e722b53fb72..f2407cede31 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -1951,35 +1951,11 @@ verror (const char *m, va_list ap) | |||
| 1951 | char buf[4000]; | 1951 | char buf[4000]; |
| 1952 | ptrdiff_t size = sizeof buf; | 1952 | ptrdiff_t size = sizeof buf; |
| 1953 | ptrdiff_t size_max = STRING_BYTES_BOUND + 1; | 1953 | ptrdiff_t size_max = STRING_BYTES_BOUND + 1; |
| 1954 | char const *m_end = m + strlen (m); | ||
| 1955 | char *buffer = buf; | 1954 | char *buffer = buf; |
| 1956 | ptrdiff_t used; | 1955 | ptrdiff_t used; |
| 1957 | Lisp_Object string; | 1956 | Lisp_Object string; |
| 1958 | 1957 | ||
| 1959 | while (1) | 1958 | used = evxprintf (&buffer, &size, buf, size_max, m, ap); |
| 1960 | { | ||
| 1961 | va_list ap_copy; | ||
| 1962 | va_copy (ap_copy, ap); | ||
| 1963 | used = doprnt (buffer, size, m, m_end, ap_copy); | ||
| 1964 | va_end (ap_copy); | ||
| 1965 | |||
| 1966 | /* Note: the -1 below is because `doprnt' returns the number of bytes | ||
| 1967 | excluding the terminating null byte, and it always terminates with a | ||
| 1968 | null byte, even when producing a truncated message. */ | ||
| 1969 | if (used < size - 1) | ||
| 1970 | break; | ||
| 1971 | if (size <= size_max / 2) | ||
| 1972 | size *= 2; | ||
| 1973 | else if (size < size_max) | ||
| 1974 | size = size_max; | ||
| 1975 | else | ||
| 1976 | break; /* and leave the message truncated */ | ||
| 1977 | |||
| 1978 | if (buffer != buf) | ||
| 1979 | xfree (buffer); | ||
| 1980 | buffer = (char *) xmalloc (size); | ||
| 1981 | } | ||
| 1982 | |||
| 1983 | string = make_string (buffer, used); | 1959 | string = make_string (buffer, used); |
| 1984 | if (buffer != buf) | 1960 | if (buffer != buf) |
| 1985 | xfree (buffer); | 1961 | xfree (buffer); |