Closed Bug 10940 Opened 25 years ago Closed 25 years ago

JPN Plain text Mail send is broken

Categories

(MailNews Core :: Composition, defect, P1)

x86
Windows NT
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: momoi, Assigned: nhottanscp)

References

Details

** Observed with 7/30/99 Win32 M9 build **

This was not a problem with pre-necko 7/28/99 Win32 M9 build.
The problem is that the body content of Japanese mail is not
really Japanese.

This could be a composer problem.

1. Start New Mail compose window. (Plain text mail)
2. Set the Character set menu to Japanese (ISO-2022-JP)
3. Type in something in Japanese into body. Subject area does
   not take Japanese yet.
4. Send it and look at it with 4.x or 5.0 Messenger.
5. Note that instead of Japanese characters, you only see dots.

Naoki is on vacation. So I'm sending this over to Jean-F first and cc'ing
Tague.
This was working pre-Necko, and so I'll mark this a Necko bug.
Component: Internationalization → Necko
Priority: P3 → P1
Component: Necko → Composition
Summary: JPN Mail send is broken → Necko: JPN Mail send is broken
changing the component to composition.  I think mscott wanted to get rid of the
Necko component in the Mailnews product.

ducarroz is on vacation.  Noticed that this is marked a blocker.  Will cc: rhp
for any ideas.
Target Milestone: M9
Milestone set to M9. Really cannot do much without this working.
Status: NEW → ASSIGNED
Rich, could you take a look at it please. Does the character set is correctly set in the sent message?
I was looking at this...question, for step #3 how can I type Japanese
characters?

- Rich
I verified that the charset sent for the main mail message is ISO-2022-JP.
If I can get japanese characters input, I'll look into it further.

- rhp
Kat Momoi in IQA should be able to help you on this.  I'll let him know.
I've looked at this, and as far as I can tell Japanese mail is completely
broken.  I can't get as far as Momoi-san, I'm no Japanese input what-so-ever --
no dots or anything.

From tracing it, something seems to have interfered with the installation of the
TextEvent handlers for the Ender widget.  Text events aren't getting handled by
the observer.  This problem is unique to the mail compose and isn't
reproduceable in the HTML or plaintext editor components.
Blocks: 10942
I'm wondering if this is not a Charset menu problem.
I tried today's Win32 build and the first time I attempted to
send JPN mail body, it succeeded. I tried twice more since then
but I got the same result as originally reported for this bug,
i.e. just dots instead of real characters.
But one thing I noticed about the 1st time I tried and succeeded is
that when I went to select Japanese (ISO-2022-JP) before
sending the msg out, I had difficulty selecting this menu item --
I select it but the focus seems to go elsewhere when I let go
of the selection. Finally I think I succeeded in setting it
right and then sent it out. This was the message which showed OK.
The other 2 times I tried the same but did not observe the same
kind of selection problem in the first place, but the results were
both bad,
To re-cap the problem, the input via the Japanese IME is showing
correctly as they are entered into the mail body, but
as the mail is sent out, the characters arrive as dots.
Here's what the headers and body look like with the problem:

----------------------------------------------------------
To: momoi@netscape.com, momoi8@kaze.mcom.com
Subject: JPN test #3 8/2/99
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit


...................

----------------------------------------------------------

Note the charset header is correct but the conversion from the
input to ISO-2022-JP does not seem to occur properly . It' as if we
are not really engaging Unicode-to-ISO-2022-JP converter at all but
rather Unicode-to-default (ISO-8859-1) converter as the msg is
assembled and sent out.
Rich, you need Japanese Windows to do this input at step #3 since
it requires Japanese Input method which comes with Japanese
Windows.
Copy/paste has other problems and cannot be used for this either.
One possibility is to hard-code a send data/string in the
Message Send file. If you tell me which line of the MsgSend file
I can modify, I can send you a string to try.
Severity: blocker → critical
It turns out that there is another condition which must be
met to produce this bug.
When you open the Plain Text mail compose window, there is a pre-set
line of data which is read in from "defaultTextBody.html". It's
my habit to erase this line completely before I start inputting
Japanese data. That's when this bug occurs.
This bug does not seem to occur under any one of the following
conditions:

1. If you simply add Japanese text to the pre-set English string.
2. If you erase the pre-set string but add ASCII string data before
   or after the Japanese string portion.

Because there is a workaround, I'm lowering the status from Blocker to
Critical but it should be still M9.
Jay, in your Smoketest, do you erase the pre-set data line?
I debugged two cases using a Japanese text (three characters 0x3042, 0x3044,
0x3046).
The reason of the failure in the second case is because of an appended character
0x0A after the three Japanese characters.
The code 0xA0 (nbsp) cannot be mapped to Japanese charset (ISO-2022-JP), the
unicode converter fails. Then we fall back to use nsAutoCString(msgBody) then
the text turned to a garbage.
We need to know why Ender appends this extra character for the second case
(can Ender replace nbsp to space in case of plain text?). Also we might want to
improve the conversion not to abort in case of this kind of error.

