Mantis - Squeak 5.2
Viewing Issue Advanced Details
2618 any minor always 02-01-06 06:28 02-20-06 05:45
0002618: FileList2 Listing of SuperSwiki may cause walkback
Current implementation assumes shift_jis encoding is used in wire protocol between SuperSwiki server and client. Some existing projects encoded in other than shift_jis cause walkback.
At this time listing Bob's SuperSwiki causes walkback because of [^]
Proposed patch/enhancement is attached (SuperSwikiString-KR.cs):
This patch introduces 'encodingName' for ServerDirectory entry
(even in knownServer entry) so that appropriate encoding can be specified for each server.
If not specified, encoding is determined based on current locale.
 SuperSwikiString-KR.cs [^] (12,194 bytes) 02-01-06 06:28
 SuperSwikiString-KR.2.cs [^] (12,196 bytes) 02-20-06 05:43

02-04-06 17:49   
Rationale for proposed change (long):

+ SuperSwiki server and wire protocol don't assume speicific encoding. On publish of project to server, octet string in wire protocol is used as-is for project name by server. So projects named with Latin1 characters (0x01-0xFF) have been published on your servers (Bob's for instance)
As Server send out the same octet string for project name in wire protocol, client must not decode it. (see code of Squeakland04 or 3.8-6665)

+ To employ SuperSwiki in Japan, we needed Shift-JIS encoding (one Kanji character is represented by two octets 0xA000-0xFFFF) in client side.
Bunch of projects have been publihsed on our Swiki instances in Japan.
We ignore 0xA0-0xF0 characters in Latin1 as Japanese seldom use them.

The Shift-JIS encoding was implemented in changeset "10nihongo7SuperSwiki" ,that was originally developed for our domestic "Nihongo7" release. But the patch (even with preamble: "it should not be the part of world wide release as is" !) has been applied to SqL05 AS-IS.
That is direct cause for the problem I reported in this entry.

+ Though root cause for the problem is wire protocol without considering I18n, we can't change it because of existing assets of projects (named in both Latin1 and Shift-JIS ).
My patch is workaround for this situation. It will work in typical usage even without encodingName in ServerDirectory entry:
  --- In culture using Latin1 locale, Latin1 encoding is used. (solution for original problem)
  --- In Japanese using Ja locale, Shift-JIS encoding is used.

Even in non-typical usage (Latin1-server/ja-client for instance), it will be better as workaroud provided:
  --- specifiy encodingName in ServerDirectory entry
  --- change locale

02-20-06 05:45   
As bug with SuperSwikiString-KR.cs about uploading project was found,
I uploaded revised patch, SuperSwikiString-KR.2.cs