]> arthur.barton.de Git - netatalk.git/commit
Consolidate all Netatalk specific conversion in pull_charset_flags()
authorFrank Lahm <franklahm@googlemail.com>
Mon, 31 Dec 2012 13:50:50 +0000 (14:50 +0100)
committerRalph Boehme <sloowfranklin@gmail.com>
Wed, 9 Jan 2013 13:53:38 +0000 (14:53 +0100)
commit06a9f8968af760355d141327a3ae04ef587fc370
tree7ff1e42885b564eccbb3ac701948f3f62475b1ef
parent9f957894d9a60f32adc56edddf72fa767ded8219
Consolidate all Netatalk specific conversion in pull_charset_flags()

Netatalk specific conversion like '/' <-> ':' and CAP de-/encoding
was performed partially in pull_charset_flags() and push_charset_flags().
The resulting code was unmaintainable and as a result it failed to
to the proper conversion of ':' to '/' for an UTF8 -> UTF8-MAC
conversion.

Moving all Netatalk specific conversion to pull_charset_flags()
we can now easily do the necessary conversion in one place.

* ":xx" CAP sequences are decoded if CONV_UNESCAPEHEX is used
* ':' and '/' are CAP encoded if CONV_ESCAPEHEX is used
* ':' is converted to '/' only for a conversion whos target charset
  is UTF8-MAC and whos source charset is NOT UTF8-MAC
* '/' is converted to ':' only for a conversion whos source charset
  is UTF8-MAC and whos target charset is NOT UTF8-MAC
* a leading '.' is CAP encoded if CONV_ESCAPEDOTS is used

This consolidation obsoletes both CONV_ALLOW_COLON and CONV_ALLOW_SLASH
conversion options.
bin/misc/netacnv.c
include/atalk/unicode.h
libatalk/unicode/charcnv.c
libatalk/util/netatalk_conf.c
libatalk/vfs/ea_ad.c