#define STRCASENEQLEN(a,b,n) (strncasecmp((a),(b),(n)) != 0)
#define STRPREFIX(a,b) (strncmp((a),(b),strlen((b))) == 0)
+#define TMP_TEMPLATE_ON_STACK(var) \
+ const char *ttos_tmpdir = guestfs_tmpdir (); \
+ char var[strlen (ttos_tmpdir) + 32]; \
+ sprintf (var, "%s/guestfishXXXXXX", ttos_tmpdir) \
+
/* in fish.c */
extern guestfs_h *g;
extern int read_only;
extern void free_file_in (char *s);
extern char *file_out (const char *arg);
extern void extended_help_message (void);
-extern char *read_key (const char *param);
/* in cmds.c (auto-generated) */
extern void list_commands (void);
extern int display_command (const char *cmd);
-extern int run_action (const char *cmd, int argc, char *argv[]);
+extern int run_action (const char *cmd, size_t argc, char *argv[]);
/* in completion.c (auto-generated) */
extern char **do_completion (const char *text, int start, int end);
extern char *complete_dest_paths_generator (const char *text, int state);
/* in alloc.c */
-extern int run_alloc (const char *cmd, int argc, char *argv[]);
-extern int run_sparse (const char *cmd, int argc, char *argv[]);
+extern int run_alloc (const char *cmd, size_t argc, char *argv[]);
+extern int run_sparse (const char *cmd, size_t argc, char *argv[]);
extern int alloc_disk (const char *filename, const char *size,
int add, int sparse);
extern int parse_size (const char *str, off_t *size_rtn);
/* in copy.c */
-extern int run_copy_in (const char *cmd, int argc, char *argv[]);
-extern int run_copy_out (const char *cmd, int argc, char *argv[]);
+extern int run_copy_in (const char *cmd, size_t argc, char *argv[]);
+extern int run_copy_out (const char *cmd, size_t argc, char *argv[]);
/* in echo.c */
-extern int run_echo (const char *cmd, int argc, char *argv[]);
+extern int run_echo (const char *cmd, size_t argc, char *argv[]);
/* in edit.c */
-extern int run_edit (const char *cmd, int argc, char *argv[]);
+extern int run_edit (const char *cmd, size_t argc, char *argv[]);
+
+/* in help.c */
+extern void display_help (void);
-/* in inspect.c */
-extern void inspect_mount (void);
-extern void print_inspect_prompt (void);
+/* in hexedit.c */
+extern int run_hexedit (const char *cmd, size_t argc, char *argv[]);
/* in lcd.c */
-extern int run_lcd (const char *cmd, int argc, char *argv[]);
+extern int run_lcd (const char *cmd, size_t argc, char *argv[]);
/* in glob.c */
-extern int run_glob (const char *cmd, int argc, char *argv[]);
+extern int run_glob (const char *cmd, size_t argc, char *argv[]);
/* in man.c */
-extern int run_man (const char *cmd, int argc, char *argv[]);
+extern int run_man (const char *cmd, size_t argc, char *argv[]);
/* in more.c */
-extern int run_more (const char *cmd, int argc, char *argv[]);
+extern int run_more (const char *cmd, size_t argc, char *argv[]);
/* in prep.c */
struct prep_data {
extern void prepare_drive (const char *filename, prep_data *data,
const char *device);
extern void prep_error (prep_data *data, const char *filename, const char *fs, ...) __attribute__((noreturn, format (printf,3,4)));
-extern void free_prep_data (prep_data *data);
+extern void free_prep_data (void *data);
/* in prep_lv.c */
extern int vg_lv_parse (const char *device, char **vg, char **lv);
/* in rc.c (remote control) */
extern void rc_listen (void) __attribute__((noreturn));
-extern int rc_remote (int pid, const char *cmd, int argc, char *argv[],
+extern int rc_remote (int pid, const char *cmd, size_t argc, char *argv[],
int exit_on_error);
/* in reopen.c */
-extern int run_reopen (const char *cmd, int argc, char *argv[]);
+extern int run_reopen (const char *cmd, size_t argc, char *argv[]);
/* in supported.c */
-extern int run_supported (const char *cmd, int argc, char *argv[]);
+extern int run_supported (const char *cmd, size_t argc, char *argv[]);
/* in time.c */
-extern int run_time (const char *cmd, int argc, char *argv[]);
+extern int run_time (const char *cmd, size_t argc, char *argv[]);
/* in tilde.c */
extern char *try_tilde_expansion (char *path);
-/* in virt.c */
-extern int add_libvirt_drives (const char *guest);
-
/* This should just list all the built-in commands so they can
* be added to the generated auto-completion code.
*/