Re: [PATCH] FAT: doesn't recognize "iocharset=utf8" and doesn't use NLS_DEFAULT

From: Eduard Bloch
Date: Sun Jun 20 2004 - 11:09:49 EST


#include <hallo.h>
* OGAWA Hirofumi [Sun, Jun 20 2004, 11:41:51PM]:

> Recently, the distributor has set "utf8" to NLS_DEFAULT, therefore,

Excuse my ignorance but I will comment this having things from various
HOWTOs in mind.

> FAT uses the "iocharset=utf8" as default. But, since "iocharset=utf8"
> doesn't provide the function (lower <-> upper conversion) which FAT
> needs, so FAT can't provide suitable behavior.

I (as user) am completely confused now. I though that "iocharset" was
the option to convert the (UCS) VFAT names from Unicode (on disk) to some
limited encoding represented the Unix system (eg. ISO-8859-1) and vice
versa; but it was limited to single-byte encodings, so "utf8" switch was
invented to do direct UCS<->UTF-8 conversion.

> Then, this patch does,
>
> - doesn't recognize "utf8" as "iocharset"
> - doesn't use NLS_DEFAULT as default "iocharset"

Is it possible to extend iocharset to allow UCS<->UTF-8 conversion?
Wouldn't this make the utf8 switch obsolete?

> - instead of NLS_DEFAULT, adds FAT_DEFAULT_CODEPAGE and
> FAT_DEFAULT_IOCHARSET

Excuse me, why do you need a special IOCHARSET setting for FAT
filesystems? Why should it be different from any other filesystems? Are
there any other filesystems except those from MS that support (widechar)
Unicode filenames on disk?

> NOTE: the following looks like buggy, so it's not recommended
>
> "codepage=437,iocharset=iso8859-1,utf8"
>
> however, some utf8 file name can handle. (in this case, it uses the
> table of iso8859-1 for lower <-> upper conversion)

What do you man with "lower <-> upper"? The letter case? Isn't this a
task for the FAT16-names access method?

> +config FAT_DEFAULT_CODEPAGE
> + int "Default codepage for FAT"
> + depends on MSDOS_FS || VFAT_FS
> + default 437
> + help
> + This option should be set to the codepage of your FAT filesystems.
> + It can be overridden with the 'codepage' mount option.

Should describe explicitely that only the short "MS-DOS" names are meant
here.

> +config FAT_DEFAULT_IOCHARSET
> + string "Default iocharset for FAT"
> + depends on VFAT_FS
> + default "iso8859-1"
> + help
> + Set this to the default I/O character set you'd like FAT to use.

What is the "I/O charset"? The description is completely useless for a
user, it does not explain what is converted and where and why and what
happens with the data or what is this good for. In contrary, I would
think that this is the conversion method from a local encoding to equaly
limited I/O encoding.

> + It should probably match the character set that most of your
> + FAT filesystems use, and can be overridded with the 'iocharset'
> + mount option for FAT filesystems. Note that UTF8 is *not* a
> + supported charset for FAT filesystems.

UTF-8 is not a charset, it is an encoding. Don't mix things together.

Regards,
Eduard.
--
Die ganz ganz Schlauen sehen um fünf Ecken - und sind geradeaus blind.
-- Benjamin Franklin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/