mirror of
https://github.com/shazow/ssh-chat.git
synced 2025-04-13 07:37:17 +03:00
sshchat, chat: Override terminal echo and do our own echo
This commit is contained in:
parent
6d3fce47cc
commit
eb10bad08e
11
chat/room.go
11
chat/room.go
@ -90,12 +90,7 @@ func (r *Room) HandleMsg(m message.Message) {
|
||||
user := m.To()
|
||||
user.Send(m)
|
||||
default:
|
||||
fromMsg, skip := m.(message.MessageFrom)
|
||||
var skipUser *message.User
|
||||
if skip {
|
||||
skipUser = fromMsg.From()
|
||||
}
|
||||
|
||||
fromMsg, _ := m.(message.MessageFrom)
|
||||
r.history.Add(m)
|
||||
r.Members.Each(func(_ string, item set.Item) (err error) {
|
||||
user := item.Value().(*Member).User
|
||||
@ -105,10 +100,6 @@ func (r *Room) HandleMsg(m message.Message) {
|
||||
return
|
||||
}
|
||||
|
||||
if skip && skipUser == user {
|
||||
// Skip self
|
||||
return
|
||||
}
|
||||
if _, ok := m.(*message.AnnounceMsg); ok {
|
||||
if user.Config().Quiet {
|
||||
// Skip announcements
|
||||
|
9
host.go
9
host.go
@ -175,6 +175,15 @@ func (h *Host) Connect(term *sshd.Terminal) {
|
||||
term.SetPrompt(GetPrompt(user))
|
||||
user.SetHighlight(user.Name())
|
||||
}
|
||||
|
||||
// Gross hack to override line echo in golang.org/x/crypto/ssh/terminal
|
||||
term.Write([]byte{
|
||||
27, // keyEscape
|
||||
'[', 'A', // Up
|
||||
27, // keyEscape
|
||||
'[', '2', 'K', // Clear line
|
||||
})
|
||||
// May the gods have mercy on our souls.
|
||||
}
|
||||
|
||||
err = h.Leave(user)
|
||||
|
Loading…
x
Reference in New Issue
Block a user