GNU bug report logs -
#1808
23.0.60; picture-mode not considering double-width characters alignment
Previous Next
Reported by: poppyer <poppyer <at> gmail.com>
Date: Tue, 6 Jan 2009 17:15:03 UTC
Severity: normal
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Fri, 15 Jan 2016 10:28:52 +0200
with message-id <83vb6vfdq3.fsf <at> gnu.org>
and subject line Re: bug#1808: 23.0.60; picture-mode not considering double-width characters alignment
has caused the debbugs.gnu.org bug report #1808,
regarding 23.0.60; picture-mode not considering double-width characters alignment
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
1808: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=1808
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
This is not a new bug of EMACS 23; but it is there in EMACS22 for a
long time. In M-x picture-mode, emacs acts in a "replace" typing
mode, i.e. when you type a char, it replace the old one such that the
alignment is maintained.
But when mixing with double-width characters (e.g. CJK chars), one to
one char replacing become problematic, e.g. if we replace a
single-width char with a double-wdith char, the alignment will be
destroyed.
So, what I suggests is: if we replace a double-width to a
single-width, we should add a extra single-width space; and if we
replace a single-width to a double-witdh, we should check its
following char: if it is single-width, delete it; otherwise replace it
with a single-width space.
In GNU Emacs 23.0.60.1 (i386-apple-darwin9.6.0, NS apple-appkit-949.43)
of 2008-12-25 on neutron.local
Windowing system distributor `Apple', version 97.112.112.108.101.45.97.112.112.107.105.116.45.57.52.57.46.52.51
configured using `configure '--with-ns''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: zh_CN.UTF-8
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: nil
value of $XMODIFIERS: @im=fcitx
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: Group
Minor modes in effect:
erc-log-mode: t
erc-list-mode: t
erc-menu-mode: t
erc-autojoin-mode: t
erc-ring-mode: t
erc-networks-mode: t
erc-pcomplete-mode: t
erc-track-mode: t
erc-track-minor-mode: t
erc-match-mode: t
erc-button-mode: t
erc-fill-mode: t
erc-stamp-mode: t
erc-netsplit-mode: t
erc-irccontrols-mode: t
erc-noncommands-mode: t
erc-move-to-prompt-mode: t
erc-readonly-mode: t
gnus-undo-mode: t
recentf-mode: t
which-function-mode: t
show-paren-mode: t
mouse-sel-mode: t
global-hl-line-mode: t
pinbar-mode: t
shell-dirtrack-mode: t
tooltip-mode: t
tool-bar-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
global-auto-composition-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p
9 RET C-n C-n SPC F C-\ x t u SPC g f SPC j e r r SPC
w b SPC s h n SPC w d t SPC w f t c b SPC . RET y i
SPC j SPC y u SPC d SPC 1 s o v SPC g n g DEL SPC 4
s o v SPC u j SPC e SPC DEL e t SPC g SPC w h SPC A
A P DEL DEL DEL k h t SPC m g SPC DEL m g j SPC DEL
m g SPC DEL m h SPC t SPC g SPC w h SPC A P r a w k
SPC g SPC g h SPC DEL w h SPC x g SPC ? DEL . RET RET
ESC [ A ESC [ A C-e ESC [ D ESC [ D DEL t s SPC w y
SPC u t h p SPC ESC [ C DEL ESC [ B C-x k C-g C-x k
y q g C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
ESC < n RET SPC n SPC q ESC < ESC > ESC < ESC x n e
w s C-p C-p RET U N o o o N o o o ESC x n e w s C-p
C-p RET ESC 1 ESC < ESC > ESC < C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n ESC x r
e p o TAB r TAB RET
Recent messages:
Reading... done.
Preparing newsticker buffer...
Newsticker stopped!
Mark set [3 times]
Reading active file from gmail via nnimap...
nnimap: Checking mailboxes...done
Reading active file from freenews.netfront.net via nntp...
Reading active file from news.motzarella.org via nntp...
Checking new news...done
Making completion list...
[Message part 3 (message/rfc822, inline)]
> Date: Mon, 11 Jan 2016 20:28:07 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: poppyer <at> gmail.com, 1808 <at> debbugs.gnu.org
>
> > From: Alan J Third <alan <at> idiocy.org>
> > Cc: 1808 <at> debbugs.gnu.org, poppyer <at> gmail.com
> > Date: Sun, 10 Jan 2016 20:11:45 +0000
> >
> > I've written a small patch that I think fixes all these issues.
> >
> > It works out how many columns the characters that are about to be
> > over-written take up, then deletes them as before, and finally inserts a
> > number of spaces to fill the gap (if they're needed). Then the old code
> > inserts the new character.
> >
> > Spaces seemed the like the safest option, but it could be easily changed.
>
> Thanks, this looks correct to me. Please commit, and I think we can
> close the bug.
Fixed with commit b70dba4 for Emacs 25.1.
Closing.
This bug report was last modified 9 years and 133 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.