/*
- * $Id: ad_read.c,v 1.8 2009-09-11 13:26:05 franklahm Exp $
+ * $Id: ad_read.c,v 1.9.2.1 2010-01-02 10:22:33 franklahm Exp $
*
* Copyright (c) 1990,1991 Regents of The University of Michigan.
* All Rights Reserved.
/* XXX: locks have to be checked before each stream of consecutive
* ad_reads to prevent a denial in the middle from causing
* problems. */
-ssize_t ad_read( ad, eid, off, buf, buflen)
- struct adouble *ad;
- const u_int32_t eid;
- off_t off;
- char *buf;
- const size_t buflen;
+ssize_t ad_read( struct adouble *ad, const u_int32_t eid, off_t off, char *buf, const size_t buflen)
{
ssize_t cc;
/* We're either reading the data fork (and thus the data file)
* or we're reading anything else (and thus the header file). */
if ( eid == ADEID_DFORK ) {
+ if (ad->ad_data_fork.adf_syml !=0) {
+ cc=strlen(ad->ad_data_fork.adf_syml);
+ if (buflen >=cc) memcpy(buf,ad->ad_data_fork.adf_syml,cc);
+ else cc=0;
+ }else{
cc = adf_pread(&ad->ad_data_fork, buf, buflen, off);
+ }
} else {
off_t r_off;