;; Backtrace: Debugger entered--Lisp error: (wrong-type-argument stringp nil) make-network-process(:name "ELispDRClient" :buffer # :host "prime.dr.game.play.net" :port "4901" :filter dragonrealms-filter) (setq proc (make-network-process :name client-name :buffer buffer :host (gethash "GAMEHOST" drtable) :port (gethash "GAMEPORT" drtable) :filter (function dragonrealms-filter))) dragonrealms-connect("ELispDRClient" "dragonrealms" #) dragonrealms-mode() call-interactively(dragonrealms-mode) execute-extended-command(nil) call-interactively(execute-extended-command) ;; Code: (defun dragonrealms-mode () (interactive) (goto-char (point-min)) (setq drtable (make-hash-table :test #'equal)) (while (re-search-forward "^\\([^=\n]+\\)=\\([^\n]+\\)$" nil t) (puthash (match-string 1) (match-string 2) drtable)) (dragonrealms-connect "ELispDRClient" "dragonrealms" drtable)) (defun dragonrealms-connect (client-name buffer-or-name drtable) (message client-name) (setq buffer (get-buffer-create buffer-or-name)) (setq proc (make-network-process :name client-name :buffer buffer :host (gethash "GAMEHOST" drtable) :port (gethash "GAMEPORT" drtable) :filter #'dragonrealms-filter)) (set-marker (process-mark proc) 0 buffer) (process-send-string proc (concat (gethash "KEY" drtable) "\n")) (process-send-string proc (concat "/FE:" client-name "/XML\n")) proc) (defun dragonrealms-filter (proc input) (with-current-buffer (process-buffer proc) (let ((moving (= (point) (process-mark proc)))) (save-excursion (goto-char (process-mark proc)) (insert input) (set-marker (process-mark proc) (point))) (if moving (goto-char (process-mark proc))))))