X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=fish%2Fdestpaths.c;h=2908ba47481507d1eff31548e5d8d6a2951e9da6;hp=275db49a646f35964ef500668c7578c44399e13d;hb=ad752b80d7fa064b7bdd3d4c8d47c95d79265b58;hpb=fad78c609423fe10139b468ec229c3d6792718e2 diff --git a/fish/destpaths.c b/fish/destpaths.c index 275db49..2908ba4 100644 --- a/fish/destpaths.c +++ b/fish/destpaths.c @@ -18,8 +18,6 @@ #include -#define _GNU_SOURCE // for strndup, asprintf - #include #include #include @@ -33,6 +31,7 @@ #include "fish.h" +#ifdef HAVE_LIBREADLINE // From gnulib's xalloc.h: /* Return 1 if an array of N objects, each of size S, cannot exist due to size arithmetic overflow. S must be positive and N must be @@ -48,6 +47,7 @@ branch when S is known to be 1. */ # define xalloc_oversized(n, s) \ ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n)) +#endif /* Readline completion for paths on the guest filesystem, also for * devices and LVM names. @@ -60,6 +60,7 @@ struct word { int is_dir; }; +#ifdef HAVE_LIBREADLINE static void free_words (struct word *words, size_t nr_words) { @@ -70,6 +71,7 @@ free_words (struct word *words, size_t nr_words) free (words[i].name); free (words); } +#endif char * complete_dest_paths_generator (const char *text, int state) @@ -135,7 +137,7 @@ complete_dest_paths_generator (const char *text, int state) } while (0) /* Is it a device? */ - if (len < 5 || strncmp (text, "/dev/", 5) == 0) { + if (len < 5 || STREQLEN (text, "/dev/", 5)) { /* Get a list of everything that can possibly begin with /dev/ */ strs = guestfs_list_devices (g); APPEND_STRS_AND_FREE; @@ -168,9 +170,9 @@ complete_dest_paths_generator (const char *text, int state) for (i = 0; i < dirents->len; ++i) { int err; - if (strcmp (dirents->val[i].name, ".") != 0 && - strcmp (dirents->val[i].name, "..") != 0) { - if (strcmp (dir, "/") == 0) + if (STRNEQ (dirents->val[i].name, ".") && + STRNEQ (dirents->val[i].name, "..")) { + if (STREQ (dir, "/")) err = asprintf (&p, "/%s", dirents->val[i].name); else err = asprintf (&p, "%s/%s", dir, dirents->val[i].name); @@ -217,7 +219,7 @@ complete_dest_paths_generator (const char *text, int state) word = &words[index]; index++; - if (strncasecmp (word->name, text, len) == 0) { + if (STRCASEEQLEN (word->name, text, len)) { if (word->is_dir) rl_completion_append_character = '/';