From 26bccfaebf452511a06c2b19414a73b041b17853 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 9 Jul 2012 09:06:19 -0700 Subject: [PATCH] Minor improvements to make_formatted_string. * alloc.c (make_formatted_string): Prefer int to ptrdiff_t where int is good enough, as vsprintf returns an int. * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF. --- src/ChangeLog | 7 +++++++ src/alloc.c | 2 +- src/lisp.h | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 4e69496fad..d5a8abe5c5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-07-09 Paul Eggert + + Minor improvements to make_formatted_string. + * alloc.c (make_formatted_string): Prefer int to ptrdiff_t + where int is good enough, as vsprintf returns an int. + * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF. + 2012-07-09 Dmitry Antipov Use make_formatted_string to avoid double length calculation. diff --git a/src/alloc.c b/src/alloc.c index 739ec40c45..a5c2e20d0c 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -2524,7 +2524,7 @@ Lisp_Object make_formatted_string (char *buf, const char *format, ...) { va_list ap; - ptrdiff_t length; + int length; va_start (ap, format); length = vsprintf (buf, format, ap); diff --git a/src/lisp.h b/src/lisp.h index 466287b798..440a37c8bf 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -2611,7 +2611,8 @@ extern Lisp_Object list5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, extern Lisp_Object allocate_misc (void); extern _Noreturn void string_overflow (void); extern Lisp_Object make_string (const char *, ptrdiff_t); -extern Lisp_Object make_formatted_string (char *, const char *, ...); +extern Lisp_Object make_formatted_string (char *, const char *, ...) + ATTRIBUTE_FORMAT_PRINTF (2, 3); extern Lisp_Object make_unibyte_string (const char *, ptrdiff_t); extern Lisp_Object make_multibyte_string (const char *, ptrdiff_t, ptrdiff_t); extern Lisp_Object make_event_array (int, Lisp_Object *); -- 2.20.1