[rtems commit] dosfs: msdos_filename_utf8_to_short_name_for_save
Sebastian Huber
sebh at rtems.org
Thu Mar 16 14:35:52 UTC 2017
Module: rtems
Branch: master
Commit: e625a57ff86683f731ef8b9ffe9c28e43d5ddd3c
Changeset: http://git.rtems.org/rtems/commit/?id=e625a57ff86683f731ef8b9ffe9c28e43d5ddd3c
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Thu Mar 16 07:37:20 2017 +0100
dosfs: msdos_filename_utf8_to_short_name_for_save
Simplify.
---
cpukit/libfs/src/dosfs/msdos_conv.c | 25 ++++++++++---------------
1 file changed, 10 insertions(+), 15 deletions(-)
diff --git a/cpukit/libfs/src/dosfs/msdos_conv.c b/cpukit/libfs/src/dosfs/msdos_conv.c
index 98f2e9b..d7ef97a 100644
--- a/cpukit/libfs/src/dosfs/msdos_conv.c
+++ b/cpukit/libfs/src/dosfs/msdos_conv.c
@@ -288,7 +288,13 @@ msdos_get_valid_utf16_filename_character (const uint16_t utf16_character)
static char
msdos_get_valid_codepage_filename_character (const uint8_t character)
{
- return codepage_valid_char_map[(unsigned int)character];
+ char c = codepage_valid_char_map[character];
+
+ if (c == 0) {
+ c = '_';
+ }
+
+ return c;
}
static ssize_t
@@ -556,7 +562,6 @@ msdos_filename_utf8_to_short_name_for_save (
size_t name_size = utf8_name_size;
char *dest_ptr = (char*)short_name;
unsigned int i;
- char c;
size_t name_size_tmp;
char name_to_format_buf[MSDOS_SHORT_NAME_LEN +1];
@@ -606,10 +611,8 @@ msdos_filename_utf8_to_short_name_for_save (
dest_ptr[0] = '_';
else if ( 0xE5 == *name_ptr )
dest_ptr[0] = 0x05;
- else if (0 != (c = msdos_get_valid_codepage_filename_character( *name_ptr ) ) )
- dest_ptr[0] = c;
else
- dest_ptr[0] = '_';
+ dest_ptr[0] = msdos_get_valid_codepage_filename_character(*name_ptr);
++name_ptr;
++returned_size;
--name_size;
@@ -617,11 +620,7 @@ msdos_filename_utf8_to_short_name_for_save (
* Validate and assign all other characters of the name part
*/
for (i = 1; i <= 7 && name_size && *name_ptr != '.'; ++i) {
- c = msdos_get_valid_codepage_filename_character ( *name_ptr );
- if (c != 0)
- dest_ptr[i] = c;
- else
- dest_ptr[i] = '_';
+ dest_ptr[i] = msdos_get_valid_codepage_filename_character(*name_ptr);
++name_ptr;
++returned_size;
--name_size;
@@ -644,11 +643,7 @@ msdos_filename_utf8_to_short_name_for_save (
* Copy in the extension part of the name, if any.
*/
for (; i <= 10 && name_size ; i++) {
- c = msdos_get_valid_codepage_filename_character ( *name_ptr);
- if (c != 0)
- dest_ptr[i] = c;
- else
- dest_ptr[i] = '_';
+ dest_ptr[i] = msdos_get_valid_codepage_filename_character(*name_ptr);
++name_ptr;
++returned_size;
name_size--;
More information about the vc
mailing list