summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2010-05-25 13:52:53 +0100
committerRichard Jones <rjones@redhat.com>2010-05-25 13:52:53 +0100
commit53c3b9d2b03fa5cb0ac7e86a5a51f2a18a2b91c1 (patch)
treeb6428368e400be4f1a2e60f0e04977210f19fac2
parent06d8064ff8a57eba051044efd1ea1a33c34b9df0 (diff)
downloadlibguestfs-53c3b9d2b03fa5cb0ac7e86a5a51f2a18a2b91c1.tar.gz
libguestfs-53c3b9d2b03fa5cb0ac7e86a5a51f2a18a2b91c1.tar.xz
libguestfs-53c3b9d2b03fa5cb0ac7e86a5a51f2a18a2b91c1.zip
fish: Sort returned paths so the list is stable across multiple calls.
-rw-r--r--fish/destpaths.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/fish/destpaths.c b/fish/destpaths.c
index 2908ba47..403fe7f5 100644
--- a/fish/destpaths.c
+++ b/fish/destpaths.c
@@ -71,6 +71,14 @@ free_words (struct word *words, size_t nr_words)
free (words[i].name);
free (words);
}
+
+static int
+compare_words (const void *vp1, const void *vp2)
+{
+ const struct word *w1 = (const struct word *) vp1;
+ const struct word *w2 = (const struct word *) vp2;
+ return strcmp (w1->name, w2->name);
+}
#endif
char *
@@ -212,6 +220,9 @@ complete_dest_paths_generator (const char *text, int state)
/* This inhibits ordinary (local filename) completion. */
rl_attempted_completion_over = 1;
+ /* Sort the words so the list is stable over multiple calls. */
+ qsort (words, nr_words, sizeof (struct word), compare_words);
+
/* Complete the string. */
while (index < nr_words) {
struct word *word;