[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: set-process-filter-multibyte doesn't work well
From: |
Andreas Schwab |
Subject: |
Re: set-process-filter-multibyte doesn't work well |
Date: |
Sat, 08 Mar 2008 16:45:08 +0100 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.1 (gnu/linux) |
MATSUYAMA Tomohiro <address@hidden> writes:
> (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);
Does this patch help? Bitfields declared as int can be either signed or
unsigned, and signed one-bit fields are not particular useful.
--- process.h 09 Jan 2008 10:29:39 +0100 1.41
+++ process.h 08 Mär 2008 16:41:00 +0100
@@ -102,28 +102,28 @@ struct Lisp_Process
/* Should we delay reading output from this process.
Initialized from `Vprocess_adaptive_read_buffering'.
0 = nil, 1 = t, 2 = other. */
- int adaptive_read_buffering : 2;
+ unsigned int adaptive_read_buffering : 2;
/* Skip reading this process on next read. */
- int read_output_skip : 1;
+ unsigned int read_output_skip : 1;
/* Non-nil means kill silently if Emacs is exited.
This is the inverse of the `query-on-exit' flag. */
- int kill_without_query : 1;
+ unsigned int kill_without_query : 1;
/* Non-nil if communicating through a pty. */
- int pty_flag : 1;
+ unsigned int pty_flag : 1;
/* Flag to set coding-system of the process buffer from the
coding_system used to decode process output. */
- int inherit_coding_system_flag : 1;
+ unsigned int inherit_coding_system_flag : 1;
/* Flag to decide the multibyteness of a string given to the
filter (if any). It is initialized to the value of
`default-enable-multibyte-characters' when the process is
generated, and can be changed by the function
`set-process-filter-multibyte'. */
- int filter_multibyte : 1;
+ unsigned int filter_multibyte : 1;
/* Record the process status in the raw form in which it comes from `wait'.
This is to avoid consing in a signal handler. The `raw_status_new'
flag indicates that `raw_status' contains a new status that still
needs to be synced to `status'. */
- int raw_status_new : 1;
+ unsigned int raw_status_new : 1;
int raw_status;
};
Andreas.
--
Andreas Schwab, SuSE Labs, address@hidden
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."