13e12c5d1SDavid du Colombier #include <stdlib.h> 23e12c5d1SDavid du Colombier #include <unistd.h> 33e12c5d1SDavid du Colombier #include <assert.h> 43e12c5d1SDavid du Colombier 5*219b2ee8SDavid du Colombier void 63e12c5d1SDavid du Colombier _assert(char *f, unsigned line) 73e12c5d1SDavid du Colombier { 83e12c5d1SDavid du Colombier char buf[20], *p, *s = &buf[20]; 93e12c5d1SDavid du Colombier write(2, "assertion failed: file ", 23); 103e12c5d1SDavid du Colombier for(p = f; *p; p++) continue; 113e12c5d1SDavid du Colombier write(2, f, p-f); 123e12c5d1SDavid du Colombier write(2, ", line ", 7); 133e12c5d1SDavid du Colombier *--s = '\n'; 143e12c5d1SDavid du Colombier do *--s = line%10 + '0'; while (line /= 10); 153e12c5d1SDavid du Colombier write(2, s, &buf[20] - s); 163e12c5d1SDavid du Colombier abort(); 173e12c5d1SDavid du Colombier 183e12c5d1SDavid du Colombier } 19