Index: /trunk/psLib/src/sys/psError.c
===================================================================
--- /trunk/psLib/src/sys/psError.c	(revision 8802)
+++ /trunk/psLib/src/sys/psError.c	(revision 8803)
@@ -11,6 +11,6 @@
  *  @author Eric Van Alst, MHPCC
  *
- *  @version $Revision: 1.37 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-09-12 21:25:59 $
+ *  @version $Revision: 1.38 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-09-12 21:42:05 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -127,29 +127,28 @@
 {
     char errMsg[MAX_STRING_LENGTH];
-    psErr* err;
     char msgName[MAX_STRING_LENGTH];
 
-    // XXX a VLA should be used here instead of a fixed size buffer
-    snprintf(msgName, MAX_STRING_LENGTH, "%s (%s:%d)", func, filename, lineno);
-
+    // if this the origin of a new error reset the error stack
     if (new) {
         psErrorClear();
     }
 
-    //XXX this could go away if we had a p_psTraceV() that accept file,
-    //lieno, etc.  Get the variable list parameters to pass to logging function
-    va_list argPtr;             // variable list arguement pointer
-    va_start(argPtr, format);
-    vsnprintf(errMsg, MAX_STRING_LENGTH, format, argPtr);
-    va_end(argPtr);
-
-    // Remove a single trailing \n from message -- it interferes with psErrorStackPrint
-    int len = strlen(errMsg);
+    snprintf(msgName, MAX_STRING_LENGTH, "%s (%s:%d)", func, filename, lineno);
+
+    va_list ap;
+    va_start(ap, format);
+
+    vsnprintf(errMsg, MAX_STRING_LENGTH, format, ap);
+
+    va_end(ap);
+
+    // Remove a single trailing \n from message -- it interferes with
+    // psErrorStackPrint
+    size_t len = strlen(errMsg);
     if (len > 0 && errMsg[len - 1] == '\n') {
         errMsg[len - 1] = '\0';
-        len--;
-    }
-
-    err = psErrAlloc(msgName,code,errMsg);
+    }
+
+    psErr *err = psErrAlloc(msgName, code, errMsg);
     psErrorStackPush(err);
 
@@ -161,5 +160,4 @@
     #endif
 
-
     psFree(err);
 
@@ -170,5 +168,5 @@
                  int lineno,
                  const char* func,
-                 const char* fmt,
+                 const char* format,
                  ...)
 {
@@ -177,13 +175,10 @@
     snprintf(msgName, MAX_STRING_LENGTH, "%s (%s:%d)", func, file, lineno);
 
-    va_list argPtr;             // variable list argument pointer
-
-    // Get the variable list parameters to pass to logging function
-    va_start(argPtr, fmt);
-
-    psLogMsgV(msgName, PS_LOG_WARN, fmt, argPtr);
-
-    // Clean up stack after variable argument has been used
-    va_end(argPtr);
+    va_list ap;
+    va_start(ap, format);
+
+    psLogMsgV(msgName, PS_LOG_WARN, format, ap);
+
+    va_end(ap);
 
     return;
@@ -204,5 +199,5 @@
         if (which < 0 || which >= psArrayLength(errorStack)) {
             // no error at the given location
-            result = psErrAlloc("",PS_ERR_NONE,"");
+            result = psErrAlloc("", PS_ERR_NONE, "");
         } else {
             // a new reference passed back
@@ -252,12 +247,11 @@
 void psErrorStackPrint(FILE *fd, const char *format, ...)
 {
-    va_list argPtr;             // variable list arguement pointer
-
-    // Get the variable list parameters to pass to logging function
-    va_start(argPtr, format);
-
-    psErrorStackPrintV(fd,format,argPtr);
-
-    va_end(argPtr);
+    va_list ap;             // variable list arguement pointer
+
+    va_start(ap, format);
+
+    psErrorStackPrintV(fd, format, ap);
+
+    va_end(ap);
 }
 
