+extern int run_action (const char *cmd, int argc, char *argv[]);
+
+/* in completion.c (auto-generated) */
+extern char **do_completion (const char *text, int start, int end);
+
+/* in destpaths.c */
+extern int complete_dest_paths;
+extern char *complete_dest_paths_generator (const char *text, int state);
+
+/* in alloc.c */
+extern int do_alloc (const char *cmd, int argc, char *argv[]);
+
+/* in echo.c */
+extern int do_echo (const char *cmd, int argc, char *argv[]);
+
+/* in edit.c */
+extern int do_edit (const char *cmd, int argc, char *argv[]);
+
+/* in lcd.c */
+extern int do_lcd (const char *cmd, int argc, char *argv[]);
+
+/* in glob.c */
+extern int do_glob (const char *cmd, int argc, char *argv[]);
+
+/* in more.c */
+extern int do_more (const char *cmd, int argc, char *argv[]);
+
+/* in rc.c (remote control) */
+extern void rc_listen (void);
+extern int rc_remote (int pid, const char *cmd, int argc, char *argv[],
+ int exit_on_error);
+
+/* in reopen.c */
+extern int do_reopen (const char *cmd, int argc, char *argv[]);
+
+/* in time.c */
+extern int do_time (const char *cmd, int argc, char *argv[]);
+
+/* in tilde.c */
+extern char *try_tilde_expansion (char *path);
+
+/* This should just list all the built-in commands so they can
+ * be added to the generated auto-completion code.
+ */
+#define BUILTIN_COMMANDS_FOR_COMPLETION \
+ "help", \
+ "quit", "exit", "q", \
+ "alloc", "allocate", \
+ "echo", \
+ "edit", "vi", "emacs", \
+ "lcd", \
+ "glob", \
+ "more", "less", \
+ "reopen", \
+ "time"