diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2012-08-03 06:30:39 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2012-08-03 06:30:39 +0300 |
commit | 66693943a96ef1d0c0a991c3780dabc0071d6233 (patch) | |
tree | 7823fe77ce41a9607f2c256568697ee725584d46 /extension/readdir.c | |
parent | 022ad6523bf98e8c2a272a06787be6931e7f3457 (diff) | |
download | egawk-66693943a96ef1d0c0a991c3780dabc0071d6233.tar.gz egawk-66693943a96ef1d0c0a991c3780dabc0071d6233.tar.bz2 egawk-66693943a96ef1d0c0a991c3780dabc0071d6233.zip |
Fix readdir.c for cygwin.
Diffstat (limited to 'extension/readdir.c')
-rw-r--r-- | extension/readdir.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/extension/readdir.c b/extension/readdir.c index bba07ef4..2c25a95b 100644 --- a/extension/readdir.c +++ b/extension/readdir.c @@ -125,7 +125,7 @@ dir_get_record(char **out, struct iobuf_public *iobuf, int *errcode, { DIR *dp; struct dirent *dirent; - size_t len; + int len; open_directory_t *the_dir; /* @@ -148,15 +148,13 @@ dir_get_record(char **out, struct iobuf_public *iobuf, int *errcode, return EOF; } + len = sprintf(the_dir->buf, "%llu/%s", + (unsigned long long) dirent->d_ino, + dirent->d_name); if (do_ftype) - sprintf(the_dir->buf, "%ld/%s/%s", - dirent->d_ino, dirent->d_name, ftype(dirent)); - else - sprintf(the_dir->buf, "%ld/%s", - dirent->d_ino, dirent->d_name); + len += sprintf(the_dir->buf + len, "/%s", ftype(dirent)); *out = the_dir->buf; - len = strlen(the_dir->buf); *rt_len = 0; /* set RT to "" */ return len; |