File 0002-Fix-build.patch of Package orc.37277

From: Antonio Larrosa <alarrosa@suse.com>

The backporting of 0001-Use-vasprintf-if-available-for-error-messages-and.patch
needs some further changes to build. I prefer to keep those changes separate
for clarity.

Index: orc-orc-0.4.28/orc/orcparse.c
===================================================================
--- orc-orc-0.4.28.orig/orc/orcparse.c
+++ orc-orc-0.4.28/orc/orcparse.c
@@ -405,7 +405,16 @@ orc_parse_log_valist (OrcParser *parser,
   int len;
   
   if (parser->error_program != parser->program) {
-    sprintf(s, "In function %s:\n", parser->program->name);
+#ifdef HAVE_VASPRINTF
+    char *s = NULL;
+    asprintf (&s, "In function %s:\n", parser->program->name);
+#elif defined(_UCRT)
+    char s[100] = { '\0' };
+    snprintf_s (s, 100, _TRUNCATE, "In function %s:\n", parser->program->name);
+#else
+    char s[100] = { '\0' };
+    snprintf (s, sizeof (s), "In function %s:\n", parser->program->name);
+#endif
     len = strlen(s);
 
     if (parser->log_size + len + 1 >= parser->log_alloc) {
@@ -416,6 +425,9 @@ orc_parse_log_valist (OrcParser *parser,
     strcpy (parser->log + parser->log_size, s);
     parser->log_size += len;
     parser->error_program = parser->program;
+#ifdef HAVE_VASPRINTF
+    free (s);
+#endif
   }
 
 #ifdef HAVE_VASPRINTF
openSUSE Build Service is sponsored by