[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8619: 23.3.50; CCL coding system encoder doesn't run CCL_EOF_CODE on
From: |
Kazuhiro Ito |
Subject: |
bug#8619: 23.3.50; CCL coding system encoder doesn't run CCL_EOF_CODE on zero length string |
Date: |
Sat, 28 May 2011 06:46:07 +0900 |
User-agent: |
Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.8 EasyPG/1.0.0 Emacs/23.3.50 (i386-mingw-nt6.1.7601) MULE/6.0 (HANACHIRUSATO) |
I think the cause of the problem is that encode_codin_ccl() does not
call ccl_driver() for zero length string. Please see the attached
patch.
> When I start emacs (emacs-23 branch and trunk) with -Q and evaluate
> below code, I receive unexpected result.
>
> (let ((string ""))
> (define-ccl-program ccl-test
> '(1
> ((read r0))
> ((write "[EOF]"))))
> (make-coding-system 'ccl-test-cs 4 ?T "CCL_EOF_BLOCK tester"
> '(ccl-test . ccl-test))
> (list
> (ccl-execute-on-string 'ccl-test (make-vector 9 0) string)
> (decode-coding-string string 'ccl-test-cs)
> (encode-coding-string string 'ccl-test-cs)))
>
> It returns
> ("[EOF]" "[EOF]" "")
> But emacs22 returns
> ("[EOF]" "[EOF]" "[EOF]")
> and I expect such result.
--
Kazuhiro Ito
coding.c.diff
Description: Binary data