[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: |
Stefan Monnier |
Subject: |
Re: set-process-filter-multibyte doesn't work well |
Date: |
Sat, 08 Mar 2008 15:57:10 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
>> (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 :-(
I'd like to phase out process-filter-multibyte, so could you try to
write the code, without (set-)process-filter-multibyte, which (ideally)
should do the right thing, and then make a bug-report if it doesn't do
what it should?
The "multibyteness of a process filter" should just depend on the coding
system used and nothing more.
> Does this patch help? Bitfields declared as int can be either signed or
> unsigned, and signed one-bit fields are not particular useful.
This is a good change, please install it,
Stefan
> --- 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."