emacs-devel
[Top][All Lists]
Advanced

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

set-process-filter-multibyte doesn't work well


From: MATSUYAMA Tomohiro
Subject: set-process-filter-multibyte doesn't work well
Date: Sat, 08 Mar 2008 22:51:58 +0900 (JST)

Hi,

GUD and other extensions using comint have a problem that
it doesn't treat multibyte string on Emacs 23.0.60.1 (and cvs head).

So, I tried to fix this problem by adding
set-process-filter-multibyte into comint-exec like:

    (let ((proc
           (if (consp command)
               (open-network-stream name buffer (car command) (cdr command))
             (comint-exec-1 name buffer command switches))))
      (set-process-filter proc 'comint-output-filter)
+     (set-process-filter-multibyte proc t)
      (make-local-variable 'comint-ptyp)
      (setq comint-ptyp process-connection-type) ; t if pty, nil if pipe.
      ;; Jump to the end, and set the process mark.

But it doesn't work well. After a while, I realized that
set-process-filter-multibyte affects on nothing.

(require 'comint)
(make-comint "jdb" "jdb")
(setq proc (get-process "jdb"))
(set-process-filter-multibyte proc t)
(process-filter-multibyte-p proc) ;; => nil

I don't understand what happened in Fset_process_filter_multibyte :-(

  CHECK_PROCESS (process);
  p = XPROCESS (process);
  p->filter_multibyte = !NILP (flag);
+ printf("%d %d\n", !NILP (flag), p->filter_multibyte); /* 1 0 */
  setup_process_coding_systems (process);

Please help me.

Regards,
Matsuyama




reply via email to

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