lkml.org 
[lkml]   [2007]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] Smackv10: Smack rules grammar + their stateful parser
    From
    On Tue, Nov 06, 2007 at 02:34:46PM +0100, Adrian Bunk wrote:
    > On Tue, Nov 06, 2007 at 07:49:26AM -0500, Kyle Moffett wrote:
    > > On Nov 06, 2007, at 07:23:36, Ahmed S. Darwish wrote:
    > >> On 11/6/07, Adrian Bunk <bunk@kernel.org> wrote:
    > >>> On Tue, Nov 06, 2007 at 01:34:05PM +0200, Ahmed S. Darwish wrote:
    > >>>> As far as I understand the problem now, isspace() accepts the 0xa0
    > >>>> character which might collide with some of UTF-8 encoded characters
    > >>>> cause the high bit is set.
    > >>
    > >> I admit I'm not experienced in such encoding stuff, but shouldn't the
    > >> ASCII and the ASCII-compatible UTF-8 encodings be enough for the labels?
    > >>
    > >>> It would not work if someone would e.g. give you UTF-16 encoded strings,
    > >>> but I don't see this happening in practice.
    > >>
    > >> Won't this complicate the code too much ?
    > >
    > > Well the VFS (for example) certainly doesn't support any encodings other
    > > than various extended-ASCII forms (which includes UTF-8). Something like
    > > UTF-16 has extra null characters in-between every normal character, and as
    > > such would fail completely if passed to the VFS.
    >
    > Good point.
    >
    > > Personally I think that isspace() accepting character 0xA0 is a bug, as
    > > there are several variants of extended ASCII only one of which has that
    > > character as a space. Others have it as ?? (accented A), etc.
    >
    > But even then Smack would still have a similar problem with isgraph().
    >

    Great, To summarize the discussion. Will there be a problem in
    accepting ASCII and the UTF-8 ASCII _subset_ _only_ and return
    -EINVAL for all other cases/ecnodings ?.

    i.e. The fragment I sent in a previous message:

    /* Filter UTF-8 non-ascii compatible bytes (> 0x7F) */
    if (!isascii(c)) return -EINVAL;
    /* Filter unwanted ascii chars */
    if (!isspace(c) && !isgraph(c)) return -EINVAL;

    > > In addition
    > > the "canonical" internal text format of the kernel is UTF-8 as that
    > > encoding can represent any character in any other encoding and it is
    > > backwards-compatible with traditional ASCII.
    > >
    > > Cheers,
    > > Kyle Moffett-
    >
    > cu
    > Adrian
    >

    --
    Ahmed S. Darwish
    Homepage: http://darwish.07.googlepages.com
    Blog: http://darwish-07.blogspot.com
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-11-06 15:09    [W:7.752 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site