Subject: bug#47856: auto-fill-mode vs. oriental languages: no respect

From: Eli Zaretskii <[email-masked]>
Date: Sun, 18 Apr 2021 09:46:24 +0300

> From: 積丹尼 Dan Jacobson
>  <[email-masked]>
> Date: Sun, 18 Apr 2021 08:14:35 +0800
> 
> auto-fill-mode is an interactive compiled Lisp function in‘simple.el’. ...
> 
>    When Auto Fill mode is enabled, inserting a space at a column
>                                                ^^^^^[1]
>    beyond ‘current-fill-column’ automatically breaks the line at a
>    previous space.
>    ^^^^^^^^^^^^^^[2]
> 
> That is all fine and dandy. But it has no respect for oriental
> languages.
> 
> What if it bro
> ke a line like th
> is?
> 
> That's how it treats oriental languages.
> 
> What if emacs "helpfully" turned
> 
> ...if temperature > temp
>    then stop_nuclear_reactor()
> 
> into
> 
> ...if temp
>    erature > temp
>    then stop_nuclear_reactor()
> 
> Syntax error. Meltdown!
> 
> It's like if one wore braces for five years, and along came emacs and
> in one second put ugly gaps back in your teeth.
> 
> Here is my line, pre-victimization:
> 
>  <p>那麼請貴司， 走過去台電大樓坐下來合作， 透過台電內部精準座標， 把這些孤兒門牌， 盡量一一歸案。</p>
> 
> And here is the mangled result:
> 
>  <p>那麼請貴司， 走過去台電大樓坐下來合作， 透過台電內部精準座標， 把
>    這些孤兒門牌， 盡量一一歸案。</p>
> 
> In [2] we were promised "at a previous *space*".

Emacs by default employs the "kinsoku" rules for breaking lines in CJK
languages, when it fills text.  Isn't the place where it breaks the
line in this case according to Kinsoku rules? if you set
enable-kinsoku to nil, don't you get what you expected?  If so, this
seems to be a documentation issue.