diff --git a/chat/room.go b/chat/room.go index 71e3171..4fb56dd 100644 --- a/chat/room.go +++ b/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 diff --git a/host.go b/host.go index 068b969..9db1479 100644 --- a/host.go +++ b/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)