skip_multibyte_char()

Christopher R. Hertel crh at NTS.Umn.EDU
Wed Apr 8 17:11:42 GMT 1998


Jeremy typed:
> 
> I think they can. One character that will never be in a multibyte
> character though is the dot '.' character - all the second bytes of
> multibyte characters start above 0x40 (dot is 0x2e). But there's
> nothing to stop the filename extension being multibyte. But this
> allows you to unambiguously find the dot at the start of an
> extension without having to do a multibyte string walk.
> 
> However, just treating the multibyte extension as 'n'
> bytes also works - as the 8.3 extension is on *bytes*,
> not characters.
> 

So, if I understand correctly, my test works.

Basically, I'm trying to find out if the extension was mangled.  Andrew's
version simply checked that there was a dot and that the part following
the dot was less than four characters (he used strlen(), though, so I
assume that this is three or less bytes rather than "characters"). 

My test does a string compare between the mangled and unmangled
extensions.  If they both exist, are both lower case, and match (the
mangled extension being three or less bytes) then I call it a match--which
means that the extension on the mangled name is *not* mangled. 

I think that this is is correct, as I believe that the purpose of Andrew's
test was to determine that the extension was not mangled.  My test is a 
bit more cautious in that it compares the extensions, but that's the only
real difference.

Basically, what it comes down to is this:

  Can a mangled name have an extension with a multi-byte characater (only
  one would fit) or would name mangling mangle such an extension? 

I think the answer is that the mangled extension won't have any 
multi-byte characters.

Chris -)-----

-- 
Christopher R. Hertel -)-----                   University of Minnesota
crh at nts.umn.edu              Networking and Telecommunications Services


More information about the samba-technical mailing list