Add a hook for loading of a Unicode -> char conversion routine as a kld at a

run-time. This is temporary solution until proper kernel Unicode interfaces
are in place and as such was purposely designed to be as tiny as possible
(3 lines of the code not counting comments). The port with conversion routines
for the most popular single-byte languages will be added later today

Reviewed by:	bp, "Michael C . Wu" <keichii@iteration.net>
Approved by:	bp
This commit is contained in:
Maxim Sobolev 2001-02-13 11:48:31 +00:00
parent 9e2930bdb1
commit c4fefc4887
2 changed files with 24 additions and 0 deletions

View File

@ -46,6 +46,14 @@
#include <isofs/cd9660/iso.h>
/*
* XXX: limited support for loading of Unicode
* conversion routine as a kld at a run-time.
* Should be removed when native Unicode kernel
* interfaces have been introduced.
*/
u_char (*cd9660_wchar2char)(u_int32_t wchar) = NULL;
/*
* Get one character out of an iso filename
* Obey joliet_level
@ -72,6 +80,10 @@ isochar(isofn, isoend, joliet_level, c)
*c = *isofn;
break;
}
/* XXX: if Unicode conversion routine is loaded then use it */
if (cd9660_wchar2char != NULL)
*c = cd9660_wchar2char((*(isofn - 1) << 8) | *isofn);
return 2;
}

View File

@ -46,6 +46,14 @@
#include <isofs/cd9660/iso.h>
/*
* XXX: limited support for loading of Unicode
* conversion routine as a kld at a run-time.
* Should be removed when native Unicode kernel
* interfaces have been introduced.
*/
u_char (*cd9660_wchar2char)(u_int32_t wchar) = NULL;
/*
* Get one character out of an iso filename
* Obey joliet_level
@ -72,6 +80,10 @@ isochar(isofn, isoend, joliet_level, c)
*c = *isofn;
break;
}
/* XXX: if Unicode conversion routine is loaded then use it */
if (cd9660_wchar2char != NULL)
*c = cd9660_wchar2char((*(isofn - 1) << 8) | *isofn);
return 2;
}