use restrict everywhere it's required by c99 and/or posix 2008
to deal with the fact that the public headers may be used with pre-c99
compilers, __restrict is used in place of restrict, and defined
appropriately for any supported compiler. we also avoid the form
[restrict] since older versions of gcc rejected it due to a bug in the
original c99 standard, and instead use the form *restrict.
diff --git a/src/process/posix_spawn.c b/src/process/posix_spawn.c
index 9f2d742..1120be0 100644
--- a/src/process/posix_spawn.c
+++ b/src/process/posix_spawn.c
@@ -8,11 +8,11 @@
extern char **environ;
-int __posix_spawnx(pid_t *res, const char *path,
+int __posix_spawnx(pid_t *restrict res, const char *restrict path,
int (*exec)(const char *, char *const *),
const posix_spawn_file_actions_t *fa,
- const posix_spawnattr_t *attr,
- char *const argv[], char *const envp[])
+ const posix_spawnattr_t *restrict attr,
+ char *const argv[restrict], char *const envp[restrict])
{
pid_t pid;
sigset_t oldmask;
@@ -89,10 +89,10 @@
return 0;
}
-int posix_spawn(pid_t *res, const char *path,
+int posix_spawn(pid_t *restrict res, const char *restrict path,
const posix_spawn_file_actions_t *fa,
- const posix_spawnattr_t *attr,
- char *const argv[], char *const envp[])
+ const posix_spawnattr_t *restrict attr,
+ char *const argv[restrict], char *const envp[restrict])
{
return __posix_spawnx(res, path, execv, fa, attr, argv, envp);
}
diff --git a/src/process/posix_spawn_file_actions_addopen.c b/src/process/posix_spawn_file_actions_addopen.c
index af3ca60..368922c 100644
--- a/src/process/posix_spawn_file_actions_addopen.c
+++ b/src/process/posix_spawn_file_actions_addopen.c
@@ -4,7 +4,7 @@
#include <errno.h>
#include "fdop.h"
-int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *fa, int fd, const char *path, int flags, mode_t mode)
+int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *restrict fa, int fd, const char *restrict path, int flags, mode_t mode)
{
struct fdop *op = malloc(sizeof *op + strlen(path) + 1);
if (!op) return ENOMEM;
diff --git a/src/process/posix_spawnattr_getflags.c b/src/process/posix_spawnattr_getflags.c
index 7353d24..aa635dd 100644
--- a/src/process/posix_spawnattr_getflags.c
+++ b/src/process/posix_spawnattr_getflags.c
@@ -1,6 +1,6 @@
#include <spawn.h>
-int posix_spawnattr_getflags(const posix_spawnattr_t *attr, short *flags)
+int posix_spawnattr_getflags(const posix_spawnattr_t *restrict attr, short *restrict flags)
{
*flags = attr->__flags;
return 0;
diff --git a/src/process/posix_spawnattr_getpgroup.c b/src/process/posix_spawnattr_getpgroup.c
index 2c72e98..0480527 100644
--- a/src/process/posix_spawnattr_getpgroup.c
+++ b/src/process/posix_spawnattr_getpgroup.c
@@ -1,6 +1,6 @@
#include <spawn.h>
-int posix_spawnattr_getpgroup(const posix_spawnattr_t *attr, pid_t *pgrp)
+int posix_spawnattr_getpgroup(const posix_spawnattr_t *restrict attr, pid_t *restrict pgrp)
{
*pgrp = attr->__pgrp;
return 0;
diff --git a/src/process/posix_spawnattr_getsigdefault.c b/src/process/posix_spawnattr_getsigdefault.c
index 5f0dfb5..a49050a 100644
--- a/src/process/posix_spawnattr_getsigdefault.c
+++ b/src/process/posix_spawnattr_getsigdefault.c
@@ -1,6 +1,6 @@
#include <spawn.h>
-int posix_spawnattr_getsigdefault(const posix_spawnattr_t *attr, sigset_t *def)
+int posix_spawnattr_getsigdefault(const posix_spawnattr_t *restrict attr, sigset_t *restrict def)
{
*def = attr->__def;
return 0;
diff --git a/src/process/posix_spawnattr_getsigmask.c b/src/process/posix_spawnattr_getsigmask.c
index b449075..f60ad7f 100644
--- a/src/process/posix_spawnattr_getsigmask.c
+++ b/src/process/posix_spawnattr_getsigmask.c
@@ -1,6 +1,6 @@
#include <spawn.h>
-int posix_spawnattr_getsigmask(const posix_spawnattr_t *attr, sigset_t *mask)
+int posix_spawnattr_getsigmask(const posix_spawnattr_t *restrict attr, sigset_t *restrict mask)
{
*mask = attr->__mask;
return 0;
diff --git a/src/process/posix_spawnattr_setsigdefault.c b/src/process/posix_spawnattr_setsigdefault.c
index a6ddd4d..5686972 100644
--- a/src/process/posix_spawnattr_setsigdefault.c
+++ b/src/process/posix_spawnattr_setsigdefault.c
@@ -1,6 +1,6 @@
#include <spawn.h>
-int posix_spawnattr_setsigdefault(posix_spawnattr_t *attr, const sigset_t *def)
+int posix_spawnattr_setsigdefault(posix_spawnattr_t *restrict attr, const sigset_t *restrict def)
{
attr->__def = *def;
return 0;
diff --git a/src/process/posix_spawnattr_setsigmask.c b/src/process/posix_spawnattr_setsigmask.c
index 6afbf87..f2532f8 100644
--- a/src/process/posix_spawnattr_setsigmask.c
+++ b/src/process/posix_spawnattr_setsigmask.c
@@ -1,6 +1,6 @@
#include <spawn.h>
-int posix_spawnattr_setsigmask(posix_spawnattr_t *attr, const sigset_t *mask)
+int posix_spawnattr_setsigmask(posix_spawnattr_t *restrict attr, const sigset_t *restrict mask)
{
attr->__mask = *mask;
return 0;
diff --git a/src/process/posix_spawnp.c b/src/process/posix_spawnp.c
index 04d768d..91355fb 100644
--- a/src/process/posix_spawnp.c
+++ b/src/process/posix_spawnp.c
@@ -1,15 +1,15 @@
#include <spawn.h>
#include <unistd.h>
-int __posix_spawnx(pid_t *, const char *,
+int __posix_spawnx(pid_t *restrict, const char *restrict,
int (*)(const char *, char *const *),
const posix_spawn_file_actions_t *,
- const posix_spawnattr_t *, char *const [], char *const []);
+ const posix_spawnattr_t *restrict, char *const *restrict, char *const *restrict);
-int posix_spawnp(pid_t *res, const char *file,
+int posix_spawnp(pid_t *restrict res, const char *restrict file,
const posix_spawn_file_actions_t *fa,
- const posix_spawnattr_t *attr,
- char *const argv[], char *const envp[])
+ const posix_spawnattr_t *restrict attr,
+ char *const argv[restrict], char *const envp[restrict])
{
return __posix_spawnx(res, file, execvp, fa, attr, argv, envp);
}