bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#40914: 27.0.91; erc send is failing on pretest


From: andrés ramírez
Subject: bug#40914: 27.0.91; erc send is failing on pretest
Date: Tue, 28 Apr 2020 15:48:32 +0000

Hi Eli.
>>>>> "Eli" == Eli Zaretskii <eliz@gnu.org> writes:


[...]


    Eli> I cannot reproduce this, so I guess this is triggered by
    Eli> something specific in your environment.

My enviroment is going to be shared below.

    Eli> What does the following yield in a session that fails like
    Eli> this?

    Eli>   M-: (erc-coding-system-for-target nil) RET

--8<---------------cut here---------------start------------->8---
utf-8
--8<---------------cut here---------------end--------------->8---

It is needed a couple of files. file 1:
--8<---------------cut here---------------start------------->8---
;-*- mode: emacs-lisp; encoding: utf-8; -*-
(require 'erc nil 'nonil4noerror)

(when (fboundp 'erc)
  (require 'erc-fill)
  (require 'erc-join)             ; autojoin support is implemented by 
erc-join.el
  (require 'erc-menu)
                                        ;(require 'erc-sasl)
  (require 'erc-sasl "~/.emacs.d/lisp/erc-sasl.el" 'nonil4noerror)

  (when (boundp 'erc-sasl-server-regexp-list)
    (add-to-list 'erc-sasl-server-regexp-list "irc\\.freenode\\.net")
    )
  (erc-fill-mode t)
 
 (erc-autojoin-enable)           ; enable channel autojoin support, by default
  (setq
   erc-autojoin-channels-alist '(("freenode.net"
                                  ))
   erc-autojoin-timing 'ident
   erc-fill-function 'erc-fill-static
   erc-lurker-hide-list '("JOIN" "PART" "QUIT")
   erc-lurker-threshold-time 43200
                                        ;erc-prompt-for-nickserv-password nil)
   erc-server-reconnect-attempts 5
   erc-server-reconnect-timeout 3
   )

  (setq
   erc-nick-uniquifier "_"
   erc-kill-queries-on-quit t
   erc-server-coding-system (quote utf-8)
   )

  ;; check channels
  (erc-track-mode t)
  (setq erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE" ))

  ;; don't show any of this
  (setq erc-hide-list '("JOIN" "PART" "QUIT" "NICK"))

  (require 'erc-services)

                                        ; 
http://emacswiki.org/emacs/ErcChannelTracking
  (setq erc-format-query-as-channel-p t
        erc-track-priority-faces-only 'all
        erc-track-faces-priority-list '(erc-error-face
                                        erc-current-nick-face
                                        erc-keyword-face
                                        erc-nick-msg-face
                                        erc-direct-msg-face
                                        erc-dangerous-host-face
                                        erc-notice-face
                                        erc-prompt-face))
  (defun chacrape/erc-connect ()
    "Connect to IM networks using sasl on n800 do this from terminal."
    (interactive)
    (progn
                                        ; could not connect to here cos of sasl
      (erc-select :server "irc.freenode.net" :port 6667 :nick "inka" :password 
"mypwd")
      )
    )

  ;; notify me when someone mentions me (4 now just 4 maemo n800)
  (require 'erc-match)
  (setq erc-keywords '("n800" "n900" "emacs" "h3" "mesa" "lima" "mali"))
  (setq erc-pals '("pal1" "pal1"))
        
  (erc-match-mode 1)
  (defun erc-global-notify (matched-type nick msg)
    (interactive)
    (let (
          (previous-content)
          )    

      (when (and (eq matched-type 'current-nick)
                 (not (string-match "^NickServ" nick))
                 (not (string-match "^[sS]erver" nick))
                                        ;(not (string-match "^.*has changed 
mode for .*" nick)) ;this line is not working
                 (not (string-match (format "^%s!" (erc-current-nick)) nick)))
                                        ;(pushover-notify (concat "ERC: " 
(buffer-name)) (concat "<" (car (split-string nick "!")) "> " message))
        
        (if (string-match "arm" system-configuration)
            (shell-command-to-string  "if  which espeak  > /dev/null 2>&1 ; 
then espeak -v es --stdout message\ message | gst-launch-1.0 -v fdsrc ! 
wavparse ! audioconvert ! autoaudiosink; fi")
          (noemacswiki/espeak "new message "))
        (setq previous-content (with-temp-buffer "ERC Notifications"
                                                 (buffer-string)))
        (display-message-or-buffer (concat "ERC: " (buffer-name) ": <" (car 
(split-string nick "!")) "> " previous-content msg) "ERC Notifications")
        )
      )
    )
  (add-hook 'erc-text-matched-hook 'erc-global-notify)

  ;;overwrite for sasl
  (defun erc-login ()
    "Perform user authentication at the IRC server."
    (erc-log (format "login: nick: %s, user: %s %s %s :%s"
                     (erc-current-nick)
                     (user-login-name)
                     (or erc-system-name (system-name))
                     erc-session-server
                     erc-session-user-full-name))
    (if erc-session-password
        (erc-server-send (format "PASS %s" erc-session-password))
      (message "Logging in without password"))
    (when (and (featurep 'erc-sasl) (erc-sasl-use-sasl-p))
      (erc-server-send "CAP REQ :sasl"))
    (erc-server-send (format "NICK %s" (erc-current-nick)))
    (erc-server-send
     (format "USER %s %s %s :%s"
             ;; hacked - S.B.
             (if erc-anonymous-login erc-email-userid (user-login-name))
             "0" "*"
             erc-session-user-full-name))
    (erc-update-mode-line))

  (provide 'my-erc-setup)
  )
--8<---------------cut here---------------end--------------->8---

file 2 comes from
{https://gitlab.com/psachin/erc-sasl/-/blob/master/erc-sasl.el}. It is
the one referenced by emacswiki.

Launch emacs with:
emacs -Q
M-x load-file erc-sasl.el
M-x find-file  file 1. 
 Change user and password on funct chacrape/erc-connect
M-x eval-buffer  from file 1. 
M-x toggle-debug-on-error
M-x chacrape/erc-connect
M-x erc-join-channel "any". type hi and press Return key; *Backtrace* should 
appear.

Best Regards







reply via email to

[Prev in Thread] Current Thread [Next in Thread]