tests: Rename extratests -> tests/extra.
[libguestfs.git] / fish / destpaths.c
index 403fe7f..f3cf0f2 100644 (file)
@@ -13,7 +13,7 @@
  *
  * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #include <config.h>
@@ -155,6 +155,12 @@ complete_dest_paths_generator (const char *text, int state)
 
       strs = guestfs_lvs (g);
       APPEND_STRS_AND_FREE;
+
+      strs = guestfs_list_dm_devices (g);
+      APPEND_STRS_AND_FREE;
+
+      strs = guestfs_list_md_devices (g);
+      APPEND_STRS_AND_FREE;
     }
 
     if (len < 1 || text[0] == '/') {
@@ -230,7 +236,20 @@ complete_dest_paths_generator (const char *text, int state)
     word = &words[index];
     index++;
 
-    if (STRCASEEQLEN (word->name, text, len)) {
+    /* Whether we should match case insensitively here or not is
+     * determined by the value of the completion-ignore-case readline
+     * variable.  Default to case insensitive.  (See: RHBZ#582993).
+     */
+    char *cic_var = rl_variable_value ("completion-ignore-case");
+    int cic = 1;
+    if (cic_var && STREQ (cic_var, "off"))
+      cic = 0;
+
+    int matches =
+      cic ? STRCASEEQLEN (word->name, text, len)
+          : STREQLEN (word->name, text, len);
+
+    if (matches) {
       if (word->is_dir)
         rl_completion_append_character = '/';