[patch] forward port of 16 bit nls (vfat, ntfs, ncpfs, joliet)

From: Urban Widmark (urban@svenskatest.se)
Date: Mon Jul 03 2000 - 12:17:05 EST


Hello

These patches are my second attempt at a forward port of the 16bit nls
support in 2.2. I believe this is ok, but it would be nice to get some
feedback from people using these filesystems with nls (most wanted:
non-cp850/iso8859-1 testers) before suggesting they are included in
2.4.0-testX. Cc to maintainers and others that have shown interest before.

Patches vs 2.4.0-test3-pre2, but also applies fine vs 2.4.0-test1.

nls16-2.4.0-test3-pre2.patch:
* Adds new conversion routines for charset <-> unicode to handle variable
  sized characters. Compared to 2.2, adds a returnvalue for failures.
* Adds conversion routines for making characters upper/lower case since
  the old array solution isn't practical past 8 bit.
* Sets CONFIG_NLS_DEFAULT to iso8859-1 by default since this value is
  used as "iocharset" (= local display charset) and not as the
  on-disk/remote codepage. 2.2 uses cp437.

nls16-new-charsets-2.4.0-test3-pre2.patch:
* New charsets from 2.2 + updated Configure.help
    cp932 (sjis, euc-jp), cp936 (gb2312), cp949 (euc-kr), cp950 (big5)
  You only need this if you want to use these charsets, applies on top of
  the other nls16-* patch.

abc-charset.patch:
* For testing fs handling of 16bit nls on an iso8859-1 display, doubles
  all a-zA-Z characters. You probably don't need this.

The patches are a bit to large to send to the list. For now they can be
downloaded from here:
http://www.hojdpunkten.ac.se/054/nls16-2.4.0-test3-pre2.patch.gz
        (6843 bytes)
http://www.hojdpunkten.ac.se/054/nls16-new-charsets-2.4.0-test3-pre2.patch.gz
        (508184 bytes)
http://www.hojdpunkten.ac.se/054/abc-charset.patch
        (14291 bytes)

Notes:
------

vfat:
+ Assumes that the on-disk characters are always 1 byte.
  (makes things simpler and I believe it is true).
+ Tested ok with "abc" charset and compared output in dosemu.
  (aauuttooeexxeecc.bbaatt, looks almost like finnish ... :)

joliet:
+ Tested ok: (I hope)
  mkisofs -a -J -o ../cdrom.iso `pwd`
  losetup /dev/loop0 <some_path>
  mount -t iso9660 -o norock,iocharset=abc /dev/loop0 /mnt/tmp

ncpfs:
+ Assumes only 8bit nls codepages are used. Will most likely fail (not
  crash, but fail) if the local page/charset is a 16bit charset.
+ Not tested, but very similar to the 2.2 change (and the previous version
  of this that Petr thought was ok ... for 8bit that is)

ntfs:
+ Looks funny with it's own conversion routines (util.c: ntfs_dupuni288591)
  I think it could be converted to use standard nls_ routines.
+ Not tested, but identical to the 2.2 change.
+ ntfs is wierd anyway ... linux/fs/ntfs/fs.c:
      if(vol->nct & nct_utf8 & (nct_map | nct_uni_xlate)){
  hmm ...

Other nls related patches I know of that have been "flying around" that
are not included:
+ make msdos fs support nls too in 2.4. This needs char2lower/upper
  fixing as done by these patches, and I think Andrzej wanted more
  testing.
+ make vfat nls in 2.2 work like vfat in 2.4. (Andrzej again)

/Urban

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Jul 07 2000 - 21:00:13 EST