+/* libguestfs generated file
+ * WARNING: THIS FILE IS GENERATED BY 'src/generator.ml'.
+ * ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
+ *
+ * Copyright (C) 2009 Red Hat Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef HAVE_LIBREADLINE
+#include <readline/readline.h>
+#endif
+
+#include "fish.h"
+
+#ifdef HAVE_LIBREADLINE
+
+static const char *commands[] = {
+ "add",
+ "add-cdrom",
+ "add-drive",
+ "aug-close",
+ "aug-defnode",
+ "aug-defvar",
+ "aug-get",
+ "aug-init",
+ "aug-insert",
+ "aug-load",
+ "aug-ls",
+ "aug-match",
+ "aug-mv",
+ "aug-rm",
+ "aug-save",
+ "aug-set",
+ "autosync",
+ "cat",
+ "cdrom",
+ "chmod",
+ "chown",
+ "command",
+ "command-lines",
+ "config",
+ "exists",
+ "file",
+ "get-autosync",
+ "get-path",
+ "get-verbose",
+ "is-dir",
+ "is-file",
+ "kill-subprocess",
+ "launch",
+ "list-devices",
+ "list-partitions",
+ "ll",
+ "ls",
+ "lvcreate",
+ "lvm-remove-all",
+ "lvs",
+ "lvs-full",
+ "mkdir",
+ "mkdir-p",
+ "mkfs",
+ "mount",
+ "mounts",
+ "path",
+ "pvcreate",
+ "pvs",
+ "pvs-full",
+ "read-lines",
+ "rm",
+ "rm-rf",
+ "rmdir",
+ "run",
+ "set-autosync",
+ "set-path",
+ "set-verbose",
+ "sfdisk",
+ "sync",
+ "touch",
+ "umount",
+ "umount-all",
+ "unmount",
+ "unmount-all",
+ "verbose",
+ "vgcreate",
+ "vgs",
+ "vgs-full",
+ "write-file",
+ NULL
+};
+
+static char *
+generator (const char *text, int state)
+{
+ static int index, len;
+ const char *name;
+
+ if (!state) {
+ index = 0;
+ len = strlen (text);
+ }
+
+ while ((name = commands[index]) != NULL) {
+ index++;
+ if (strncasecmp (name, text, len) == 0)
+ return strdup (name);
+ }
+
+ return NULL;
+}
+
+#endif /* HAVE_LIBREADLINE */
+
+char **do_completion (const char *text, int start, int end)
+{
+ char **matches = NULL;
+
+#ifdef HAVE_LIBREADLINE
+ if (start == 0)
+ matches = rl_completion_matches (text, generator);
+#endif
+
+ return matches;
+}