fs/udf: re-use hex_asc_upper_{hi,lo} macros
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 9 Jul 2014 12:35:30 +0000 (15:35 +0300)
committerJan Kara <jack@suse.cz>
Tue, 15 Jul 2014 20:40:24 +0000 (22:40 +0200)
This patch cleans up udf_translate_to_linux() a bit by using globally defined
macros instead of custom code.

We can use sprintf(buf, "%04X", ...) there as well, but this one faster.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/udf/unicode.c

index 44b815e57f9439116199f91b67489a98272272bc..afd470e588ffbbd24ec886b3e8a619833a5e3e9a 100644 (file)
@@ -412,7 +412,6 @@ static int udf_translate_to_linux(uint8_t *newName, uint8_t *udfName,
        int extIndex = 0, newExtIndex = 0, hasExt = 0;
        unsigned short valueCRC;
        uint8_t curr;
-       const uint8_t hexChar[] = "0123456789ABCDEF";
 
        if (udfName[0] == '.' &&
            (udfLen == 1 || (udfLen == 2 && udfName[1] == '.'))) {
@@ -477,10 +476,10 @@ static int udf_translate_to_linux(uint8_t *newName, uint8_t *udfName,
                        newIndex = 250;
                newName[newIndex++] = CRC_MARK;
                valueCRC = crc_itu_t(0, fidName, fidNameLen);
-               newName[newIndex++] = hexChar[(valueCRC & 0xf000) >> 12];
-               newName[newIndex++] = hexChar[(valueCRC & 0x0f00) >> 8];
-               newName[newIndex++] = hexChar[(valueCRC & 0x00f0) >> 4];
-               newName[newIndex++] = hexChar[(valueCRC & 0x000f)];
+               newName[newIndex++] = hex_asc_upper_hi(valueCRC >> 8);
+               newName[newIndex++] = hex_asc_upper_lo(valueCRC >> 8);
+               newName[newIndex++] = hex_asc_upper_hi(valueCRC);
+               newName[newIndex++] = hex_asc_upper_lo(valueCRC);
 
                if (hasExt) {
                        newName[newIndex++] = EXT_MARK;