ref: 50673d39401ce2e58b03f11dfde9b6759655e764
dir: /util.c/
#include <u.h> #include <libc.h> #include <draw.h> #include "dat.h" #include "fns.h" int fsign(float f) { return f < 0. ? -1 : f > 0.; } float fround(float x) { if(x > 0.){ if(x - (int)x < 0.1) return (int)x; else if(x - (int)x > 0.9) return (int)x + 1; else return x; } if((int)x - x < 0.1) return (int)x; else if((int)x - x > 0.9) return (int)x - 1; return x; } vlong filelen(int fd) { vlong l; Dir *d; d = dirfstat(fd); if(d == nil) sysfatal("filelen: %r"); l = d->length; free(d); return l; } void * erealloc(void *p, ulong n, ulong oldn) { if((p = realloc(p, n)) == nil) sysfatal("realloc: %r"); setrealloctag(p, getcallerpc(&p)); if(n > oldn) memset((uchar *)p + oldn, 0, n - oldn); return p; } void * emalloc(ulong n) { void *p; if((p = mallocz(n, 1)) == nil) sysfatal("emalloc: %r"); setmalloctag(p, getcallerpc(&n)); return p; }