termux / termux-packages

A package build system for Termux.
https://termux.dev
Other
13.18k stars 3.02k forks source link

The fish shell does not work correctly #17

Closed fornwall closed 8 years ago

fornwall commented 9 years ago

It prints strange output on startup mostly.

fornwall commented 9 years ago

It prints

fish:fish:fish:fish:fish:fish:fish:fish:fish:fish:...

endlessly. By doing mkdir -p $HOME/.config/fish it reaches a running state (still after printing fish:fish:.. a lot of times.

fornwall commented 9 years ago

Fish uses wide character functions (wcsdup, wcstol, ..), could be due to Android lacking support of those.

yajo commented 8 years ago

Is there any progress on this? I'd absolutely love to have fish in my tablet!

fornwall commented 8 years ago

@Yajo Unfortunately not at the moment, will hopefully be able to look at this soon! So bash and zsh are the current options :).

sagebind commented 8 years ago

I get a similar output on my device, though I might have too little RAM for that result of finally working maybe? On my device it prints fish: repeatedly until it segfaults, presumably from using all of the RAM.

sagebind commented 8 years ago

I finally got some sensible output out of fish with the following command:

$ fish -c ls > fish.log
fish: Wide character -1093271008 has no narrow representation
fish: Wide character -1227358080 has no narrow representation
fish: Wide character -1225900412 has no narrow representation
fish: Wide character -1093271044 has no narrow representation
fish: Wide character -1226671224 has no narrow representation
fish: Wide character -1093271044 has no narrow representation
fish: Wide character -1226671224 has no narrow representation
fish: Wide character -1093271000 has no narrow representation
fish: Wide character -1202449640 has no narrow representation
fish: Wide character -1202444640 has no narrow representation
test: Expected a combining operator like '-a' at index 1TT

I'm no expert, but I'm guessing -1093271008 isn't a valid character code and shouldn't be negative. Perhaps this confirms the issue is related to lack of wide character support? If so, how glum does the future look for Fish on Termux? Fish is pretty integral to my terminal workflow...

ghost commented 8 years ago

edit - that wasn't the right link, removed, ended up learning enough to know I wasn't being helpful anyway. I was hoping for even a crappy way to make it work but was looking in the wrong area (eg iconv)

yajo commented 8 years ago

That one is supposed to be fixed.

sagebind commented 8 years ago

Since termux isn't useful to me unless I can use Fish (all my scripts and everything are written for it), I decided to explore further and play around. Here are some more interesting results:

$ export LANG=en_US.UTF-8
$ fish
: No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
Welcome convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishfish,convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fish convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishthe convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishfriendly convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishinteractive convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishshell
convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/onvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fish[convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convertonvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/honvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/honvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fish[convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishm convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishfor convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishinstructions convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishon convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishhow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishuse convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconvert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nar convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narto convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narnarrow convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narcharacter convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narstringom.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to nartermux/files/home/.convert 00afff convert  to narrow character stringom.termux/files/home/.config/fishcyan to narconfig/fishfish
test: Expected a combining operator like '-a' at index 1
test: Expected a combining operator like '-a' at index 1
test: Expected a combining operator like '-a' at index 1
u0_a274@localhost ~>

By setting $LANG manually, I managed to get Fish to neither crash, nor hang; however most builtin commands are still unable to produce any output, despite the prompt now working. So I tried to reduce the character set by setting $LANG to C:

$ export LANG=C
$ fish
: No such file or directory
: No such file or directory
: No such file or directory
Unable to open file '/data/data/com.termux/files/home/.config/fishnable to open file '/data/data/com.termux/files/home/>on@ig/fishT/fishd.tmp.P4dk3e'>t/fishd.tmp.4GCEIm': No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
: No such file or directory
Welcome to fish, the friendly interactive shell
Type <help for instructions on how to use fish
test: Expected a combining operator like '-a' at index 1
test: Expected a combining operator like '-a' at index 1
test: Expected a combining operator like '-a' at index 1
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted
$

Nope, that's worse. :frowning:

As a sidenote, trying to run with a higher debug level (fish -d 4) seems to just make Fish crash early, so I really have no idea what particular startup steps are causing each of the No such file or directory errors.

yajo commented 8 years ago

Maybe we could ping some Fish developer to see if they can provide more insight...

fornwall commented 8 years ago

Hi, I hope this have been fixed now! Update to latest versions of packages with

apt update && apt upgrade

which should pull in recent updates to both the libandroid-support and the fish package, which leaves me with a more friendly startup message:

Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
u0_a260@localhost ~> 

Let me know if this does not work for you, or if you encounter any remaining issue with fish!

yajo commented 8 years ago

Fixed, thanks!

yajo commented 8 years ago

The only issue now is that typing help does not open a browser because it says it lacks a $BROWSER env variable, but maybe that's not Termux problem...

Neo-Oli commented 8 years ago

@Yajo You need to have a browser installed for that. apt install w3m, apt install lynx or apt install elinks. It does however 404 for me when I try to open help.

fornwall commented 8 years ago

The problem with help seems to be that it tries to open

http://fishshell.com/docs/unknown/index.htm

instead of

http://fishshell.com/docs/current/index.html

This could be due to the way the fish shell is built from git master instead of a tagged release - I'll try to fix this!

fornwall commented 8 years ago

The help command has been fixed now to use a correct url (though you need a browser as @Neo-Oli said).

sagebind commented 8 years ago

You can also use termux-open-url. :wink:

fornwall commented 8 years ago

@coderstephen Perhaps that is the best solution to default to (and let a user override it with BROWSER environment variable if desirrd)!