#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;
/* 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 hexedit.c */
-extern int run_hexedit (const char *cmd, int argc, char *argv[]);
+extern int run_hexedit (const char *cmd, size_t argc, char *argv[]);
/* in inspect.c */
extern void inspect_mount (void);
extern void print_inspect_prompt (void);
/* 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 {
/* 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);