afs assert should use afs abort
[openafs.git] / src / util / assert.c
index b144466..49834cc 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright 2000, International Business Machines Corporation and others.
  * All Rights Reserved.
- * 
+ *
  * This software has been released under the terms of the IBM Public
  * License.  For details, see the LICENSE file in the top-level source
  * directory or online at http://www.openafs.org/dl/license10.html
 #include <afsconfig.h>
 #include <afs/param.h>
 #include <stdlib.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <string.h>
 
-RCSID("$Header$");
 
 #include <stdio.h>
+#include "afsutil.h"
 
 #ifdef AFS_NT40_ENV
-void afs_NTAbort(void)
+void
+afs_NTAbort(void)
 {
-    _asm int 3h; /* always trap. */
+    DebugBreak();
 }
 #endif
 
+#define TIMESTAMP_BUFFER_SIZE 26  /* including the null */
+#define TIMESTAMP_NEWLINE_POS 24  /* offset to the newline placed by ctime */
 
-void AssertionFailed(char *file, int line)
+void
+AssertionFailed(char *file, int line)
 {
-    char tdate[26];
+    char tdate[TIMESTAMP_BUFFER_SIZE];
     time_t when;
 
     time(&when);
-    strcpy(tdate, ctime(&when));
-    tdate[24] = '0';
-    fprintf(stderr, "%s: Assertion failed! file %s, line %d.\n",
-       tdate, file, line);
+    (void)afs_ctime(&when, tdate, sizeof(tdate));
+    tdate[TIMESTAMP_NEWLINE_POS] = ' ';
+    fprintf(stderr, "%sAssertion failed! file %s, line %d.\n", tdate, file,
+           line);
     fflush(stderr);
-#ifdef AFS_NT40_ENV
-    afs_NTAbort();
-#else
-    abort();
-#endif
+    afs_abort();
 }
-