mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
evince: Fix build with clang
Enhance the patch for printf format checking to make clang work as well Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
@@ -19,16 +19,104 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|||||||
cut-n-paste/unarr/common/unarr.c | 2 +-
|
cut-n-paste/unarr/common/unarr.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/cut-n-paste/unarr/common/unarr.c b/cut-n-paste/unarr/common/unarr.c
|
|
||||||
index 97ec92a..9e6e3ad 100644
|
|
||||||
--- a/cut-n-paste/unarr/common/unarr.c
|
--- a/cut-n-paste/unarr/common/unarr.c
|
||||||
+++ b/cut-n-paste/unarr/common/unarr.c
|
+++ b/cut-n-paste/unarr/common/unarr.c
|
||||||
@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive *ar, void *buffer, size_t count)
|
@@ -92,7 +92,7 @@ size_t ar_get_global_comment(ar_archive
|
||||||
return ar->get_comment(ar, buffer, count);
|
return ar->get_comment(ar, buffer, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
-void ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
|
-void ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
|
||||||
+void __attribute__((__format__ (__printf__, 4, 0))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
|
+void __attribute__((__format__ (__printf__, 4, 5))) ar_log(const char *prefix, const char *file, int line, const char *msg, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, msg);
|
va_start(args, msg);
|
||||||
|
--- a/cut-n-paste/synctex/synctex_parser_utils.c
|
||||||
|
+++ b/cut-n-paste/synctex/synctex_parser_utils.c
|
||||||
|
@@ -87,11 +87,11 @@ void _synctex_free(void * ptr) {
|
||||||
|
# include <syslog.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-int _synctex_error(const char * reason, ...) __attribute__((__format__ (__printf__, 1, 2)));
|
||||||
|
-int _synctex_log(int level, const char * prompt, const char * reason, va_list arg) __attribute__((__format__ (__printf__, 3, 0)));
|
||||||
|
-
|
||||||
|
-int _synctex_log(int level, const char * prompt, const char * reason,va_list arg) {
|
||||||
|
+static int _synctex_log(int level, const char * prompt, const char * reason, ...) SYNCTEX_PRINTF_FORMAT(3, 0);
|
||||||
|
+static int _synctex_log(int level, const char * prompt, const char * reason, ...) {
|
||||||
|
+ va_list arg;
|
||||||
|
int result;
|
||||||
|
+ va_start(arg, reason);
|
||||||
|
# ifdef SYNCTEX_RECENT_WINDOWS
|
||||||
|
{/* This code is contributed by William Blum.
|
||||||
|
As it does not work on some older computers,
|
||||||
|
@@ -133,10 +133,10 @@ int _synctex_log(int level, const char *
|
||||||
|
result += vfprintf(where, reason, arg);
|
||||||
|
result += fprintf(where,"\n");
|
||||||
|
# endif
|
||||||
|
+ va_end(arg);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
-__attribute__((__format__ (__printf__, 1, 0)))
|
||||||
|
int _synctex_error(const char * reason,...) {
|
||||||
|
va_list arg;
|
||||||
|
int result;
|
||||||
|
@@ -355,6 +355,7 @@ char * _synctex_merge_strings(const char
|
||||||
|
size_t len = strlen(temp);
|
||||||
|
if(UINT_MAX-len<size) {
|
||||||
|
_synctex_error("! _synctex_merge_strings: Capacity exceeded.");
|
||||||
|
+ va_end(arg);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
size+=len;
|
||||||
|
@@ -374,6 +375,7 @@ char * _synctex_merge_strings(const char
|
||||||
|
if(dest != strncpy(dest,temp,size)) {
|
||||||
|
_synctex_error("! _synctex_merge_strings: Copy problem");
|
||||||
|
free(result);
|
||||||
|
+ va_end(arg);
|
||||||
|
result = NULL;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
--- a/cut-n-paste/synctex/synctex_parser.c
|
||||||
|
+++ b/cut-n-paste/synctex/synctex_parser.c
|
||||||
|
@@ -8411,6 +8411,7 @@ struct synctex_updater_t {
|
||||||
|
int length; /* the number of chars appended */
|
||||||
|
};
|
||||||
|
|
||||||
|
+static int _synctex_updater_print(synctex_updater_p updater, const char * format, ...) SYNCTEX_PRINTF_FORMAT(2, 3);
|
||||||
|
static int _synctex_updater_print(synctex_updater_p updater, const char * format, ...) {
|
||||||
|
int result = 0;
|
||||||
|
if (updater) {
|
||||||
|
@@ -8447,6 +8448,7 @@ static int vasprintf(char **ret,
|
||||||
|
/**
|
||||||
|
* gzvprintf is not available until OSX 10.10
|
||||||
|
*/
|
||||||
|
+static int _synctex_updater_print_gz(synctex_updater_p updater, const char * format, ...) SYNCTEX_PRINTF_FORMAT(2, 3);
|
||||||
|
static int _synctex_updater_print_gz(synctex_updater_p updater, const char * format, ...) {
|
||||||
|
int result = 0;
|
||||||
|
if (updater) {
|
||||||
|
--- a/cut-n-paste/synctex/synctex_parser_utils.h
|
||||||
|
+++ b/cut-n-paste/synctex/synctex_parser_utils.h
|
||||||
|
@@ -85,7 +85,11 @@ extern "C" {
|
||||||
|
# else
|
||||||
|
# define SYNCTEX_ARE_PATH_CHARACTERS_EQUAL(left,right) (toupper(left) != toupper(right))
|
||||||
|
# endif
|
||||||
|
-
|
||||||
|
+# ifdef __GNUC__
|
||||||
|
+# define SYNCTEX_PRINTF_FORMAT(si, ftc) __attribute__ ((format (printf, si, ftc)))
|
||||||
|
+# else
|
||||||
|
+# define SYNCTEX_PRINTF_FORMAT(si, ftc)
|
||||||
|
+# endif
|
||||||
|
/* This custom malloc functions initializes to 0 the newly allocated memory.
|
||||||
|
* There is no bzero function on windows. */
|
||||||
|
void *_synctex_malloc(size_t size);
|
||||||
|
@@ -97,8 +101,8 @@ void _synctex_free(void * ptr);
|
||||||
|
/* This is used to log some informational message to the standard error stream.
|
||||||
|
* On Windows, the stderr stream is not exposed and another method is used.
|
||||||
|
* The return value is the number of characters printed. */
|
||||||
|
- int _synctex_error(const char * reason,...);
|
||||||
|
- int _synctex_debug(const char * reason,...);
|
||||||
|
+ int _synctex_error(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2);
|
||||||
|
+ int _synctex_debug(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2);
|
||||||
|
|
||||||
|
/* strip the last extension of the given string, this string is modified!
|
||||||
|
* This function depends on the OS because the path separator may differ.
|
||||||
|
|||||||
Reference in New Issue
Block a user