|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T u
Length: 2328 (0x918) Types: TextFile Names: »util.c.orig«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Scrabble/util.c.orig«
/* RCS Info: $Revision: 1.1 $ on $Date: 89/03/10 10:11:10 $ * $Source: /yew3/faustus/src/scrabble/RCS/util.c,v $ * Copyright (c) 1988 Wayne A. Christopher, U. C. Berkeley CAD Group * faustus@cad.berkeley.edu, ucbvax!faustus * Permission is granted to modify and re-distribute this code in any manner * as long as this notice is preserved. All standard disclaimers apply. * */ #include "util.h" #include <pwd.h> #include <sys/types.h> #include <sys/time.h> #include <sys/resource.h> extern char *malloc(); extern char *realloc(); char * strsav(str) char *str; { char *p; p = malloc(strlen(str) + 1); if (p) strcpy(p, str); return (p); } char * strstr(str, sub) char *str, *sub; { char *s, *t; while (*str) { if (*str == *sub) { for (s = sub, t = str; *s && *t; s++, t++) if (*s != *t) break; if (!*s) return (str); } str++; } return (NULL); } char * util_datestring() { register char *tzn; struct tm *tp; static char tbuf[40]; char *ap; struct timeval tv; struct timezone tz; char *timezone(), *asctime(); int i; struct tm *localtime(); (void) gettimeofday(&tv, &tz); tp = localtime((time_t *) &tv.tv_sec); ap = asctime(tp); tzn = timezone(tz.tz_minuteswest, tp->tm_isdst); sprintf(tbuf, "%.20s", ap); if (tzn) strcat(tbuf, tzn); strcat(tbuf, ap + 19); i = strlen(tbuf); tbuf[i - 1] = '\0'; return (tbuf); } int util_seconds() { struct rusage ruse; getrusage(RUSAGE_SELF, &ruse); return (ruse.ru_utime.tv_sec); } char * util_tildexpand(s) char *s; { struct passwd *pw; char *n, buf[64]; int i; if (*s != '~') { n = malloc(strlen(s) + 1); strcpy(n, s); return (n); } for (s++, i = 0; *s != '/'; s++, i++) buf[i] = *s; buf[i] = '\0'; if (!i) pw = getpwuid(getuid()); else pw = getpwnam(buf); if (!pw) return (s); n = malloc(strlen(s) + strlen(pw->pw_dir) + 1); strcpy(n, pw->pw_dir); strcat(n, s); return (n); } char * util_malloc(num) int num; { char *s; s = malloc((unsigned) num); if (!s) { fprintf(stderr, "malloc: can't allocate %d bytes", num); exit(1); } bzero(s, num); return (s); } char * util_realloc(ptr, num) char *ptr; int num; { char *s; s = realloc(ptr, (unsigned) num); if (!s) { fprintf(stderr, "realloc: can't allocate %d bytes", num); exit(1); } return (s); }