summaryrefslogtreecommitdiff
path: root/rc.h
diff options
context:
space:
mode:
Diffstat (limited to 'rc.h')
-rw-r--r--rc.h28
1 files changed, 20 insertions, 8 deletions
diff --git a/rc.h b/rc.h
index 6f8e97a..cf1819f 100644
--- a/rc.h
+++ b/rc.h
@@ -362,14 +362,6 @@ extern Node *parsetree;
extern int yyparse(void);
extern void initparse(void);
-/* rdwr.c */
-extern void writeall(int, char *, size_t);
-extern int rc_read(int, char *, size_t);
-
-#if READLINE
-extern char *rc_readline(char *prompt);
-#endif
-
/* redir.c */
extern void doredirs(void);
@@ -392,6 +384,26 @@ extern void statprint(pid_t, int);
extern void ssetstatus(char **);
extern char *strstatus(int s);
+
+/* system.c or system-bsd.c */
+extern void writeall(int, char *, size_t);
+
+#if HAVE_RESTARTABLE_SYSCALLS
+extern int rc_read(int, char *, size_t);
+#if READLINE
+extern char *rc_readline(char *prompt);
+#endif
+
+#else /* HAVE_RESTARTABLE_SYSCALLS */
+#define rc_read read
+#define rc_wait wait
+#if READLINE
+#define rc_readline readline
+#endif
+
+#endif /* HAVE_RESTARTABLE_SYSCALLS */
+
+
/* tree.c */
extern Node *mk(int /*nodetype*/,...);
extern Node *treecpy(Node *, void *(*)(size_t));