It's impossible to enter a literal tab (\t) in the shell
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 40/100
Research direction
The issue is about the shell's argument parsing, likely in the code that uses shlex. Look for where command-line input is split into arguments, possibly in a lexer or parser module. Investigate how escaped characters are handled and consider replacing shlex with strconv.Unquote as suggested. Test by trying to input a literal tab character and verifying the argument is correctly preserved.
Written by the indexing model from the issue text.
Description
It seems shlex has quite weird behaviour for escaped characters.
If you enter:
>>> command "a\tb"
The argument you get will be atb. Typing an actual literal tab character is ignored by the shell, so it's also not possible to enter a tab that way.
I don't see a very easy way to fix this, especially since shlex is not maintained anymore. Would you be okay with a PR that removes the dependency on shlex and uses strconv.Unquote() to handle escaping and quoting?
- Dominant language
- Go
- Stars
- 1.8k
- Forks
- 213
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from abiosoft/ishell
-
Difficulty 1/5 Under an hour Newbie friendliness 75/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Similar issues
-
[submenu] nil issue on ubuntu 26.04Possibly taken @egoist claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
prime-radiant-inc/evener#3873 ·
Maintainers usually reply within 1 day
-
extract_llm_sweep / cache_aware_summarizer prefix ask 400s when thinking.budget_tokens exceeds PrefixAskMaxTokensPossibly taken @amiddavid claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 85/100
rossoctl/context-guru#405 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
router-for-me/CLIProxyAPI#6423 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 2 days