diff options
author | David Paleino <dapal@debian.org> | 2012-06-17 20:09:53 +0200 |
---|---|---|
committer | David Paleino <dapal@debian.org> | 2012-06-17 20:09:53 +0200 |
commit | 30649a02707d24744853f84946f744fdcf7c2757 (patch) | |
tree | 97d1a69318079910c4bdc1bbed8a2ba2f58aea7f | |
parent | c3d398fcc6e400be546c28eb1fc25abfa5816eac (diff) | |
download | bash-completion-30649a02707d24744853f84946f744fdcf7c2757.tar.gz |
Imported Upstream version 2.0upstream/2.0
66 files changed, 1266 insertions, 349 deletions
@@ -1,3 +1,78 @@ +bash-completion (2.0) + + [ Anthony Ramine ] + * Properly declare 'symlinks' dependencies + + [ David Paleino ] + * apt-get: add 'changelog' to completed commands + + [ Guillaume Rousse ] + * Add xz compression extension for kernel modules + + [ Igor Murzov ] + * sudo: Handle options (Alioth: #311414). + * sudoedit: New completion. + * _command_offset: Properly quote arguments of eval (Alioth: + #313499). + * mount.linux: Add some new mount options intoduced in Linux 3.0-3.2 + * _modules: Ignore error messages. + * modprobe, modinfo, insmod: Move modprobe and modinfo completions + to their own files. + * sbopkg: Use _parse_help. + * sbopkg, slackpkg, slapt-{get,src}: Use shorter form of the check + if file exists. + * _filedir: Properly quote paths to avoid unexpected expansion. + * su: Add linux-specific completion + * insmod, modprobe: Don't hardcode path to modinfo (Alioth: #313569) + * man: --path option is supported on Darwin (Alioth: #313584) + * man: Move variable declaration to the right place. + * feh: Update option argument completions. + * fbi, feh: Complete more supported file formats. + * fbgs: Add new options introduced in fbida-2.09. + * cppcheck: Complete new --relative-paths option arguments + * _expand: Suppress unwanted bash error messages (Alioth: #313497) + + [ Itaï BEN YAACOV ] + * scp: Recognise symlinks to directories as directories (Debian: + #666055). + + [ Jonathan Nieder ] + * ri: Rename ri_get_methods helper to add leading underscore + + [ Ville Skyttä ] + * rmmod: Add option completions. + * testsuite/generate: Generate less linefeeds. + * insmod: Install for insmod.static too. + * mplayer: Add -monitoraspect arg completion. + * mplayer: Add generic handling of options that take arguments. + * testsuite: Fix spurious modinfo and modprobe test failures on + systems that have /lib and /lib64 dirs. + * pigz: Add -p/--processes arg completion. + * testsuite: Add basic su test case. + * su: Fix long option handling. + * su: Add --session-command arg completion. + * su: Complete -s/--shell with shells instead of all files. + * lyx: Remove simple completion, upstream has more complete one + (Debian: #662203) + * testsuite/generate: Tweak linefeeds. + * make: Add generic variable completion. + * man: Recognize 3gl as man page filename extension -- at least Mesa + uses it. + * _realcommand: Try greadlink before readlink (Alioth: #313659). + * Comment spelling fix. + * qiv: Add *.svg. + * xmllint: Add *.svgz. + * autotools: Use MKDIR_P instead of mkdir_p (Alioth: #313671). + * lbzip2: Add -n argument completion. + * *_tilde*: Escape tilde in [[ $1 == \~* ]] tests (RedHat: #817902). + * New completions: + - acpi, hwclock, pwd, ssh-add, vmstat + + [ Sung Pae ] + * Workaround bash bug that fails to complete <, > + + -- David Paleino <d.paleino@gmail.com> Sun, 17 Jun 2012 20:01:36 +0200 + bash-completion (1.99) * Hopefully the last 2.0 preview. @@ -373,7 +448,7 @@ bash-completion (1.2) * Speed up installed rpm package completion on SUSE, based on work by Marco Poletti (Alioth: #312021). * Improve sourcing snippets from completion dirs. - * Drop support for bash < 3. The compatiblity global variables $bashN, + * Drop support for bash < 3. The compatibility global variables $bashN, $default, $dirnames, $filenames, $compopt, $nospace, $bashdefault, and $plusdirs have been dropped too. 3rd party completions should switch to using the complete/compgen features directly, and BASH_VERSINFO diff --git a/Makefile.in b/Makefile.in index 96b70a94..297e66b7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +16,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -54,6 +71,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -75,6 +97,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(compatdir)" "$(DESTDIR)$(pkgconfigdir)" \ "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(profiledir)" DATA = $(compat_DATA) $(pkgconfig_DATA) $(pkgdata_DATA) \ @@ -91,9 +119,11 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -122,6 +152,8 @@ am__relativize = \ GZIP_ENV = --best DIST_ARCHIVES = $(distdir).tar.bz2 distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -213,7 +245,7 @@ EXTRA_DIST = CHANGES $(sysconf_DATA) $(pkgdata_DATA) bash_completion.sh.in \ all: all-recursive .SUFFIXES: -am--refresh: +am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ @@ -251,8 +283,11 @@ bash-completion.pc: $(top_builddir)/config.status $(srcdir)/bash-completion.pc.i cd $(top_builddir) && $(SHELL) ./config.status $@ install-compatDATA: $(compat_DATA) @$(NORMAL_INSTALL) - test -z "$(compatdir)" || $(MKDIR_P) "$(DESTDIR)$(compatdir)" @list='$(compat_DATA)'; test -n "$(compatdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(compatdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(compatdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -266,13 +301,14 @@ uninstall-compatDATA: @$(NORMAL_UNINSTALL) @list='$(compat_DATA)'; test -n "$(compatdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(compatdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(compatdir)" && rm -f $$files + dir='$(DESTDIR)$(compatdir)'; $(am__uninstall_files_from_dir) install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) - test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -286,13 +322,14 @@ uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) - test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -306,13 +343,14 @@ uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files + dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir) install-profileDATA: $(profile_DATA) @$(NORMAL_INSTALL) - test -z "$(profiledir)" || $(MKDIR_P) "$(DESTDIR)$(profiledir)" @list='$(profile_DATA)'; test -n "$(profiledir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(profiledir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(profiledir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -326,9 +364,7 @@ uninstall-profileDATA: @$(NORMAL_UNINSTALL) @list='$(profile_DATA)'; test -n "$(profiledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(profiledir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(profiledir)" && rm -f $$files + dir='$(DESTDIR)$(profiledir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -499,13 +535,10 @@ distdir: $(DISTFILES) done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -536,7 +569,11 @@ dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir @@ -544,7 +581,7 @@ dist-lzma: distdir $(am__remove_distdir) dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir @@ -561,7 +598,7 @@ dist-zip: distdir $(am__remove_distdir) dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then @@ -575,6 +612,8 @@ distcheck: dist bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -594,6 +633,7 @@ distcheck: dist && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ @@ -622,8 +662,16 @@ distcheck: dist list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ @@ -657,10 +705,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -751,21 +804,21 @@ uninstall-am: uninstall-compatDATA uninstall-pkgconfigDATA \ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ - dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ - distclean distclean-generic distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-compatDATA install-data \ - install-data-am install-data-hook install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-pkgdataDATA \ - install-profileDATA install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-compatDATA \ - uninstall-pkgconfigDATA uninstall-pkgdataDATA \ - uninstall-profileDATA + dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-generic distclean-tags \ + distcleancheck distdir distuninstallcheck dvi dvi-am html \ + html-am info info-am install install-am install-compatDATA \ + install-data install-data-am install-data-hook install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgconfigDATA \ + install-pkgdataDATA install-profileDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ + uninstall-compatDATA uninstall-pkgconfigDATA \ + uninstall-pkgdataDATA uninstall-profileDATA bash_completion.sh: bash_completion.sh.in Makefile @@ -1,7 +1,8 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- +# generated automatically by aclocal 1.11.5 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, +# Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,18 +14,21 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, -[m4_warning([this file was generated for autoconf 2.68. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been @@ -34,7 +38,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], +m4_if([$1], [1.11.5], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -50,19 +54,21 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl +[AM_AUTOMAKE_VERSION([1.11.5])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. @@ -247,12 +253,15 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -332,12 +341,15 @@ else fi ]) -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. @@ -360,13 +372,14 @@ esac # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 +# serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -374,13 +387,13 @@ AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) -# ------------------------------ +# -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- +# ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) @@ -456,12 +469,14 @@ Check your system clock]) fi AC_MSG_RESULT(yes)]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't @@ -484,13 +499,13 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 +# serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- @@ -499,13 +514,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])]) AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- +# -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -527,10 +542,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) diff --git a/bash_completion b/bash_completion index 374e20c3..d6ae8ae4 100644 --- a/bash_completion +++ b/bash_completion @@ -59,7 +59,7 @@ complete -d pushd # start of section containing compspecs that can be handled within bash # user commands see only users -complete -u su write chfn groups slay w sux runuser +complete -u write chfn groups slay w sux runuser # bg completes with stopped jobs complete -A stopped -P '"%' -S '"' bg @@ -562,33 +562,32 @@ _filedir() _tilde "$cur" || return 0 local -a toks - local quoted tmp + local quoted x tmp _quote_readline_by_ref "$cur" quoted - toks=( $( - compgen -d -- "$quoted" | { - while read -r tmp; do - # TODO: I have removed a "[ -n $tmp ] &&" before 'printf ..', - # and everything works again. If this bug suddenly - # appears again (i.e. "cd /b<TAB>" becomes "cd /"), - # remember to check for other similar conditionals (here - # and _filedir_xspec()). --David - printf '%s\n' $tmp - done - } - )) + x=$( compgen -d -- "$quoted" ) && + while read -r tmp; do + toks+=( "$tmp" ) + done <<< "$x" if [[ "$1" != -d ]]; then # Munge xspec to contain uppercase version too # http://thread.gmane.org/gmane.comp.shells.bash.bugs/15294/focus=15306 xspec=${1:+"!*.@($1|${1^^})"} - toks+=( $( compgen -f -X "$xspec" -- $quoted ) ) + x=$( compgen -f -X "$xspec" -- $quoted ) && + while read -r tmp; do + toks+=( "$tmp" ) + done <<< "$x" fi # If the filter failed to produce anything, try without it if configured to [[ -n ${COMP_FILEDIR_FALLBACK:-} && \ -n "$1" && "$1" != -d && ${#toks[@]} -lt 1 ]] && \ - toks+=( $( compgen -f -- $quoted ) ) + x=$( compgen -f -- $quoted ) && + while read -r tmp; do + toks+=( "$tmp" ) + done <<< "$x" + if [[ ${#toks[@]} -ne 0 ]]; then # 2>/dev/null for direct invocation, e.g. in the _filedir unit test @@ -921,7 +920,7 @@ _ncpus() _tilde() { local result=0 - if [[ $1 == ~* && $1 != */* ]]; then + if [[ $1 == \~* && $1 != */* ]]; then # Try generate ~username completions COMPREPLY=( $( compgen -P '~' -u "${1#\~}" ) ) result=${#COMPREPLY[@]} @@ -957,7 +956,7 @@ _tilde() __expand_tilde_by_ref() { # Does $1 start with tilde (~)? - if [[ ${!1} == ~* ]]; then + if [[ ${!1} == \~* ]]; then # Does $1 contain slash (/)? if [[ ${!1} == */* ]]; then # Yes, $1 contains slash; @@ -987,7 +986,7 @@ _expand() # a tilde is fed to commands and ending up quoted instead of expanded. if [[ "$cur" == \~*/* ]]; then - eval cur=$cur + eval cur=$cur 2>/dev/null elif [[ "$cur" == \~* ]]; then cur=${cur#\~} COMPREPLY=( $( compgen -P '~' -u "$cur" ) ) @@ -1144,8 +1143,8 @@ _modules() { local modpath modpath=/lib/modules/$1 - COMPREPLY=( $( compgen -W "$( command ls -RL $modpath | \ - sed -ne 's/^\(.*\)\.k\{0,1\}o\(\.gz\)\{0,1\}$/\1/p' )" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$( command ls -RL $modpath 2>/dev/null | \ + sed -ne 's/^\(.*\)\.k\{0,1\}o\(\.[gx]z\)\{0,1\}$/\1/p' )" -- "$cur" ) ) } # This function completes on installed modules @@ -1275,6 +1274,8 @@ _realcommand() type -P "$1" > /dev/null && { if type -p realpath > /dev/null; then realpath "$(type -P "$1")" + elif type -p greadlink > /dev/null; then + greadlink -f "$(type -P "$1")" elif type -p readlink > /dev/null; then readlink -f "$(type -P "$1")" else @@ -1283,7 +1284,7 @@ _realcommand() } } -# This function returns the first arugment, excluding options +# This function returns the first argument, excluding options # @param $1 chars Characters out of $COMP_WORDBREAKS which should # NOT be considered word breaks. See __reassemble_comp_words_by_ref. _get_first_arg() @@ -1712,7 +1713,7 @@ _command_offset() else cspec=${cspec#complete} cspec=${cspec%%$compcmd} - COMPREPLY=( $( eval compgen "$cspec" -- "$cur" ) ) + COMPREPLY=( $( eval compgen "$cspec" -- '$cur' ) ) fi elif [[ ${#COMPREPLY[@]} -eq 0 ]]; then # XXX will probably never happen as long as completion loader loads @@ -1730,7 +1731,7 @@ _root_command() local root_command=$1 _command } -complete -F _root_command fakeroot gksu gksudo kdesudo really sudo +complete -F _root_command fakeroot gksu gksudo kdesudo really # Return true if the completion should be treated as running as root _complete_as_root() @@ -1806,7 +1807,6 @@ _filedir_xspec() toks=( $( compgen -d -- "$(quote_readline "$cur")" | { while read -r tmp; do - # see long TODO comment in _filedir() --David printf '%s\n' $tmp done } @@ -1857,7 +1857,7 @@ _install_xspec '!*.@(tlz|lzma)' lzcat lzegrep lzfgrep lzgrep lzless lzmore unlzm _install_xspec '!*.@(?(t)xz|tlz|lzma)' unxz xzcat _install_xspec '!*.lrz' lrunzip _install_xspec '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)' ee -_install_xspec '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm)' qiv +_install_xspec '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|svg)' qiv _install_xspec '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|?(e)ps)' xv _install_xspec '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview _install_xspec '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi kdvi @@ -1898,7 +1898,6 @@ _install_xspec '!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])' harbour gharbour hbpp _install_xspec '!*.[Hh][Rr][Bb]' hbrun _install_xspec '!*.ly' lilypond ly2dvi _install_xspec '!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))' cdiff -_install_xspec '!*.lyx' lyx _install_xspec '!@(*.@(ks|jks|jceks|p12|pfx|bks|ubr|gkr|cer|crt|cert|p7b|pkipath|pem|p10|csr|crl)|cacerts)' portecle _install_xspec '!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)' kid3 kid3-qt unset -f _install_xspec @@ -1911,6 +1910,10 @@ _minimal() $split && return _filedir } +# Complete the empty string to allow completion of '>', '>>', and '<' +# http://lists.gnu.org/archive/html/bug-bash/2012-01/msg00045.html +complete -F _minimal '' + # set up dynamic completion loading _completion_loader() diff --git a/completions/Makefile.am b/completions/Makefile.am index ba3cfb03..0a24d0cd 100644 --- a/completions/Makefile.am +++ b/completions/Makefile.am @@ -2,6 +2,7 @@ bashcompdir = $(pkgdatadir)/completions bashcomp_DATA = a2x \ abook \ aclocal \ + acpi \ add_members \ alias \ ant \ @@ -118,6 +119,7 @@ bashcomp_DATA = a2x \ hping2 \ htop \ htpasswd \ + hwclock \ iconv \ id \ idn \ @@ -193,6 +195,8 @@ bashcomp_DATA = a2x \ mkinitrd \ mktemp \ mmsitepass \ + modinfo \ + modprobe \ monodevelop \ mount \ mount.linux \ @@ -243,6 +247,7 @@ bashcomp_DATA = a2x \ psql \ puppet \ pwck \ + pwd \ pwdx \ pwgen \ python \ @@ -284,11 +289,14 @@ bashcomp_DATA = a2x \ snownews \ sqlite3 \ ssh \ + ssh-add \ ssh-copy-id \ sshfs \ sshmitm \ sshow \ strace \ + su \ + sudo \ svk \ sync_members \ sysbench \ @@ -315,6 +323,7 @@ bashcomp_DATA = a2x \ usermod \ valgrind \ vipw \ + vmstat \ vncviewer \ vpnc \ watch \ @@ -402,6 +411,7 @@ CLEANFILES = \ ifdown \ ifstatus \ import \ + insmod.static \ javac \ javadoc \ kplayer \ @@ -430,8 +440,6 @@ CLEANFILES = \ mdecrypt \ mencoder \ mkisofs \ - modinfo \ - modprobe \ mogrify \ montage \ mplayer2 \ @@ -498,6 +506,7 @@ CLEANFILES = \ sparc-koji \ spovray \ stream \ + sudoedit \ tightvncviewer \ tracepath6 \ typeset \ @@ -524,7 +533,7 @@ CLEANFILES = \ xvnc4viewer \ ypcat -symlinks: +symlinks: $(targetdir) for file in aclocal-1.11 ; do \ rm -f $(targetdir)/$$file && \ $(LN_S) aclocal $(targetdir)/$$file ; \ @@ -635,7 +644,7 @@ symlinks: rm -f $(targetdir)/$$file && \ $(LN_S) info $(targetdir)/$$file ; \ done - for file in modprobe modinfo ; do \ + for file in insmod.static ; do \ rm -f $(targetdir)/$$file && \ $(LN_S) insmod $(targetdir)/$$file ; \ done @@ -770,6 +779,10 @@ symlinks: rm -f $(targetdir)/$$file && \ $(LN_S) ssh $(targetdir)/$$file ; \ done + for file in sudoedit ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) sudo $(targetdir)/$$file ; \ + done for file in tracepath6 ; do \ rm -f $(targetdir)/$$file && \ $(LN_S) tracepath $(targetdir)/$$file ; \ diff --git a/completions/Makefile.in b/completions/Makefile.in index b7e1bd1f..8c8824e4 100644 --- a/completions/Makefile.in +++ b/completions/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +16,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -43,6 +60,11 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -64,6 +86,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(bashcompdir)" DATA = $(bashcomp_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -145,6 +173,7 @@ bashcompdir = $(pkgdatadir)/completions bashcomp_DATA = a2x \ abook \ aclocal \ + acpi \ add_members \ alias \ ant \ @@ -261,6 +290,7 @@ bashcomp_DATA = a2x \ hping2 \ htop \ htpasswd \ + hwclock \ iconv \ id \ idn \ @@ -336,6 +366,8 @@ bashcomp_DATA = a2x \ mkinitrd \ mktemp \ mmsitepass \ + modinfo \ + modprobe \ monodevelop \ mount \ mount.linux \ @@ -386,6 +418,7 @@ bashcomp_DATA = a2x \ psql \ puppet \ pwck \ + pwd \ pwdx \ pwgen \ python \ @@ -427,11 +460,14 @@ bashcomp_DATA = a2x \ snownews \ sqlite3 \ ssh \ + ssh-add \ ssh-copy-id \ sshfs \ sshmitm \ sshow \ strace \ + su \ + sudo \ svk \ sync_members \ sysbench \ @@ -458,6 +494,7 @@ bashcomp_DATA = a2x \ usermod \ valgrind \ vipw \ + vmstat \ vncviewer \ vpnc \ watch \ @@ -545,6 +582,7 @@ CLEANFILES = \ ifdown \ ifstatus \ import \ + insmod.static \ javac \ javadoc \ kplayer \ @@ -573,8 +611,6 @@ CLEANFILES = \ mdecrypt \ mencoder \ mkisofs \ - modinfo \ - modprobe \ mogrify \ montage \ mplayer2 \ @@ -641,6 +677,7 @@ CLEANFILES = \ sparc-koji \ spovray \ stream \ + sudoedit \ tightvncviewer \ tracepath6 \ typeset \ @@ -702,8 +739,11 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-bashcompDATA: $(bashcomp_DATA) @$(NORMAL_INSTALL) - test -z "$(bashcompdir)" || $(MKDIR_P) "$(DESTDIR)$(bashcompdir)" @list='$(bashcomp_DATA)'; test -n "$(bashcompdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bashcompdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bashcompdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -717,9 +757,7 @@ uninstall-bashcompDATA: @$(NORMAL_UNINSTALL) @list='$(bashcomp_DATA)'; test -n "$(bashcompdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bashcompdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bashcompdir)" && rm -f $$files + dir='$(DESTDIR)$(bashcompdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: @@ -774,10 +812,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -871,7 +914,7 @@ uninstall-am: uninstall-bashcompDATA uninstall-bashcompDATA -symlinks: +symlinks: $(targetdir) for file in aclocal-1.11 ; do \ rm -f $(targetdir)/$$file && \ $(LN_S) aclocal $(targetdir)/$$file ; \ @@ -982,7 +1025,7 @@ symlinks: rm -f $(targetdir)/$$file && \ $(LN_S) info $(targetdir)/$$file ; \ done - for file in modprobe modinfo ; do \ + for file in insmod.static ; do \ rm -f $(targetdir)/$$file && \ $(LN_S) insmod $(targetdir)/$$file ; \ done @@ -1117,6 +1160,10 @@ symlinks: rm -f $(targetdir)/$$file && \ $(LN_S) ssh $(targetdir)/$$file ; \ done + for file in sudoedit ; do \ + rm -f $(targetdir)/$$file && \ + $(LN_S) sudo $(targetdir)/$$file ; \ + done for file in tracepath6 ; do \ rm -f $(targetdir)/$$file && \ $(LN_S) tracepath $(targetdir)/$$file ; \ diff --git a/completions/acpi b/completions/acpi new file mode 100644 index 00000000..ccc5b635 --- /dev/null +++ b/completions/acpi @@ -0,0 +1,23 @@ +# acpi(1) completion -*- shell-script -*- + +_acpi() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -h|--help|-v|--version) + return + ;; + -d|--directory) + _filedir -d + return + ;; + esac + + [[ $cur == -* ]] && \ + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) +} && +complete -F _acpi acpi + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/apt-get b/completions/apt-get index a6c902e1..43170c22 100644 --- a/completions/apt-get +++ b/completions/apt-get @@ -7,7 +7,7 @@ _apt_get() local special i for (( i=0; i < ${#words[@]}-1; i++ )); do - if [[ ${words[i]} == @(install|remove|autoremove|purge|source|build-dep|download) ]]; then + if [[ ${words[i]} == @(install|remove|autoremove|purge|source|build-dep|download|changelog) ]]; then special=${words[i]} fi done @@ -65,7 +65,7 @@ _apt_get() else COMPREPLY=( $( compgen -W 'update upgrade dselect-upgrade \ dist-upgrade install remove purge source build-dep \ - download \ + download changelog \ check clean autoclean autoremove' -- "$cur" ) ) fi diff --git a/completions/bzip2 b/completions/bzip2 index 6e6c68bb..1bc98288 100644 --- a/completions/bzip2 +++ b/completions/bzip2 @@ -9,6 +9,10 @@ _bzip2() -b|-h|--help|-p) return 0 ;; + -n) + COMPREPLY=( $( compgen -W "{1..$(_ncpus)}" -- "$cur" ) ) + return 0 + ;; esac if [[ "$cur" == -* ]]; then diff --git a/completions/cppcheck b/completions/cppcheck index d3c7a422..bcf937bb 100644 --- a/completions/cppcheck +++ b/completions/cppcheck @@ -48,6 +48,12 @@ _cppcheck() -- "$cur" ) ) return ;; + -rp|--relative-paths) + if $split; then # -rp without argument is allowed + _filedir -d + return + fi + ;; --xml-version) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) return diff --git a/completions/fbgs b/completions/fbgs index 93dbe392..8058e01a 100644 --- a/completions/fbgs +++ b/completions/fbgs @@ -6,30 +6,40 @@ _fbgs() _init_completion || return case "$prev" in - -f) + -f|--font) local IFS=$'\n' COMPREPLY=( $( compgen -W '$( fc-list 2>/dev/null )' -- "$cur" ) ) return ;; - -m) + -m|--mode) COMPREPLY=( $( compgen -W '$( sed \ -n "/^mode/{s/^mode \{1,\}\"\([^\"]\{1,\}\)\"/\1/g;p}" \ /etc/fb.modes 2> /dev/null )' -- "$cur" ) ) return ;; - -d) + -d|--device) COMPREPLY=( $( compgen -f -d -- "${cur:-/dev/}" ) ) return ;; - -t|-g|-p) + -fp|--firstpage|-lp|--lastpage|-r|--resolution|-s|--scroll|-t|\ + --timeout) + # expect integer value + COMPREPLY+=( $( compgen -W '{0..9}' ) ) + compopt -o nospace + return + ;; + -T|--vt|-p|--password|-g|--gamma) # argument required but no completions available return ;; esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-l -xl -xxl -a --fitwidth -d -m -t -g -f -p - -h -c' -- "$cur" ) ) + COMPREPLY=( $( compgen -W '--bell --help --password -fp --firstpage + -lp --lastpage --color -l -xl -xxl --resolution --autozoom + --{,no}autoup --{,no}autodown --{,no}fitwidth --{,no}verbose + --{,no}random --vt --scroll --timeout --{,no}once --gamma --font + --device --mode' -- "$cur" ) ) [[ $COMPREPLY ]] && return fi diff --git a/completions/fbi b/completions/fbi index 9516247b..5073607a 100644 --- a/completions/fbi +++ b/completions/fbi @@ -47,7 +47,7 @@ _fbi() # FIXME: It is hard to determine correct supported extensions. # fbi can handle any format that imagemagick can plus some others - _filedir 'bmp|gif|jp?(e)g|pcd|png|p[pgb]m|tif?(f)|webp|xpm|xwd|?(e)ps|pdf|dvi|txt|svg?(z)' + _filedir 'bmp|gif|jp?(e)g|pcd|png|p[pgb]m|tif?(f)|webp|xpm|xwd|?(e)ps|pdf|dvi|txt|svg?(z)|cdr|[ot]tf' } && complete -F _fbi fbi # ex: ts=4 sw=4 et filetype=sh diff --git a/completions/feh b/completions/feh index 0f34f94b..5d66bb10 100644 --- a/completions/feh +++ b/completions/feh @@ -10,10 +10,6 @@ _feh() COMPREPLY=( $( compgen -W 'default white black' -- "$cur" ) ) return ;; - --index-dim|--index-name|--index-size) - COMPREPLY=( $( compgen -W '0 1' -- "$cur" ) ) - return - ;; -f|--filelist|-o|--output|-O|--output-only|-\||--start-at) _filedir return @@ -61,7 +57,7 @@ _feh() return ;; -R|--reload|-H|--limit-height|-W|--limit-width|-E|--thumb-height|\ - -y|--thumb-width|-J|--thumb-redraw) + -y|--thumb-width|-J|--thumb-redraw|--magick-timeout) # expect integer value COMPREPLY+=( $( compgen -W '{0..9}' ) ) compopt -o nospace @@ -76,11 +72,6 @@ _feh() fi return ;; - -0|--reload-button|-1|--pan-button|-2|--zoom-button|-3|--menu-button|\ - -4|--prev-button|-5|--next-button|-8|--rotate-button|-9|--blur-button) - COMPREPLY=( $( compgen -W '{0..9}' -- "$cur" ) ) - return - ;; -a|--alpha) COMPREPLY=( $( compgen -W '{0..255}' -- "$cur" ) ) return @@ -99,7 +90,8 @@ _feh() compopt -o nospace return ;; - -L|--customlist|--info|-D|--slideshow-delay|-~|--thumb-title|-^|--title) + -L|--customlist|--index-info|--info|-D|--slideshow-delay|-~|\ + --thumb-title|-^|--title) # argument required but no completions available return ;; @@ -113,7 +105,9 @@ _feh() [[ $COMPREPLY ]] && return fi - _filedir 'xpm|tif?(f)|png|p[npgba]m|iff|?(i)lbm|jp?(e)g|jfi?(f)|gif|bmp|arg?(b)|tga|xcf|ani|ico' + # FIXME: It is hard to determine correct supported extensions. + # feh can handle any format that imagemagick can plus some others + _filedir 'xpm|tif?(f)|png|p[npgba]m|iff|?(i)lbm|jp?(e)g|jfi?(f)|gif|bmp|arg?(b)|tga|xcf|ani|ico|?(e)ps|pdf|dvi|txt|svg?(z)|cdr|[ot]tf' } && complete -F _feh feh # ex: ts=4 sw=4 et filetype=sh diff --git a/completions/gzip b/completions/gzip index 87219630..35e5f231 100644 --- a/completions/gzip +++ b/completions/gzip @@ -6,7 +6,11 @@ _gzip() _init_completion || return case $prev in - -b|--blocksize|-p|--processes|-S|--suffix|-h|--help|-V|--version) + -b|--blocksize|-S|--suffix|-h|--help|-V|--version) + return 0 + ;; + -p|--processes) + COMPREPLY=( $( compgen -W "{1..$(_ncpus)}" -- "$cur" ) ) return 0 ;; esac diff --git a/completions/hwclock b/completions/hwclock new file mode 100644 index 00000000..e9d77aa2 --- /dev/null +++ b/completions/hwclock @@ -0,0 +1,23 @@ +# hwclock(8) completion -*- shell-script -*- + +_hwclock() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -h|--help|-V|--version|--date|--epoch) + return + ;; + -f|--rtc|--adjfile) + _filedir + ;; + esac + + [[ $cur == -* ]] && \ + COMPREPLY=( $( PATH="$PATH:/sbin" + compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) +} && +complete -F _hwclock hwclock + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/insmod b/completions/insmod index 725678e8..545f8bc5 100644 --- a/completions/insmod +++ b/completions/insmod @@ -1,34 +1,18 @@ -# Linux insmod(8), modprobe(8) and modinfo(8) completion -*- shell-script -*- -# This completes on the list of all available modules for the version of the -# kernel currently running. -# +# Linux insmod(8) completion -*- shell-script -*- + _insmod() { local cur prev words cword _init_completion || return - # behave like lsmod for modprobe -r - if [[ ${1##*/} == modprobe && "${words[1]}" == -r ]]; then - _installed_modules "$cur" - return 0 - fi - - # do filename completion if we're giving a path to a module - if [[ "$cur" == @(*/|[.~])* ]]; then + # do filename completion for first argument + if [[ $cword -eq 1 ]]; then _filedir '@(?(k)o?(.gz))' - return 0 + else # do module parameter completion + COMPREPLY=( $( compgen -W "$( PATH="$PATH:/sbin" modinfo \ + -p ${words[1]} 2>/dev/null | cut -d: -f1 )" -- "$cur" ) ) fi - - if [[ $cword -gt 1 && "${words[cword-1]}" != -* ]]; then - # do module parameter completion - COMPREPLY=( $( compgen -W "$( /sbin/modinfo -p ${words[1]} | \ - cut -d: -f1 )" -- "$cur" ) ) - else - _modules $(uname -r) - fi - - return 0 } && -complete -F _insmod insmod modprobe modinfo +complete -F _insmod insmod insmod.static # ex: ts=4 sw=4 et filetype=sh diff --git a/completions/make b/completions/make index 399c4b00..1aec3489 100644 --- a/completions/make +++ b/completions/make @@ -37,6 +37,12 @@ _make() [[ $opts ]] || opts="$( _parse_usage "$1" )" COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace + elif [[ $cur == *=* ]]; then + prev=${cur%%=*} + cur=${cur#*=} + local diropt + [[ ${prev,,} == *dir?(ectory) ]] && diropt=-d + _filedir $diropt else # before we check for makefiles, see if a path was specified # with -C/--directory diff --git a/completions/man b/completions/man index a9de57c4..0c3769d5 100644 --- a/completions/man +++ b/completions/man @@ -8,10 +8,10 @@ _man() local cur prev words cword split _init_completion -s -n : || return - local i sect manpath manext mansect uname + local sect manpath manext mansect - manext="@([0-9lnp]|[0-9][px]|man|3pm)?(.@([gx]z|bz2|lzma|Z))" - mansect="@([0-9lnp]|[0-9][px]|3pm)" + manext="@([0-9lnp]|[0-9][px]|man|3?(gl|pm))?(.@([gx]z|bz2|lzma|Z))" + mansect="@([0-9lnp]|[0-9][px]|3?(gl|pm))" case $prev in -C|--config-file) @@ -56,8 +56,7 @@ _man() return 0 fi - uname=$( uname -s ) - if [[ $uname == @(Linux|GNU|GNU/*|FreeBSD|Cygwin|CYGWIN_*) ]]; then + if [[ $OSTYPE == *@(darwin|linux|freebsd|cygwin)* ]] || _userland GNU; then manpath=$( manpath 2>/dev/null || command man --path ) else manpath=$MANPATH @@ -89,7 +88,7 @@ _man() if [[ "$prev" != $mansect ]]; then # File based completion for the rest, prepending ./ if needed # (man 1.6f needs that for man pages in current dir) - local start=${#COMPREPLY[@]} + local i start=${#COMPREPLY[@]} _filedir $manext for (( i=$start; i < ${#COMPREPLY[@]}; i++ )); do [[ ${COMPREPLY[i]} == */* ]] || COMPREPLY[i]=./${COMPREPLY[i]} diff --git a/completions/modinfo b/completions/modinfo new file mode 100644 index 00000000..2a359871 --- /dev/null +++ b/completions/modinfo @@ -0,0 +1,44 @@ +# Linux modinfo(8) completion -*- shell-script -*- + +_modinfo() +{ + local cur prev words cword + _init_completion || return + + case "$prev" in + -F|--field) + COMPREPLY=( $( compgen -W 'alias author depends description + filename firmware license parm srcversion staging vermagic + version' -- "$(echo "$cur" | tr '[:upper:]' '[:lower:]')" ) ) + return + ;; + -k) + _kernel_versions + return + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-V --version -F --field -k -0 --null -a -d + -l -p -n' -- "$cur" ) ) + return + fi + + local i version=$(uname -r) + for (( i=${#words[@]}-1; i>0; i-- )); do + if [[ ${words[i]} == -k ]]; then + version=${words[i+1]} + break + fi + done + + # do filename completion if we're giving a path to a module + if [[ "$cur" == @(*/|[.~])* ]]; then + _filedir '@(?(k)o?(.gz))' + else + _modules $version + fi +} && +complete -F _modinfo modinfo + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/modprobe b/completions/modprobe new file mode 100644 index 00000000..cf35f4b9 --- /dev/null +++ b/completions/modprobe @@ -0,0 +1,86 @@ +# Linux modprobe(8) completion -*- shell-script -*- + +_modprobe() +{ + local cur prev words cword + _init_completion || return + + case "$prev" in + -C|--config) + _filedir + return + ;; + -d|--dirname|-t|--type) + _filedir -d + return + ;; + -S|--set-version) + _kernel_versions + return + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a --all -b --use-blacklist -C --config -c + --showconfig --dump-modversions -d --dirname --first-time + --force-vermagic --force-modversion -f --force -i --ignore-install + --ignore-remove -l --list -n --dry-run -q --quiet -R + --resolve-alias -r --remove -S --set-version --show-depends -s + --syslog -t --type -V --version -v --verbose' -- "$cur" ) ) + return + fi + + local i mode=insert module= version=$(uname -r) + for (( i=1; i < $cword; i++ )); do + case "${words[i]}" in + -r|--remove) + mode=remove + ;; + -l|--list) + mode=list + ;; + --dump-modversions) + mode=file + ;; + -S|--set-version) + version=${words[i+1]} # -S is not $prev and not $cur + ;; + -C|--config|-d|--dirname|-t|--type) + ((i++)) # skip option and its argument + ;; + -*) + # skip all other options + ;; + *) + [ -z "$module" ] && module=${words[i]} + ;; + esac + done + + case $mode in + remove) + _installed_modules "$cur" + ;; + list) + # no completion available + ;; + file) + _filedir + ;; + insert) + # do filename completion if we're giving a path to a module + if [[ "$cur" == @(*/|[.~])* ]]; then + _filedir '@(?(k)o?(.gz))' + elif [[ -n "$module" ]]; then + # do module parameter completion + COMPREPLY=( $( compgen -W "$( PATH="$PATH:/sbin" modinfo \ + -p "$module" 2>/dev/null | cut -d: -f1 )" -- "$cur" ) ) + else + _modules $version + fi + ;; + esac +} && +complete -F _modprobe modprobe + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/mount.linux b/completions/mount.linux index 91594449..20a3d6a0 100644 --- a/completions/mount.linux +++ b/completions/mount.linux @@ -17,9 +17,9 @@ _mount() fi COMPREPLY=( $(compgen -W 'auto adfs affs autofs btrfs cifs coda cramfs debugfs devpts efs ext2 ext3 ext4 fuse hfs hfsplus hpfs - iso9660 jfs minix msdos ncpfs nfs nfs4 ntfs ntfs-3g proc qnx4 - ramfs reiserfs romfs squashfs smbfs sysv tmpfs ubifs udf ufs - umsdos usbfs vfat xfs' -- "$cur") ) + iso9660 jffs2 jfs minix msdos ncpfs nfs nfs4 ntfs ntfs-3g proc + qnx4 ramfs reiserfs romfs squashfs smbfs sysv tmpfs ubifs udf + ufs umsdos usbfs vfat xfs' -- "$cur") ) _fstypes $split && COMPREPLY=( ${COMPREPLY[@]/#/$prev,} ) return @@ -91,7 +91,7 @@ _mount() COMPREPLY+=( $(compgen -W 'degraded subvol= subvolid= device= nodatasum nodatacow nobarrier max_inline= alloc_start= thread_pool= compress= compress-force= ssd noacl notreelog - flushoncommit metadata_ratio= space_cache clear_cache + flushoncommit metadata_ratio= {,no}space_cache clear_cache user_subvol_rm_allowed autodefrag inode_cache' -- "$cur") ) ;;& cifs|auto) @@ -99,8 +99,8 @@ _mount() force{u,g}id port= servern= netbiosname= {file,dir}_mode= ip= domain= guest iocharset ro rw {,no}setuids {,no,dyn}perm directio {,no}mapchars {,no}intr hard soft noacl nocase sec= - nobrl sfu {,no}serverino nounix nouser_xattr {r,w}size=' \ - -- "$cur") ) + nobrl sfu {,no}serverino nounix nouser_xattr {r,w}size= + rwpidforward backup{u,g}id' -- "$cur") ) ;;& ext[2-4]|auto) COMPREPLY+=( $(compgen -W '{,no}acl bsddf minixdf check= debug @@ -134,6 +134,9 @@ _mount() mode= unhide block= conv= cruft session= sbsector= iocharset= utf8' -- "$cur") ) ;;& + jffs2|auto) + COMPREPLY+=( $(compgen -W 'compr=' -- "$cur") ) + ;;& jfs|auto) COMPREPLY+=( $(compgen -W 'iocharset= resize= {,no}integrity errors= {,no,usr,grp}quota' -- "$cur") ) diff --git a/completions/mplayer b/completions/mplayer index be852a5a..ba8e3e90 100644 --- a/completions/mplayer +++ b/completions/mplayer @@ -11,7 +11,7 @@ _mplayer_options_list() _mplayer() { local cur prev words cword - _init_completion || return + _init_completion -n : || return local cmd=${words[0]} i j k=0 @@ -110,7 +110,7 @@ _mplayer() -vi|-vid|-vivo|-ffactor|-sid|-slang|-spualign|-spuaa|-spugauss| \ -vobsubid|-delay|-bpp|-brightness|-contrast|-dfbopts|-display| \ -fbmode|-geometry|-guiwid|-hue|-icelayer|-screen[wh]|-wid| \ - -monitoraspect|-monitor-dotclock|-monitor-[hv]freq|-panscan| \ + -monitor-dotclock|-monitor-[hv]freq|-panscan| \ -saturation|-xineramascreen|-zrcrop|-zrnorm|-zrquality| \ -zr[xy]doff|-zr[vh]dec|-aspect|-pp|-x|-y|-xy|-z|-stereo| \ -audio-density|-audio-delay|-audio-preload|-endpos|-osdlevel| \ @@ -122,6 +122,11 @@ _mplayer() -subfont-osd-text) return 0 ;; + -monitoraspect) + COMPREPLY=( $( compgen -W '4:3 16:9 16:10' -- "$cur" ) ) + __ltrim_colon_completions "$cur" + return 0 + ;; -lavdopts) COMPREPLY=( $( compgen -W 'bitexact bug= debug= ec= er= fast gray idct= lowres= sb= st= skiploopfilter= skipidct= skipframe= threads= vismv= vstats' -- "$cur" ) ) return 0 @@ -238,6 +243,17 @@ _mplayer() COMPREPLY=( $( compgen -W 'all gui system user' -- "$cur" ) ) return 0 ;; + -*) + # Assume arg is required for everything else except options + # for which -list-options says Type is Flag or Print. + $cmd -nomsgcolor -nomsgmodule -list-options 2>/dev/null \ + | while read -r i j k; do + if [[ $i == ${prev#-} ]]; then + [[ ${j,,} != @(flag|print) ]] && return 1 + break + fi + done || return 0 + ;; esac case $cur in diff --git a/completions/pwd b/completions/pwd new file mode 100644 index 00000000..8818b49d --- /dev/null +++ b/completions/pwd @@ -0,0 +1,22 @@ +# pwd(1) completion -*- shell-script -*- + +_pwd() +{ + local cur prev words cword + _init_completion || return + + case $prev in + --help|--version) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY ]] || \ + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + fi +} && +complete -F _pwd pwd + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/ri b/completions/ri index 43f6408a..62a9b709 100644 --- a/completions/ri +++ b/completions/ri @@ -1,7 +1,7 @@ # ri completion for Ruby documentation -*- shell-script -*- # by Ian Macdonald <ian@caliban.org> -ri_get_methods() +_ri_get_methods() { local regex @@ -56,7 +56,7 @@ _ri() method=${cur#*$separator} classes=( $class ) prefix="-P $class$separator" - ri_get_methods + _ri_get_methods return 0 fi @@ -82,7 +82,7 @@ _ri() # we're completing on methods method=$cur - ri_get_methods + _ri_get_methods } && complete -F _ri ri diff --git a/completions/rmmod b/completions/rmmod index 3b266067..20d3bfce 100644 --- a/completions/rmmod +++ b/completions/rmmod @@ -6,6 +6,17 @@ _rmmod() local cur prev words cword _init_completion || return + case $prev in + -h|--help|-V|--version) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + return + fi + _installed_modules "$cur" return 0 } && diff --git a/completions/sbopkg b/completions/sbopkg index 0c812faa..598cb8cf 100644 --- a/completions/sbopkg +++ b/completions/sbopkg @@ -1,4 +1,4 @@ -# bash completion for sbopkg tool -*- shell-script -*- +# bash completion for sbopkg(8) -*- shell-script -*- _sbopkg() { @@ -6,9 +6,8 @@ _sbopkg() _init_completion || return if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-b -c -d -e -f -g -h -i -k -l -o - -P -p -q -R -r -s -u -V -v' -- "$cur" ) ) - return + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) + [[ $COMPREPLY ]] && return fi case "$prev" in @@ -45,10 +44,7 @@ _sbopkg() fi done - if [[ ! -r "$config" ]]; then - return - fi - + [[ -r "$config" ]] || return . $config for (( i=1; i<${#words[@]}; i++ )); do @@ -62,10 +58,8 @@ _sbopkg() ;; esac done + [[ -r $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ]] || return - if [[ ! -r $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ]]; then - return - fi COMPREPLY=( $( sed -ne "/^SLACKBUILD NAME: $cur/{s/^SLACKBUILD NAME: //;p}"\ $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ) $( cd $QUEUEDIR; compgen -f -X "!*.sqf" -- "$cur" ) ) diff --git a/completions/slackpkg b/completions/slackpkg index b4223e71..1be2f956 100644 --- a/completions/slackpkg +++ b/completions/slackpkg @@ -1,4 +1,4 @@ -# bash completion for slackpkg tool -*- shell-script -*- +# bash completion for slackpkg(8) -*- shell-script -*- # options list is based on `grep '\-.*\=.*)' /usr/sbin/slackpkg | cut -f1 -d\)` _slackpkg() @@ -43,9 +43,7 @@ _slackpkg() local confdir="/etc/slackpkg" local config="$confdir/slackpkg.conf" - if [[ ! -r "$config" ]]; then - return - fi + [[ -r "$config" ]] || return . "$config" local i action diff --git a/completions/slapt-get b/completions/slapt-get index 02f007ec..ff42660a 100644 --- a/completions/slapt-get +++ b/completions/slapt-get @@ -1,4 +1,4 @@ -# slapt-get completion -*- shell-script -*- +# slapt-get(8) completion -*- shell-script -*- _slapt_get() { @@ -48,9 +48,7 @@ _slapt_get() break fi done - if [[ ! -r "$config" ]]; then - return - fi + [[ -r "$config" ]] || return case $t in all) # --show diff --git a/completions/slapt-src b/completions/slapt-src index 6234eaa8..94ddb892 100644 --- a/completions/slapt-src +++ b/completions/slapt-src @@ -1,4 +1,4 @@ -# slapt-src completion -*- shell-script -*- +# slapt-src(8) completion -*- shell-script -*- _slapt_src() { @@ -42,9 +42,7 @@ _slapt_src() break fi done - if [[ ! -r "$config" ]]; then - return - fi + [[ -r "$config" ]] || return if [[ "$cur" == *:* ]]; then local name=${cur%:*} diff --git a/completions/ssh b/completions/ssh index a18ba494..5cd03b97 100644 --- a/completions/ssh +++ b/completions/ssh @@ -266,13 +266,13 @@ _scp_remote_files() if [[ $1 == -d ]]; then # escape problematic characters; remove non-dirs files=$( ssh -o 'Batchmode yes' $userhost \ - command ls -aF1d "$path*" 2>/dev/null | \ + command ls -aF1dL "$path*" 2>/dev/null | \ sed -e 's/'$_scp_path_esc'/\\\\\\&/g' -e '/[^\/]$/d' ) else # escape problematic characters; remove executables, aliases, pipes # and sockets; add space at end of file names files=$( ssh -o 'Batchmode yes' $userhost \ - command ls -aF1d "$path*" 2>/dev/null | \ + command ls -aF1dL "$path*" 2>/dev/null | \ sed -e 's/'$_scp_path_esc'/\\\\\\&/g' -e 's/[*@|=]$//g' \ -e 's/[^\/]$/& /g' ) fi @@ -294,10 +294,10 @@ _scp_local_files() fi if $dirsonly ; then - COMPREPLY+=( $( command ls -aF1d $cur* 2>/dev/null | \ + COMPREPLY+=( $( command ls -aF1dL $cur* 2>/dev/null | \ sed -e "s/$_scp_path_esc/\\\\&/g" -e '/[^\/]$/d' -e "s/^/$1/") ) else - COMPREPLY+=( $( command ls -aF1d $cur* 2>/dev/null | \ + COMPREPLY+=( $( command ls -aF1dL $cur* 2>/dev/null | \ sed -e "s/$_scp_path_esc/\\\\&/g" -e 's/[*@|=]$//g' \ -e 's/[^\/]$/& /g' -e "s/^/$1/") ) fi diff --git a/completions/ssh-add b/completions/ssh-add new file mode 100644 index 00000000..1d563688 --- /dev/null +++ b/completions/ssh-add @@ -0,0 +1,23 @@ +# ssh-add(1) completion -*- shell-script -*- + +_ssh_add() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -t|-s|-e) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" -? )' -- "$cur" ) ) + return + fi + + _filedir +} && +complete -F _ssh_add ssh-add + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/su b/completions/su new file mode 100644 index 00000000..fccca47b --- /dev/null +++ b/completions/su @@ -0,0 +1,37 @@ +# bash completion for su(1) -*- shell-script -*- + +if [[ $OSTYPE != *linux* ]]; then + complete -u su # default completion + return +fi + +_su() # linux-specific completion +{ + local cur prev words cword split + _init_completion -s || return + + case "$prev" in + -s|--shell) + _shells + return + ;; + -c|--command|--session-command) + local IFS=$'\n' + compopt -o filenames + COMPREPLY=( $( compgen -d -c -- "$cur" ) ) + return + ;; + esac + + $split && return + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" --help )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return + fi + + COMPREPLY=( $( compgen -u -- "$cur" ) ) +} && complete -F _su su + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/sudo b/completions/sudo new file mode 100644 index 00000000..b13b7313 --- /dev/null +++ b/completions/sudo @@ -0,0 +1,51 @@ +# bash completion for sudo(8) -*- shell-script -*- + +_sudo() +{ + local cur prev words cword + _init_completion || return + + local i mode=normal + [[ $1 == *sudoedit ]] && mode=edit + + [[ $mode == normal ]] && + for (( i=1; i <= COMP_CWORD; i++ )); do + if [[ ${COMP_WORDS[i]} != -* ]]; then + local PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin + local root_command=${COMP_WORDS[i]} + _command_offset $i + return + fi + if [[ ${COMP_WORDS[i]} == -e ]]; then + mode=edit + break + fi + [[ ${COMP_WORDS[i]} == -@(u|U|g|C|p) ]] && ((i++)) + done + + case "$prev" in + -u|-U) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return + ;; + -g) + COMPREPLY=( $( compgen -g -- "$cur" ) ) + return + ;; + -C|-p) + # argument required but no completions available + return + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A -b -C -E -e -g -H -h -i -K -k -L -l -ll + -n -P -p -S -s -U -u -V -v' -- "$cur" ) ) + return + fi + if [[ $mode == edit ]]; then + _filedir + fi +} && complete -F _sudo sudo sudoedit + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/vmstat b/completions/vmstat new file mode 100644 index 00000000..1d3ebb32 --- /dev/null +++ b/completions/vmstat @@ -0,0 +1,27 @@ +# vmstat(8) completion -*- shell-script -*- + +_vmstat() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -V|-c|-M|-N|-n|-w|-p) + return + ;; + -S) + [[ $OSTYPE == *linux* ]] && \ + COMPREPLY=( $( compgen -W 'k K m M' -- "$cur" ) ) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) + [[ $COMPREPLY ]] || \ + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + fi +} && +complete -F _vmstat vmstat + +# ex: ts=4 sw=4 et filetype=sh diff --git a/completions/xmllint b/completions/xmllint index c29c52d8..928a5b67 100644 --- a/completions/xmllint +++ b/completions/xmllint @@ -38,7 +38,7 @@ _xmllint() return 0 fi - _filedir '@(*ml|htm|svg|xs[dl]|rng|wsdl|jnlp|tld)?(.gz)' + _filedir '@(*ml|htm|svg?(z)|xs[dl]|rng|wsdl|jnlp|tld)?(.gz)' } && complete -F _xmllint xmllint @@ -1,11 +1,9 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for bash-completion 1.99. +# Generated by GNU Autoconf 2.69 for bash-completion 2.0. # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,6 +132,31 @@ export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -167,7 +190,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -211,21 +235,25 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -327,6 +355,14 @@ $as_echo X"$as_dir" | } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -448,6 +484,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -482,16 +522,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -503,28 +543,8 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -556,8 +576,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bash-completion' PACKAGE_TARNAME='bash-completion' -PACKAGE_VERSION='1.99' -PACKAGE_STRING='bash-completion 1.99' +PACKAGE_VERSION='2.0' +PACKAGE_STRING='bash-completion 2.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1088,8 +1108,6 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1175,7 +1193,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bash-completion 1.99 to adapt to many kinds of systems. +\`configure' configures bash-completion 2.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1241,7 +1259,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash-completion 1.99:";; + short | recursive ) echo "Configuration of bash-completion 2.0:";; esac cat <<\_ACEOF @@ -1308,10 +1326,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bash-completion configure 1.99 -generated by GNU Autoconf 2.68 +bash-completion configure 2.0 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1325,8 +1343,8 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash-completion $as_me 1.99, which was -generated by GNU Autoconf 2.68. Invocation command line was +It was created by bash-completion $as_me 2.0, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -1741,7 +1759,7 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -1910,7 +1928,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -1950,7 +1968,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2001,7 +2019,7 @@ do test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -2054,7 +2072,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2140,7 +2158,7 @@ fi # Define the identity of the package. PACKAGE='bash-completion' - VERSION='1.99' + VERSION='2.0' cat >>confdefs.h <<_ACEOF @@ -2170,11 +2188,11 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' @@ -2191,6 +2209,7 @@ else $as_echo "no, using $LN_S" >&6; } fi + compatdir=$sysconfdir/bash_completion.d ac_config_files="$ac_config_files Makefile completions/Makefile doc/Makefile helpers/Makefile test/Makefile bash-completion.pc" @@ -2639,16 +2658,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -2708,28 +2727,16 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -2750,8 +2757,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bash-completion $as_me 1.99, which was -generated by GNU Autoconf 2.68. Invocation command line was +This file was extended by bash-completion $as_me 2.0, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -2803,11 +2810,11 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -bash-completion config.status 1.99 -configured by $0, generated by GNU Autoconf 2.68, +bash-completion config.status 2.0 +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -2887,7 +2894,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' diff --git a/configure.ac b/configure.ac index 999f6539..3dd17c66 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,8 @@ -AC_PREREQ([2.59]) -AC_INIT([bash-completion], [1.99]) +AC_PREREQ([2.60]) +AC_INIT([bash-completion], [2.0]) AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip -Wall -Werror]) AC_PROG_LN_S +AC_PROG_MKDIR_P AC_SUBST(compatdir, $sysconfdir/bash_completion.d) AC_CONFIG_FILES([Makefile completions/Makefile doc/Makefile helpers/Makefile test/Makefile bash-completion.pc]) AC_OUTPUT diff --git a/doc/Makefile.in b/doc/Makefile.in index 8e2fe930..7a6ebf4e 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -42,6 +59,11 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -210,10 +232,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/helpers/Makefile.in b/helpers/Makefile.in index b18c5259..3288374f 100644 --- a/helpers/Makefile.in +++ b/helpers/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +16,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -43,6 +60,11 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -64,6 +86,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(helpersdir)" DATA = $(helpers_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -179,8 +207,11 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-helpersDATA: $(helpers_DATA) @$(NORMAL_INSTALL) - test -z "$(helpersdir)" || $(MKDIR_P) "$(DESTDIR)$(helpersdir)" @list='$(helpers_DATA)'; test -n "$(helpersdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(helpersdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(helpersdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -194,9 +225,7 @@ uninstall-helpersDATA: @$(NORMAL_UNINSTALL) @list='$(helpers_DATA)'; test -n "$(helpersdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(helpersdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(helpersdir)" && rm -f $$files + dir='$(DESTDIR)$(helpersdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: @@ -251,10 +280,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/test/Makefile.am b/test/Makefile.am index 82f6df90..19d75573 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -8,7 +8,7 @@ EXTRA_DIST = completion \ unit all: - $(mkdir_p) log tmp + $(MKDIR_P) log tmp distclean-local: rm -rf log tmp diff --git a/test/Makefile.in b/test/Makefile.in index d71b99ae..337f7425 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -42,6 +59,11 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir EXPECT = expect RUNTEST = runtest @@ -170,7 +192,7 @@ CTAGS: check-DEJAGNU: site.exp - srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \ + srcdir='$(srcdir)'; export srcdir; \ EXPECT=$(EXPECT); export EXPECT; \ runtest=$(RUNTEST); \ if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ @@ -181,16 +203,23 @@ check-DEJAGNU: site.exp else echo "WARNING: could not find \`runtest'" 1>&2; :;\ fi; \ exit $$exit_status -site.exp: Makefile +site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG) @echo 'Making a new site.exp file...' @echo '## these variables are automatically generated by make ##' >site.tmp @echo '# Do not edit here. If you wish to override these values' >>site.tmp @echo '# edit the last section' >>site.tmp - @echo 'set srcdir $(srcdir)' >>site.tmp + @echo 'set srcdir "$(srcdir)"' >>site.tmp @echo "set objdir `pwd`" >>site.tmp - @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp - @test ! -f site.exp || \ - sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp + @list='$(EXTRA_DEJAGNU_SITE_CONFIG)'; for f in $$list; do \ + echo "## Begin content included from file $$f. Do not modify. ##" \ + && cat `test -f "$$f" || echo '$(srcdir)/'`$$f \ + && echo "## End content included from file $$f. ##" \ + || exit 1; \ + done >> site.tmp + @echo "## End of auto-generated content; you can edit from here. ##" >> site.tmp + @if test -f site.exp; then \ + sed -e '1,/^## End of auto-generated content.*##/d' site.exp >> site.tmp; \ + fi @-rm -f site.bak @test ! -f site.exp || mv site.exp site.bak @mv site.tmp site.exp @@ -246,10 +275,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -343,7 +377,7 @@ uninstall-am: all: - $(mkdir_p) log tmp + $(MKDIR_P) log tmp distclean-local: rm -rf log tmp diff --git a/test/completion/acpi.exp b/test/completion/acpi.exp new file mode 100644 index 00000000..934f6d1c --- /dev/null +++ b/test/completion/acpi.exp @@ -0,0 +1 @@ +assert_source_completions acpi diff --git a/test/completion/hwclock.exp b/test/completion/hwclock.exp new file mode 100644 index 00000000..b0bdb8ed --- /dev/null +++ b/test/completion/hwclock.exp @@ -0,0 +1 @@ +assert_source_completions hwclock diff --git a/test/completion/modinfo.exp b/test/completion/modinfo.exp new file mode 100644 index 00000000..88384543 --- /dev/null +++ b/test/completion/modinfo.exp @@ -0,0 +1 @@ +assert_source_completions modinfo diff --git a/test/completion/modprobe.exp b/test/completion/modprobe.exp new file mode 100644 index 00000000..405ca8e1 --- /dev/null +++ b/test/completion/modprobe.exp @@ -0,0 +1 @@ +assert_source_completions modprobe diff --git a/test/completion/pwd.exp b/test/completion/pwd.exp new file mode 100644 index 00000000..e24ee974 --- /dev/null +++ b/test/completion/pwd.exp @@ -0,0 +1 @@ +assert_source_completions pwd diff --git a/test/completion/rmmod.exp b/test/completion/rmmod.exp new file mode 100644 index 00000000..040c7372 --- /dev/null +++ b/test/completion/rmmod.exp @@ -0,0 +1 @@ +assert_source_completions rmmod diff --git a/test/completion/ssh-add.exp b/test/completion/ssh-add.exp new file mode 100644 index 00000000..03035cf7 --- /dev/null +++ b/test/completion/ssh-add.exp @@ -0,0 +1 @@ +assert_source_completions ssh-add diff --git a/test/completion/su.exp b/test/completion/su.exp new file mode 100644 index 00000000..8c123fc7 --- /dev/null +++ b/test/completion/su.exp @@ -0,0 +1 @@ +assert_source_completions su diff --git a/test/completion/vmstat.exp b/test/completion/vmstat.exp new file mode 100644 index 00000000..e55f28e3 --- /dev/null +++ b/test/completion/vmstat.exp @@ -0,0 +1 @@ +assert_source_completions vmstat diff --git a/test/fixtures/_filedir/brackets/[x] b/test/fixtures/_filedir/brackets/[x] new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/test/fixtures/_filedir/brackets/[x] @@ -0,0 +1 @@ + diff --git a/test/fixtures/_filedir/brackets/x b/test/fixtures/_filedir/brackets/x new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/test/fixtures/_filedir/brackets/x @@ -0,0 +1 @@ + diff --git a/test/lib/completions/acpi.exp b/test/lib/completions/acpi.exp new file mode 100644 index 00000000..278cdceb --- /dev/null +++ b/test/lib/completions/acpi.exp @@ -0,0 +1,18 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +assert_complete_any "acpi -" +sync_after_int + + +teardown diff --git a/test/lib/completions/hwclock.exp b/test/lib/completions/hwclock.exp new file mode 100644 index 00000000..b12951a9 --- /dev/null +++ b/test/lib/completions/hwclock.exp @@ -0,0 +1,18 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +assert_complete_any "hwclock -" +sync_after_int + + +teardown diff --git a/test/lib/completions/insmod.exp b/test/lib/completions/insmod.exp index a312c894..ca7c30f6 100644 --- a/test/lib/completions/insmod.exp +++ b/test/lib/completions/insmod.exp @@ -11,7 +11,7 @@ proc teardown {} { setup -assert_complete_any "insmod in" +assert_complete_any "insmod " sync_after_int diff --git a/test/lib/completions/modinfo.exp b/test/lib/completions/modinfo.exp new file mode 100644 index 00000000..bd8f965c --- /dev/null +++ b/test/lib/completions/modinfo.exp @@ -0,0 +1,35 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +set test "in<TAB> should complete modulename" +assert_complete_any "modinfo in" $test + + +sync_after_int + + +set test "should not complete anything for non-existent kernel" +assert_no_complete "modinfo -k you-dont-have-such-kernel in" $test + + +sync_after_int + + +set test "should complete filepaths" +assert_complete "/tmp/" "modinfo /tm" $test -nospace + + +sync_after_int + + +teardown diff --git a/test/lib/completions/modprobe.exp b/test/lib/completions/modprobe.exp new file mode 100644 index 00000000..a1cd6987 --- /dev/null +++ b/test/lib/completions/modprobe.exp @@ -0,0 +1,49 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +set test "--remov<TAB> should complete \"--remove\"" +assert_complete "--remove" "modprobe --remov" $test + + +sync_after_int + + +set test "in<TAB> should complete modulename" +assert_complete_any "modprobe in" $test + + +sync_after_int + + +set test "should not complete anything for non-existent kernel" +assert_no_complete "modprobe -S you-dont-have-such-kernel in" $test + + +sync_after_int + + +set test "should not complete anything for non-existent module" +assert_no_complete "modprobe you-dont-have-such-module " $test + + +sync_after_int + + +set test "should complete filepaths" +assert_complete "/tmp/" "modprobe /tm" $test -nospace + + +sync_after_int + + +teardown diff --git a/test/lib/completions/pwd.exp b/test/lib/completions/pwd.exp new file mode 100644 index 00000000..f40fdb99 --- /dev/null +++ b/test/lib/completions/pwd.exp @@ -0,0 +1,18 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +assert_no_complete "pwd " +sync_after_int + + +teardown diff --git a/test/lib/completions/rmmod.exp b/test/lib/completions/rmmod.exp new file mode 100644 index 00000000..6c563211 --- /dev/null +++ b/test/lib/completions/rmmod.exp @@ -0,0 +1,18 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +assert_complete_any "rmmod -" +sync_after_int + + +teardown diff --git a/test/lib/completions/slapt-get.exp b/test/lib/completions/slapt-get.exp index 70afc666..7f5375a4 100644 --- a/test/lib/completions/slapt-get.exp +++ b/test/lib/completions/slapt-get.exp @@ -24,6 +24,12 @@ assert_complete "--update --upgrade" "slapt-get --up" $test sync_after_int +set test "--install should not complete anything if config doesn't exist" +assert_no_complete "slapt-get -c non-existent-file --install " $test + + +sync_after_int + set test "--install should complete available packages" set config $::srcdir/fixtures/slackware/etc/slapt-get/slapt-getrc diff --git a/test/lib/completions/ssh-add.exp b/test/lib/completions/ssh-add.exp new file mode 100644 index 00000000..2fb2a9b4 --- /dev/null +++ b/test/lib/completions/ssh-add.exp @@ -0,0 +1,20 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +assert_complete_any "ssh-add " + + +sync_after_int + + +teardown diff --git a/test/lib/completions/su.exp b/test/lib/completions/su.exp new file mode 100644 index 00000000..55dd80d1 --- /dev/null +++ b/test/lib/completions/su.exp @@ -0,0 +1,18 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup +assert_complete_any "su " + + +sync_after_int + + +teardown diff --git a/test/lib/completions/sudo.exp b/test/lib/completions/sudo.exp index 6108ddce..5fdb97f1 100644 --- a/test/lib/completions/sudo.exp +++ b/test/lib/completions/sudo.exp @@ -32,6 +32,15 @@ assert_complete_dir "default/" "sudo mount /dev/sda1 def" $::srcdir/fixtures/sha sync_after_int +set test "sudo -e should complete filenames and directories" +set dir $::srcdir/fixtures/shared/default +set files {foo foo.d/} +assert_complete_dir $files "sudo -e -u root bar foo" $dir $test + + +sync_after_int + + # Find user/group suitable for testing. set failed_find_unique_completion 0 foreach ug {user group} { diff --git a/test/lib/completions/vmstat.exp b/test/lib/completions/vmstat.exp new file mode 100644 index 00000000..f749322a --- /dev/null +++ b/test/lib/completions/vmstat.exp @@ -0,0 +1,18 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup +assert_complete_any "vmstat -" + + +sync_after_int + + +teardown diff --git a/test/lib/library.exp b/test/lib/library.exp index b2233258..75bf921c 100644 --- a/test/lib/library.exp +++ b/test/lib/library.exp @@ -799,6 +799,8 @@ proc realcommand {cmd} { if [string length [set path [auto_execok $cmd]]] { if {[string length [auto_execok realpath]]} { set result [exec realpath $path] + } elseif {[string length [auto_execok greadlink]]} { + set result [exec greadlink -f $path] } elseif {[string length [auto_execok readlink]]} { set result [exec readlink -f $path] } else { diff --git a/test/unit/_filedir.exp b/test/unit/_filedir.exp index 0bba8314..b8cc2009 100644 --- a/test/unit/_filedir.exp +++ b/test/unit/_filedir.exp @@ -226,6 +226,12 @@ foreach name {f f2} { sync_after_int + set cmd "$name \\\[x" + assert_complete_dir {\[x\]} $cmd "$::srcdir/fixtures/_filedir/brackets" + + + sync_after_int + }; # foreach |