#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
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.
int is_dir;
};
+#ifdef HAVE_LIBREADLINE
static void
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)
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);
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 = '/';