Introduction
Introduction Statistics Contact Development Disclaimer Help
Replace readdir_r to readdir - saait - the most boring static page generator
git clone git://git.codemadness.org/saait
Log
Files
Refs
README
LICENSE
---
commit f242e6ade5979fd153b0b2a97a252912fa91b842
parent c2c2c0934d8b2b362dddd503df382a1b5ae2afb5
Author: Jaume Devesa <[email protected]>
Date: Sun, 15 Nov 2020 12:42:36 +0100
Replace readdir_r to readdir
Function `readdir_r` seems to be deprecated in favor of `readdir`.
Replace the calls to avoid compile-time warnings.
Minor code-style changes + additional note by me:
POSIX says:
"The pointer returned by readdir() points to data which may be overwritten by
another call to readdir() on the same directory stream. This data is not
overwritten by another call to readdir() on a different directory stream."
https://pubs.opengroup.org/onlinepubs/009695399/functions/readdir_r.html
So the nested readdir() is safe here.
Diffstat:
M saait.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/saait.c b/saait.c
@@ -404,7 +404,7 @@ main(int argc, char *argv[])
struct block *b;
struct variable *c, *v;
DIR *bdir, *idir;
- struct dirent be, ie, *br, *ir;
+ struct dirent *ir, *br;
char file[PATH_MAX + 1], contentfile[PATH_MAX + 1], path[PATH_MAX + 1];
char outputfile[PATH_MAX + 1], *p, *filename;
size_t i, j, k, templateslen;
@@ -438,7 +438,7 @@ main(int argc, char *argv[])
exit(1);
}
- while (!readdir_r(bdir, &be, &br) && br) {
+ while ((br = readdir(bdir))) {
if (br->d_name[0] == '.')
continue;
@@ -466,7 +466,7 @@ main(int argc, char *argv[])
memset(t, 0, sizeof(struct template));
t->name = estrdup(br->d_name);
- while (!readdir_r(idir, &ie, &ir) && ir) {
+ while ((ir = readdir(idir))) {
if (!strncmp(ir->d_name, "header.", sizeof("header.") …
b = &(t->blocks[BlockHeader]);
else if (!strncmp(ir->d_name, "item.", sizeof("item.")…
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.