aboutsummaryrefslogtreecommitdiffstats
path: root/extension/readdir.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2012-08-03 06:30:39 +0300
committerArnold D. Robbins <arnold@skeeve.com>2012-08-03 06:30:39 +0300
commit66693943a96ef1d0c0a991c3780dabc0071d6233 (patch)
tree7823fe77ce41a9607f2c256568697ee725584d46 /extension/readdir.c
parent022ad6523bf98e8c2a272a06787be6931e7f3457 (diff)
downloadegawk-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.c12
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;