Case1: Added Japanese
0B219480  42 30 44 30 46 30 2D 00 2D 00  B0D0F0-.-.
0B21948A  2D 00 20 00 54 00 68 00 69 00  -. .T.h.i.
0B219494  73 00 20 00 6D 00 65 00 73 00  s. .m.e.s.
0B21949E  73 00 61 00 67 00 65 00 20 00  s.a.g.e. .
0B2194A8  77 00 61 00 73 00 20 00 73 00  w.a.s. .s.
0B2194B2  65 00 6E 00 74 00 20 00 62 00  e.n.t. .b.
0B2194BC  79 00 20 00 4D 00 65 00 73 00  y. .M.e.s.
0B2194C6  73 00 65 00 6E 00 67 00 65 00  s.e.n.g.e.
0B2194D0  72 00 20 00 35 00 2E 00 30 00  r. .5...0.

Case2: Erased original text
0B4B9F00  0D 00 0A 00 42 30 44 30 46 30  ....B0D0F0
0B4B9F0A  A0 00 0D 00 0A 00 00 00 CD CD  ........??
I sometimes delete the preset data line, but not always.  Today i did the line,
and the problem was still there (build 1999080408).
Blocks: 11349
nhotta,
do you have any idea from where comes the extra 0x00A0?
Does the converted should be able to take care of this ascii value, maybe by converting it to 0x0020 instance of just
fail?
Does the proposed path for bug 6672 about the 0x0A fix also this bug?
I don't know where that A0 is comming from (possibly inside editor since it's
not typed by the user).
I think 8865 will be the solution for 6672. But 8865 is for HTML, I am not sure
if that also handles plain text.
Adding tague@netscape.com for his opinion.
Where does the HTML get converted to plain text?  Should that conversion
replace &nbsp with spaces instead of 0xA0?
I still don't understand why we get a &nbsp in the output. The user never type a
&nbsp and the default plain text page (defaultTextBody.html) doesn't contain
&nbsp!
Assignee: ducarroz → tague
Severity: critical → normal
Status: ASSIGNED → NEW
Depends on: 8865
The extra nbsp is added by ender when the body is empty (select all/delete).
At this point we have to problem:

1) Encoding failed because entity isn't working yet for Japanese (bug 8865)
2) For some reason, the extra nbsp isn't removed when the use type something in
the body as is the case with a US system (at least on Windows NT)

The work around today is to not delete the default body. As we have a work
around and as HTML japanese composition now works (with the same problem if you
delete the default body), I lower the severity of this bug to normal.

I have also fixed the problem that tague saw about plain text composition that
was totally dead. Now you can again compose in plain text mode.

I reassing the bug to tague as the real problem here is the non-support on
entities.
Is there a separate Ender bug filed about the extra nbsp that isn't removed
when the user types something in?
Target Milestone: M9 → M10
Since there is a know work-around, I'm not going to do a hack to get this to
work.  The real fix for this problem is slated for m10.
Status: NEW → ASSIGNED
No longer blocks: 10942
Target Milestone: M10 → M12
moving to m12.  i'm having too many other problems with typing plain text
japanese mail (focus not taking, characters not being displayed) which are
making this extremely difficult to reproduce.

i can't get japanese text into the text field reliably once the messenger
signature is deleted.  since there is a reasonably work around, i'm going to
move this out to m12 until the focus and typing issues get fixed.
Blocks: 12907
Assignee: tague → nhotta
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
This is going to be taken care by charset conversion fall back in message
compose. The change is not to abort the conversion in case of failure but skip
the unconvertable character and proceeed the conversion.
Summary: Necko: JPN Mail send is broken → JPN Plain text Mail send is broken
Changed the summary since this is not a Necko bug and plain text only.
Target Milestone: M12 → M11
M11
No longer depends on: 8865
Removing 8865 dependency, currently planed solution (skipping unmapped
characters) does not depends on 8865.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
The change was checked in, skip unconvertable chars while converting from
unicode. The change is applied to both plain and html body (so #6672 may be
verified and file a separate bug for entity specific issue).
I also applied the same change for message header (checked in today).

Later, add an option (by pref) to skip or convert to utf-8 instead.
Status: RESOLVED → REOPENED
** Checked with 9/16/99 Win32 M11 build **

The problem still exists with this build.
If you erase the pre-set characters and start fresh in the body,
no text gets sent out. (If there is some condition which is causing this
for this particular build, let me know.)
I'm re-opening this for the time being.
Resolution: FIXED → ---
The result was for Plain Text only. HTML mail does to have this
problem.
Status: REOPENED → ASSIGNED
Depends on: 13677
My change to skip convertable chars is working (e.g. Ascii+Japanese text sent as
ISO-8859-1 only sends out Ascii, Japanese chars are skipped).
The remaining problem is the same problem as #13677. After erasing the template
text, if any Ascii is typed followed by Japanese then it sends out the entire
text correctly. But typing text starting with Japanese doesn't send at all
because Ender generates an empty sting.
Put 13677 to depend.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago25 years ago
Resolution: --- → FIXED
13677 is fixed now
QA Contact: momoi → marina
Mrina, please verify this. I'll be off a week starting Monday.
We have not had a problem in plain text message send for a long time.
Marking the fix verified with 2/19/2000 Win32 build.
Status: RESOLVED → VERIFIED
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.