/* * NAME: jfs_strfromUCS() * * FUNCTION: Convert little-endian unicode string to character string *
*/ int jfs_strfromUCS_le(char *to, const __le16 * from, int len, struct nls_table *codepage)
{ int i; int outlen = 0; staticint warn_again = 5; /* Only warn up to 5 times total */ int warn = !!warn_again; /* once per string */
if (codepage) { for (i = 0; (i < len) && from[i]; i++) { int charlen;
charlen =
codepage->uni2char(le16_to_cpu(from[i]),
&to[outlen],
NLS_MAX_CHARSET_SIZE); if (charlen > 0)
outlen += charlen; else
to[outlen++] = '?';
}
} else { for (i = 0; (i < len) && from[i]; i++) { if (unlikely(le16_to_cpu(from[i]) & 0xff00)) {
to[i] = '?'; if (unlikely(warn)) {
warn--;
warn_again--;
printk(KERN_ERR "non-latin1 character 0x%x found in JFS file name\n",
le16_to_cpu(from[i]));
printk(KERN_ERR "mount with iocharset=utf8 to access\n");
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.