check for existance of macro R__VA_COPY and fallback implementation
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 2 Apr 2007 21:32:55 +0000 (21:32 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 2 Apr 2007 21:32:55 +0000 (21:32 +0000)
HLT/BASE/AliHLTLogging.cxx

index d2121e2a9d92030e4b0e5ede6f5dd270b67a728f..017e009b223f299bce88e28fd5ef27abc76817c7 100644 (file)
@@ -211,8 +211,10 @@ const char* AliHLTLogging::BuildLogString(const char *format, va_list ap)
   // see header file for class documentation
 
   int iResult=0;
+#ifdef R__VA_COPY
   va_list bap;
   R__VA_COPY(bap, ap);
+#endif //R__VA_COPY
 
   // take the first argument from the list as format string if no
   // format was given
@@ -229,7 +231,8 @@ const char* AliHLTLogging::BuildLogString(const char *format, va_list ap)
       break;
 
     // terminate if buffer is already at the limit
-    if (gAliHLTLoggingTarget.GetSize()>=gALIHLTLOGGING_MAXBUFFERSIZE) {
+    if (gAliHLTLoggingTarget.GetSize()>=gALIHLTLOGGING_MAXBUFFERSIZE) 
+    {
       gAliHLTLoggingTarget[gAliHLTLoggingTarget.GetSize()-1]=0;
       break;
     }
@@ -239,11 +242,18 @@ const char* AliHLTLogging::BuildLogString(const char *format, va_list ap)
     gAliHLTLoggingTarget.Set(iResult+1);
 
     // copy the original list and skip the first argument if this was the format string
+#ifdef R__VA_COPY
     va_end(ap);
     R__VA_COPY(ap, bap);
+#else
+    gAliHLTLoggingTarget[gAliHLTLoggingTarget.GetSize()-1]=0;
+    break;
+#endif //R__VA_COPY
     if (format==NULL) va_arg(ap, const char*);
   }     
+#ifdef R__VA_COPY
   va_end(bap);
+#endif //R__VA_COPY
 
   return gAliHLTLoggingTarget.GetArray();
 }