diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2002-09-08 15:10:04 +0000 | 
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2002-09-08 15:10:04 +0000 | 
| commit | c64685aa58806b4851d0ef282b83c8ae7e57b39d (patch) | |
| tree | 7f8ab7fdb3eef1864cefa3b73325ae857d347bb9 /lib/libmd/mdXhl.c | |
| parent | 5fd17624451a2ebf04790fcef4362b399987ca16 (diff) | |
Notes
Diffstat (limited to 'lib/libmd/mdXhl.c')
| -rw-r--r-- | lib/libmd/mdXhl.c | 106 | 
1 files changed, 55 insertions, 51 deletions
diff --git a/lib/libmd/mdXhl.c b/lib/libmd/mdXhl.c index ae968136ce93..fd2589aecd4a 100644 --- a/lib/libmd/mdXhl.c +++ b/lib/libmd/mdXhl.c @@ -1,5 +1,4 @@ -/* mdXhl.c - * ---------------------------------------------------------------------------- +/* mdXhl.c * ----------------------------------------------------------------------------   * "THE BEER-WARE LICENSE" (Revision 42):   * <phk@FreeBSD.org> wrote this file.  As long as you retain this notice you   * can do whatever you want with this stuff. If we meet some day, and you think @@ -24,71 +23,76 @@ __FBSDID("$FreeBSD$");  char *  MDXEnd(MDX_CTX *ctx, char *buf)  { -    int i; -    unsigned char digest[LENGTH]; -    static const char hex[]="0123456789abcdef"; +	int i; +	unsigned char digest[LENGTH]; +	static const char hex[]="0123456789abcdef"; -    if (!buf) -        buf = malloc(2*LENGTH + 1); -    if (!buf) -	return 0; -    MDXFinal(digest, ctx); -    for (i = 0; i < LENGTH; i++) { -	buf[i+i] = hex[digest[i] >> 4]; -	buf[i+i+1] = hex[digest[i] & 0x0f]; -    } -    buf[i+i] = '\0'; -    return buf; +	if (!buf) +		buf = malloc(2*LENGTH + 1); +	if (!buf) +		return 0; +	MDXFinal(digest, ctx); +	for (i = 0; i < LENGTH; i++) { +		buf[i+i] = hex[digest[i] >> 4]; +		buf[i+i+1] = hex[digest[i] & 0x0f]; +	} +	buf[i+i] = '\0'; +	return buf;  }  char *  MDXFile(const char *filename, char *buf)  { -    return MDXFileChunk(filename, buf, 0, 0); +	return (MDXFileChunk(filename, buf, 0, 0));  }  char *  MDXFileChunk(const char *filename, char *buf, off_t ofs, off_t len)  { -    unsigned char buffer[BUFSIZ]; -    MDX_CTX ctx; -    struct stat stbuf; -    int f, i, e; -    off_t n; +	unsigned char buffer[BUFSIZ]; +	MDX_CTX ctx; +	struct stat stbuf; +	int f, i, e; +	off_t n; -    MDXInit(&ctx); -    f = open(filename, O_RDONLY); -    if (f < 0) return 0; -    if (fstat(f, &stbuf) < 0) return 0; -    if (ofs > stbuf.st_size) -	ofs = stbuf.st_size; -    if ((len == 0) || (len > stbuf.st_size - ofs)) -	len = stbuf.st_size - ofs; -    if (lseek(f, ofs, SEEK_SET) < 0) return 0; -    n = len; -    i = 0; -    while (n > 0) { -	if (n > sizeof(buffer)) -	    i = read(f, buffer, sizeof(buffer)); -	else -	    i = read(f, buffer, n); -	if (i < 0) break; -	MDXUpdate(&ctx, buffer, i); -	n -= i; -    }  -    e = errno; -    close(f); -    errno = e; -    if (i < 0) return 0; -    return MDXEnd(&ctx, buf); +	MDXInit(&ctx); +	f = open(filename, O_RDONLY); +	if (f < 0) +		return 0; +	if (fstat(f, &stbuf) < 0) +		return 0; +	if (ofs > stbuf.st_size) +		ofs = stbuf.st_size; +	if ((len == 0) || (len > stbuf.st_size - ofs)) +		len = stbuf.st_size - ofs; +	if (lseek(f, ofs, SEEK_SET) < 0) +		return 0; +	n = len; +	i = 0; +	while (n > 0) { +		if (n > sizeof(buffer)) +			i = read(f, buffer, sizeof(buffer)); +		else +			i = read(f, buffer, n); +		if (i < 0)  +			break; +		MDXUpdate(&ctx, buffer, i); +		n -= i; +	}  +	e = errno; +	close(f); +	errno = e; +	if (i < 0) +		return 0; +	return (MDXEnd(&ctx, buf));  }  char *  MDXData (const unsigned char *data, unsigned int len, char *buf)  { -    MDX_CTX ctx; +	MDX_CTX ctx; -    MDXInit(&ctx); -    MDXUpdate(&ctx,data,len); -    return MDXEnd(&ctx, buf); +	MDXInit(&ctx); +	MDXUpdate(&ctx,data,len); +	return (MDXEnd(&ctx, buf));  }  | 
