summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-09-04 16:58:01 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-09-04 16:58:01 -0700
commit1c262cae409ec55a234c89b3b74a13a77c7f595a (patch)
tree2780610d6227a3b1f64aa9398f21501ce3de774e /src/eval.c
parent7f59d9c856de33b97bc3f2708dcc8dadf24ee040 (diff)
parent052bd38a56ad14a7f311677051e778de6c4bdc1c (diff)
downloademacs-1c262cae409ec55a234c89b3b74a13a77c7f595a.tar.gz
emacs-1c262cae409ec55a234c89b3b74a13a77c7f595a.tar.bz2
emacs-1c262cae409ec55a234c89b3b74a13a77c7f595a.zip
Merge from trunk.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c26
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)
char buf[4000];
ptrdiff_t size = sizeof buf;
ptrdiff_t size_max = STRING_BYTES_BOUND + 1;
- char const *m_end = m + strlen (m);
char *buffer = buf;
ptrdiff_t used;
Lisp_Object string;
- while (1)
- {
- va_list ap_copy;
- va_copy (ap_copy, ap);
- used = doprnt (buffer, size, m, m_end, ap_copy);
- va_end (ap_copy);
-
- /* Note: the -1 below is because `doprnt' returns the number of bytes
- excluding the terminating null byte, and it always terminates with a
- null byte, even when producing a truncated message. */
- if (used < size - 1)
- break;
- if (size <= size_max / 2)
- size *= 2;
- else if (size < size_max)
- size = size_max;
- else
- break; /* and leave the message truncated */
-
- if (buffer != buf)
- xfree (buffer);
- buffer = (char *) xmalloc (size);
- }
-
+ used = evxprintf (&buffer, &size, buf, size_max, m, ap);
string = make_string (buffer, used);
if (buffer != buf)
xfree (buffer);