Nicholas Burlett | 4 Dec 2006 20:54
Picon

colon instead of shebang

I love using fish, but it seems to be missing a vital feature. It doesn't properly handle scripts that start with a colon (:) instead of a shebang (#!). I have several scripts in use at my office that are designed to work from Win32, Linux, Solaris, and HPUX, and they start with a colon. The bash, tcsh, and cmd shells treat this as meaning the script should be interpreted as an 'sh' script.

Could someone point me to the place in the code I need to modify to make this work?

Thanks,
Nick

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Fish-users mailing list
Fish-users@...
https://lists.sourceforge.net/lists/listinfo/fish-users
Axel Liljencrantz | 5 Dec 2006 23:34
Picon

Re: colon instead of shebang

On 12/4/06, Nicholas Burlett <nickburlett@...> wrote:
> I love using fish, but it seems to be missing a vital feature. It doesn't
> properly handle scripts that start with a colon (:) instead of a shebang
> (#!). I have several scripts in use at my office that are designed to work
> from Win32, Linux, Solaris, and HPUX, and they start with a colon. The bash,
> tcsh, and cmd shells treat this as meaning the script should be interpreted
> as an 'sh' script.

I must confess I've never heard of this feature before. Learn
something every day I guess. Fish uses the execve call from libs to
execute commands, so obviously this is not part of standard
functionality. Could you explain why this is useful?

> Could someone point me to the place in the code I need to modify to make
> this work?

The launch_process function in exec.c is the right place for this. If
the call to execve fails, open the file and check if the first line is
':\n' and if so, do a little magic.

Or perhaps the 'right place' would actually be to submit a patch to
the glibc people?

> Thanks,
> Nick
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
> _______________________________________________
> Fish-users mailing list
> Fish-users@...
> https://lists.sourceforge.net/lists/listinfo/fish-users

--

-- 
Axel

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Axel Liljencrantz | 6 Dec 2006 00:56
Picon

Re: very basic completion for Ant build files

Hi Nate,

On 11/28/06, Nate Drake <ndrake@...> wrote:
> Hi!
>
> I've created a initial (and very basic) pass at target name completion
> for Ant build files.  It still needs to grab the target descriptions
> as well as include targets included from other build files.    I based
> it off the ant completion provided by Zsh.

I don't have any experience with the ant build system, but the target
completions seem sane.

I renamed the function __fish_complete_ant_targets in order to avoid
future name clashes. Otherwise, the implementation looks fine. I've
added your completions to the darcs tree and they will be included in
the next release. Thanks!

>
> Comments, suggestions and improvements are welcome.

The obvious suggestion would be to add completions for various ant
switches. Additional patches are gladly accepted!

>
> Thanks!
>
> Nate
>
> ---
>
> # Function to parse a build.xml file generate a list of targets
> function __fish_complete_targets -d "Print list of targets from
> build.xml"
>     if test -f build.xml
>         sed -n "s/ *<target name=[\"']\([^\"']*\)[\"'].*/\1/p" < build.xml
>     end
> end
>
> complete -x -c ant -a "(__fish_complete_targets)"
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Fish-users mailing list
> Fish-users@...
> https://lists.sourceforge.net/lists/listinfo/fish-users
>

--

-- 
Axel

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Jason Grossman | 8 Dec 2006 08:55

fish still won't build on MacOSX

Hello again.

I used to be able to make fish build by adding -iconv to LDFLAGS in  
the Makefile, but with the latest version I can't even get as far as  
finding a Makefile.  Running configure gives:

> checking for library containing iconv_open... no
> configure: error: Could not find an iconv implementation, needed to  
> build fish

There's a Makefile.in, but I don't know how to change that  
appropriately.

I have iconv libraries in /usr/lib, by the way.

Thanks for any help.

Jason

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Axel Liljencrantz | 8 Dec 2006 11:09
Picon

Re: fish still won't build on MacOSX

On 12/8/06, Jason Grossman <JasonGrossman@...> wrote:
> Hello again.
>
> I used to be able to make fish build by adding -iconv to LDFLAGS in
> the Makefile, but with the latest version I can't even get as far as
> finding a Makefile.  Running configure gives:
>
> > checking for library containing iconv_open... no
> > configure: error: Could not find an iconv implementation, needed to
> > build fish
>
> There's a Makefile.in, but I don't know how to change that
> appropriately.
>
> I have iconv libraries in /usr/lib, by the way.
>
> Thanks for any help.

Could you check /usr/include/iconv.h and see if iconv_open is
implemented as a function or a macro?

If it is a macro, it should look something like

#define iconv_open( to, from ) blah blah blah

if it is a function, it should look more like

iconv_t iconv_open(const char *tocode, const char *fromcode);

If iconv_open is implemented as a macro, could you check what (if any)
iconv call is implemented as a function?

>
> Jason
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Fish-users mailing list
> Fish-users@...
> https://lists.sourceforge.net/lists/listinfo/fish-users
>

--

-- 
Axel

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Jason Grossman | 8 Dec 2006 21:48

Re: fish still won't build on MacOSX

Thanks for your message, Axel.

>> > checking for library containing iconv_open... no
>> > configure: error: Could not find an iconv implementation, needed to
>> > build fish
...
> Could you check /usr/include/iconv.h and see if iconv_open is
> implemented as a function or a macro?

It's a macro.

> If iconv_open is implemented as a macro, could you check what (if any)
> iconv call is implemented as a function?

functions:

extern iconv_t iconv_open (const char* tocode, const char* fromcode);
extern int iconvctl (iconv_t cd, int request, void* argument);
extern int iconv_close (iconv_t cd);
extern size_t iconv (iconv_t cd, const char* * inbuf, size_t  
*inbytesleft, char* * outbuf, size_t *outbytesleft);
extern void iconvlist (int (*do_one) (unsigned int namescount,
extern void libiconv_set_relocation_prefix (const char *orig_prefix, ...

macros:

#define iconv libiconv
#define iconvctl libiconvctl
#define iconvlist libiconvlist
#define iconv_close libiconv_close
#define iconv_open libiconv_open

By the way, it's a GNU version of inocv.h, with a copyright date of  
2003 but a file modification date of 2005.

Jason

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
David Bitseff | 8 Dec 2006 21:55

completions for kde dcop

Hi,

Here is a set of completions for the kde dcop command.  It reveals an array 
indexing bug in fish 1.22.1, but it still works.  I looked at a couple of 
examples, and I tried to follow the style a bit.

#
# Completions for the shell interface to the KDE DCOP server
#

function __fish_complete_dcop -d "Completions for kde dcop"
    set -l com (commandline)

    if eval "$com >/dev/null 2>&1"
	# use dcop output if available
	eval "$com | sed -e 's/^\w[^ ]* \(\w*\)([^)]*)\$/\1/'"

    else
	set -l op (commandline -o)

	if test (count $op) -le 2
	    # select an application
	    dcop | grep -- $op[-1]
	else
	    # select a function
	    set -l o
	    for i in (seq 1 (count $op))
		# strip the \ character which causes problems
		set o[$i] (echo $op[$i] | sed -e 's/\\\//g')
	    end

	    set -l idx (seq 2 (expr (count $o) - 1))
	    # list only function names
	    dcop $o[$idx] | grep -- $o[-1] | sed -e 's/^\w[^ ]* \(\w*\)([^)]*)$/\1/'
	end
    end
end

complete -c dcop -l help -s h -f -d (N_ "Show help about options")
complete -c dcop -l user -x -a '(awk -F: "{print \$1}" /etc/passwd)' -d (N_ "Connect to the given user's DCOP server")
complete -c dcop -l all-users -f -d (N_ "Send the same DCOP call to all users with a running DCOP server")
complete -c dcop -l list-sessions -f -d (N_ "List all active KDE session for a user or all users")
complete -c dcop -l session -x -a '(dcop --list-sessions --all-users | grep DCOP)' -d (N_ "Send to the given
KDE session")
complete -c dcop -l no-user-time -f -d (N_ "Don't update the user activity timestamp in the called application")
complete -c dcop -l pipe -f -d (N_ "Call DCOP for each line read from stdin")

complete -c dcop -x -a "(__fish_complete_dcop)"

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Fish-users mailing list
Fish-users@...
https://lists.sourceforge.net/lists/listinfo/fish-users
Axel Liljencrantz | 9 Dec 2006 00:26
Picon

Re: fish still won't build on MacOSX

On 12/8/06, Jason Grossman <JasonGrossman@...> wrote:
> Thanks for your message, Axel.
>
>
> >> > checking for library containing iconv_open... no
> >> > configure: error: Could not find an iconv implementation, needed to
> >> > build fish
> ...
> > Could you check /usr/include/iconv.h and see if iconv_open is
> > implemented as a function or a macro?
>
> It's a macro.
>
>
> > If iconv_open is implemented as a macro, could you check what (if any)
> > iconv call is implemented as a function?
>
> functions:
>
> extern iconv_t iconv_open (const char* tocode, const char* fromcode);
> extern int iconvctl (iconv_t cd, int request, void* argument);
> extern int iconv_close (iconv_t cd);
> extern size_t iconv (iconv_t cd, const char* * inbuf, size_t
> *inbytesleft, char* * outbuf, size_t *outbytesleft);
> extern void iconvlist (int (*do_one) (unsigned int namescount,
> extern void libiconv_set_relocation_prefix (const char *orig_prefix, ...
>
> macros:
>
> #define iconv libiconv
> #define iconvctl libiconvctl
> #define iconvlist libiconvlist
> #define iconv_close libiconv_close
> #define iconv_open libiconv_open
>
> By the way, it's a GNU version of inocv.h, with a copyright date of
> 2003 but a file modification date of 2005.

But, but, but, that's so _evil_. They use macros to rename _all_
functions into something else and provide phone headers to mask their
evil shenanigans. As near as I can tell, that makes it completely
impossible to detect a working iconv implementation using standard
autoconf macros.

Why??? :-(

Anyway, thank you for the information, I think I have everything I
need to fix this, I simply have to figure out a way to implement it.
In the meantime, you can remove this line from configure.ac:

AC_SEARCH_LIBS( iconv_open, iconv, , [AC_MSG_ERROR([Could not find an
iconv implementation, needed to build fish])] )

and run the 'autoconf' command, and then fish should compile just fine.

>
> Jason
>

--

-- 
Axel

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Tassilo Horn | 9 Dec 2006 00:33
Face
Picon
Gravatar

Completions for rubygems

Hi all,

here are completions for the gem command, the Ruby package manager.

Regards,
Tassilo


New patches:

[ruby-gems-completion.dpatch
Tassilo Horn <tassilo@...>**20061208232818] {
addfile ./share/completions/gem.fish
hunk ./share/completions/gem.fish 1
+# Completions for rubygem's `gem' command
+
+# Author: Tassilo Horn <tassilo@...>
+
+#####
+# Global options
+complete -c gem -n 'not __subcommand_given' -s h -l help -d "Print usage informations and quit"
+complete -c gem -n 'not __subcommand_given' -s v -l version -d "Print the version and quit"
+
+#####
+# Subcommands
+complete -c gem -n '__fish_use_subcommand' -xa 'build\t"'(_ "Build a gem from a gemspec")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'cert\t"'(_ "Adjust RubyGems certificate settings")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'check\t"'(_ "Check installed gems")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'cleanup\t"'(_ "Cleanup old versions of installed gems
in the local repository")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'contents\t"'(_ "Display the contents of the installed gems")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'dependency\t"'(_ "Show the dependencies of an
installed gem")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'environment\t"'(_ "Display RubyGems environmental information")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'help\t"'(_ "Provide help on the 'gem' command")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'install\t"'(_ "Install a gem into the local repository")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'list\t"'(_ "Display all gems whose name starts with STRING")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'query\t"'(_ "Query gem information in local or remote repositories")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'rdoc\t"'(_ "Generates RDoc for pre-installed gems")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'search\t"'(_ "Display all gems whose name contains STRING")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'specification\t"'(_ "Display gem specification (in yaml)")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'uninstall\t"'(_ "Uninstall a gem from the local repository")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'unpack\t"'(_ "Unpack an installed gem to the current directory")'"'
+complete -c gem -n '__fish_use_subcommand' -xa 'update\t"'(_ "Update the named gem (or all installed
gems) in the local repository")'"'
+
+#####
+# Subcommand switches
+
+# common opts
+set -l common_opt -c gem -n 'not __fish_use_subcommand' #'__subcommand_given'
+complete $common_opt -l source -d (N_ "Use URL as the remote source for gems") -x
+complete $common_opt -s p -l http-proxy -d (N_ "Use the given HTTP proxy for remote operations") -x
+complete $common_opt -l no-http-proxy -d (N_ "Use no HTTP proxy for remote operations")
+complete $common_opt -s h -l help -d (N_ "Get help on this command")
+complete $common_opt -s v -l verbose -d (N_ "Set the verbose level of output")
+complete $common_opt -l config-file -d (N_ "Use this config file instead of default") -x
+complete $common_opt -l backtrace -d (N_ "Show stack backtrace on errors")
+complete $common_opt -l debug -d (N_ "Turn on Ruby debugging")
+
+##
+# cert
+set -l cert_opt -c gem -n 'contains cert (commandline -poc)'
+complete $cert_opt -s a -l add -d (N_ "Add a trusted certificate") -x
+complete $cert_opt -s l -l list -d (N_ "List trusted certificates")
+complete $cert_opt -s r -l remove -d (N_ "Remove trusted certificates containing STRING") -x
+complete $cert_opt -s b -l build -d (N_ "Build private key and self-signed certificate for EMAIL_ADDR") -x
+complete $cert_opt -s C -l certificate -d (N_ "Certificate for --sign command") -x
+complete $cert_opt -s K -l private-key -d (N_ "Private key for --sign command") -x
+complete $cert_opt -s s -l sign -d (N_ "Sign a certificate with my key and certificate") -x
+
+##
+# check
+set -l check_opt -c gem -n 'contains check (commandline -poc)'
+complete $check_opt -s v -l verify -d (N_ "Verify gem file against its internal checksum") -x
+complete $check_opt -s a -l alien -d (N_ "Report 'unmanaged' or rogue files in the gem repository")
+complete $check_opt -s t -l test -d (N_ "Run unit tests for gem")
+complete $check_opt -s V -l version -d (N_ "Specify version for which to run unit tests")
+
+##
+# cleanup
+set -l cleanup_opt -c gem -n 'contains cleanup (commandline -poc)'
+complete $cleanup_opt -s d -l dryrun -d (N_ "Don't really cleanup")
+
+##
+# contents
+set -l contents_opt -c gem -n 'contains contents (commandline -poc)'
+complete $contents_opt -s l -l list -d (N_ "List the files inside a Gem")
+complete $contents_opt -s V -l version -d (N_ "Specify version for gem to view")
+complete $contents_opt -s s -l spec-dir -d (N_ "Search for gems under specific paths") -x
+complete $contents_opt -s v -l verbose -d (N_ "Be verbose when showing status")
+
+##
+# dependency
+set -l dep_opt -c gem -n 'contains dependency (commandline -poc)'
+complete $dep_opt -s v -l version -d (N_ "Specify version of gem to uninstall") -x
+complete $dep_opt -s r -l reverse-dependencies -d (N_ "Include reverse dependencies in the output")
+complete $dep_opt -l no-reverse-dependencies -d (N_ "Don't include reverse dependencies in the output")
+complete $dep_opt -s p -l pipe -d (N_ "Pipe Format (name --version ver)")
+
+##
+# environment
+set -l env_opt -c gem -n 'contains environment (commandline -poc)'
+complete $env_opt -xa 'packageversion\t"'(_ "display the package version")'" gemdir\t"'(_ "display
the path where gems are installed")'" gempath\t"'(_ "display path used to search for gems")'"
version\t"'(_ "display the gem format version")'" remotesources\t"'(_ "display the remote gem servers")'"'
+
+##
+# help
+set -l help_opt -c gem -n 'contains help (commandline -poc)'
+complete $help_opt -xa 'commands\t"'(_ "list all 'gem' commands")'" examples\t"'(_ "show some
examples of usage")'" build cert check cleanup contents dependency environment help install list query
rdoc search specification uninstall unpack update'
+
+##
+# install
+set -l install_opt -c gem -n 'contains install (commandline -poc)'
+complete $install_opt -s v -l version -d (N_ "Specify version of gem to install") -x
+complete $install_opt -s l -l local -d (N_ "Restrict operations to the LOCAL domain (default)")
+complete $install_opt -s r -l remote -d (N_ "Restrict operations to the REMOTE domain")
+complete $install_opt -s b -l both -d (N_ "Allow LOCAL and REMOTE operations")
+complete $install_opt -s i -l install-dir -d (N_ "Gem repository directory to get installed gems") -x
+complete $install_opt -s d -l rdoc -d (N_ "Generate RDoc documentation for the gem on install")
+complete $install_opt -l no-rdoc -d (N_ "Don't generate RDoc documentation for the gem on install")
+complete $install_opt -l ri -d (N_ "Generate RI documentation for the gem on install")
+complete $install_opt -l no-ri -d (N_ "Don't generate RI documentation for the gem on install")
+complete $install_opt -s f -l force -d (N_ "Force gem to install, bypassing dependency checks")
+complete $install_opt -l no-force -d (N_ "Don't force gem to install, bypassing dependency checks")
+complete $install_opt -s t -l test -d (N_ "Run unit tests prior to installation")
+complete $install_opt -l no-test -d (N_ "Don't run unit tests prior to installation")
+complete $install_opt -s w -l wrappers -d (N_ "Use bin wrappers for executables")
+complete $install_opt -l no-wrappers -d (N_ "Don't use bin wrappers for executables")
+complete $install_opt -s P -l trust-policy -d (N_ "Specify gem trust policy") -x
+complete $install_opt -l ignore-dependencies -d (N_ "Do not install any required dependent gems")
+complete $install_opt -s y -l include-dependencies -d (N_ "Unconditionally install the required
dependent gems")
+
+##
+# list
+set -l list_opt -c gem -n 'contains list (commandline -poc)'
+complete $list_opt -s d -l details -d (N_ "Display detailed information of gem(s)")
+complete $list_opt -l no-details -d (N_ "Don't display detailed information of gem(s)")
+complete $list_opt -s l -l local -d (N_ "Restrict operations to the LOCAL domain (default)")
+complete $list_opt -s r -l remote -d (N_ "Restrict operations to the REMOTE domain")
+complete $list_opt -s b -l both -d (N_ "Allow LOCAL and REMOTE operations")
+
+##
+# query
+set -l query_opt -c gem -n 'contains query (commandline -poc)'
+complete $query_opt -s n -l name-matches -d (N_ "Name of gem(s) to query on matches the provided REGEXP") -x
+complete $query_opt -s d -l details -d (N_ "Display detailed information of gem(s)")
+complete $query_opt -l no-details -d (N_ "Don't display detailed information of gem(s)")
+complete $query_opt -s l -l local -d (N_ "Restrict operations to the LOCAL domain (default)")
+complete $query_opt -s r -l remote -d (N_ "Restrict operations to the REMOTE domain")
+complete $query_opt -s b -l both -d (N_ "Allow LOCAL and REMOTE operations")
+
+##
+# rdoc
+set -l rdoc_opt -c gem -n 'contains rdoc (commandline -poc)'
+complete $rdoc_opt -l all -d (N_ "Generate RDoc/RI documentation for all installed gems")
+complete $rdoc_opt -l rdoc -d (N_ "Include RDoc generated documents")
+complete $rdoc_opt -l no-rdoc -d (N_ "Don't include RDoc generated documents")
+complete $rdoc_opt -l ri -d (N_ "Include RI generated documents")
+complete $rdoc_opt -l no-ri -d (N_ "Don't include RI generated documents")
+complete $rdoc_opt -s v -l version -d (N_ "Specify version of gem to rdoc") -x
+
+##
+# search
+set -l search_opt -c gem -n 'contains search (commandline -poc)'
+complete $search_opt -s d -l details -d (N_ "Display detailed information of gem(s)")
+complete $search_opt -l no-details -d (N_ "Don't display detailed information of gem(s)")
+complete $search_opt -s l -l local -d (N_ "Restrict operations to the LOCAL domain (default)")
+complete $search_opt -s r -l remote -d (N_ "Restrict operations to the REMOTE domain")
+complete $search_opt -s b -l both -d (N_ "Allow LOCAL and REMOTE operations")
+
+##
+# specification
+set -l specification_opt -c gem -n 'contains specification (commandline -poc)'
+complete $specification_opt -s v -l version -d (N_ "Specify version of gem to examine") -x
+complete $specification_opt -s l -l local -d (N_ "Restrict operations to the LOCAL domain (default)")
+complete $specification_opt -s r -l remote -d (N_ "Restrict operations to the REMOTE domain")
+complete $specification_opt -s b -l both -d (N_ "Allow LOCAL and REMOTE operations")
+complete $specification_opt -l all -d (N_ "Output specifications for all versions of the gem")
+
+##
+# uninstall
+set -l uninstall_opt -c gem -n 'contains uninstall (commandline -poc)'
+complete $uninstall_opt -s a -l all -d (N_ "Uninstall all matching versions")
+complete $uninstall_opt -l no-all -d (N_ "Don't uninstall all matching versions")
+complete $uninstall_opt -s i -l ignore-dependencies -d (N_ "Ignore dependency requirements while uninstalling")
+complete $uninstall_opt -l no-ignore-dependencies -d (N_ "Don't ignore dependency requirements
while uninstalling")
+complete $uninstall_opt -s x -l executables -d (N_ "Uninstall applicable executables without confirmation")
+complete $uninstall_opt -l no-executables -d (N_ "Don't uninstall applicable executables without confirmation")
+complete $uninstall_opt -s v -l version -d (N_ "Specify version of gem to uninstall") -x
+
+##
+# unpack
+set -l unpack_opt -c gem -n 'contains unpack (commandline -poc)'
+complete $unpack_opt -s v -l version -d (N_ "Specify version of gem to unpack") -x
+
+##
+# update
+set -l update_opt -c gem -n 'contains update (commandline -poc)'
+complete $update_opt -s i -l install-dir -d (N_ "Gem repository directory to get installed gems")
+complete $update_opt -s d -l rdoc -d (N_ "Generate RDoc documentation for the gem on install")
+complete $update_opt -l no-rdoc -d (N_ "Don't generate RDoc documentation for the gem on install")
+complete $update_opt -l ri -d (N_ "Generate RI documentation for the gem on install")
+complete $update_opt -l no-ri -d (N_ "Don't generate RI documentation for the gem on install")
+complete $update_opt -s f -l force -d (N_ "Force gem to install, bypassing dependency checks")
+complete $update_opt -l no-force -d (N_ "Don't force gem to install, bypassing dependency checks")
+complete $update_opt -s t -l test -d (N_ "Run unit tests prior to installation")
+complete $update_opt -l no-test -d (N_ "Don't run unit tests prior to installation")
+complete $update_opt -s w -l wrappers -d (N_ "Use bin wrappers for executables")
+complete $update_opt -l no-wrappers -d (N_ "Don't use bin wrappers for executables")
+complete $update_opt -s P -l trust-policy -d (N_ "Specify gem trust policy") -x
+complete $update_opt -l ignore-dependencies -d (N_ "Do not install any required dependent gems")
+complete $update_opt -s y -l include-dependencies -d (N_ "Unconditionally install the required
dependent gems")
+complete $update_opt -l system -d (N_ "Update the RubyGems system software")
+
}

Context:

[Fix off-by-one error making it impossible to edit the first element of an array using array slicing.
Thanks to useer for reporting this bug.
axel@...**20061208133136] 
[Bump version number
axel@...**20061207224603] 
[Update comlpetions for the help function
axel@...**20061206131020] 
[Make delete-or-exit work with multiline commands
axel@...**20061206122537] 
[Update user documentation - add section on internal completion functions, update todo list, minor
documentation tweaks
axel@...**20061206000810] 
[Add ant target completions, written by Nate Drake
axel@...**20061205235252] 
[Do not highlight parameters beginning with a '-' as switches if the '--' parameter has been given
axel@...**20061204120707] 
[Add completions for the env command
axel@...**20061204115838] 
[Add completions for the locate command
axel@...**20061204114205] 
[Add subcommand completion support to nice completions
axel@...**20061204111346] 
[Rename __fish_complete_directory to increase consistency
axel@...**20061202233433] 
[Flash commandline each time completion fails, not just the first one
axel@...**20061130235852] 
[Only flash commandline, not entire screen, when completion fails
axel@...**20061130235749] 
[Add completions for the find command
axel@...**20061130231414] 
[Make keyboard shortcuts that execute a shellscript function (^D, for example) a lot quicker. This is done
by not changing the titlebar message or reexecuting the prompt. A full repaint is still performed though.
This patch also changes the behaviour of the 'null' virtual keypress - it no longer reexecutes the prompt,
it only causes a repaint.
axel@...**20061201163009] 
[Improve kill completions on non-Debian systems (They where fine before on Debian systems)
axel@...**20061130163230] 
[Remove fallback of using globals when universal variables are broken in config file- fish does the
equivalen internally now
axel@...**20061130154838] 
[Use dircolors to set default colors for ls
axel@...**20061130154026] 
[Fix bug in save_function script
axel@...**20061130154006] 
[Fix bed indentation in a few places
axel@...**20061130132431] 
[Minor documentation, indentation tweaks
axel@...**20061129142102] 
[Makefile tweakage - make sure build messages suggest using correct make version
axel@...**20061129142004] 
[Add --without-gettext switch to optionally disable gettext support
axel@...**20061129141822] 
[Fix bug in save_function that causes it to not create missing directory entries before saving function
axel@...**20061129140229] 
[Replace all internal uses of grep with sgrep, which is a wrapper around grep that strips away any
GREP_OPTIONS. This is needed to avoid users who have added arbitrary switches to GREP_OPTIONS, thus
changing its behaviour.
axel@...**20061129140004] 
[Don't use GREP_OPTIONS in 'contains' function - this is a modified version of a patch by David Bitseff
axel@...**20061126131150] 
[Make sure that non-exporeted variables can shadow exported ones. This problem was reported by David Bitseff.
axel@...**20061126130943] 
[Add missing rulers in faq
axel@...**20061124170631] 
[Fix missing code snippet in faq. Thank you to Binny V A for reporting this bug.
axel@...**20061124164641] 
[Make completion descriptions on symlinks to directories have their own description
axel@...**20061123104145] 
[Fix bug where tab completions for implicit 'cd' would ignore symbolic links to directories
axel@...**20061123104023] 
[Drop the old, unused fish manual page
axel@...**20061122185443] 
[Simplify documentation building - again.
axel@...**20061122185333] 
[Add completions for the wajig command. These where generated by the create_wajig_completions.py
script, written by Reuben Thomas.
axel@...**20061120152707] 
[Touch up completions for builtin commands
axel@...**20061120152518] 
[Minor edits, whitespace fixes, etc.
axel@...**20061120131412] 
[Minor code edit - move a bit of code into its own function
axel@...**20061120131224] 
[Correctly handle multiple backslashes at end of line w.r.t. multiline handling
axel@...**20061120021934] 
[Fix missing man-page generation when building from darcs tree. Also simplifys doc generation a small bit.
axel@...**20061120135336] 
[Simplify Makefile by using a wildcard to specify help files
axel@...**20061120010620] 
[Add missing help text for the save_function function
axel@...**20061119233640] 
[Support bold and underlined characters in help output
axel@...**20061119232734] 
[Minor comment edits and removal of a warning
axel@...**20061118212459] 
[Move the event handler for fish_color_cwd to init file, so it is not autounloaded. Also cache output of
call to set_color command to improve performance a bit.
axel@...**20061118212147] 
[After processing a signal/event while waiting for commandline input, check the lookahead buffer for
inserted characters
axel@...**20061118211531] 
[Update documentation display code to run roff on the client system instead of pregenerating
documentation and compiling it into program binaries
axel@...**20061117162438] 
[Speed up history token search
axel@...**20061117233726] 
[Update todo list
axel@...**20061117150013] 
[Add missing include in screen.c
axel@...**20061117145925] 
[Tweak error messages in tokenizer a bit
axel@...**20061117145905] 
[Add a bugreport function for writing out a message about how to file bug reports
axel@...**20061117145825] 
[Complete using known repos in darcs
axel@...**20061116132251] 
[Make hitory token search interruptible. This code was written by Netocrat.
axel@...**20061117130612] 
[Don't intern as much completion data - this helps reduce memory usage when autounloading
axel@...**20061116130833] 
[Only do command description lookup if we have non-directory commands
axel@...**20061116130400] 
[Use halloc to simplyfy allocations in function.c
axel@...**20061115141649] 
[Drop search highlighting when exiting search mode. Thanks to Philip Ganchev and Martin Bähr for the bug reports.
axel@...**20061116125803] 
[A few additional input checks, minor code simplifications, and some indentation/documentation fixes
axel@...**20061115133046] 
[Remove getpgid prototype from exec.c - this prototype seems to be no longer missing
axel@...**20061115132959] 
[Make fish store universal variables locally if fishd can't be started - local changes are lost of the fishd
connection is restored
axel@...**20061115123447] 
[Use fcntl to automatically close fishd socken on exec instead of handling it manually
axel@...**20061115111857] 
[Add support for detecting and handling the screen-specific \ek\e\ escape sequence for setting the
titlebar message in the prompt calculating code.
axel@...**20061114162125] 
[TAG 1.22.1
axel@...**20061112211023] 
Patch bundle hash:
5af143b0cbe9a5edffcf52afca2fc6d5678b18dc
--

-- 
> Negerkuss
Rassist! Das heisst jetzt Farbigenliebkosung.
                     - Ulf Rund in de.talk.jokes -
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Fish-users mailing list
Fish-users@...
https://lists.sourceforge.net/lists/listinfo/fish-users
Jason Grossman | 9 Dec 2006 01:34

won't build on MacOSX

Dear Axel

The world is a bad place and your work-around doesn't work. :--(

> But, but, but, that's so _evil_. They use macros to rename _all_
> functions into something else and provide phone headers to mask their
> evil shenanigans. As near as I can tell, that makes it completely
> impossible to detect a working iconv implementation using standard
> autoconf macros.
>
> Why??? :-(
>
> Anyway, thank you for the information, I think I have everything I
> need to fix this, I simply have to figure out a way to implement it.
> In the meantime, you can remove this line from configure.ac:
>
> AC_SEARCH_LIBS( iconv_open, iconv, , [AC_MSG_ERROR([Could not find an
> iconv implementation, needed to build fish])] )
>
> and run the 'autoconf' command, and then fish should compile just  
> fine.

 > make clean
...
 > autoconf; and configure; and make
...
/usr/bin/ld: Undefined symbols:
_libiconv
_libiconv_close
_libiconv_open
collect2: ld returned 1 exit status
make: *** [fish] Error 1

:--(

Jason

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

Gmane