1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
From 825f4980d59f780e906fc2d6b55fe6646df1b415 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Tue, 4 Jun 2019 10:40:53 -0700
Subject: [PATCH] Use static inline function instead of statement expression
Upstream: 91978a272e4fe465c3a754a7342b496ff9e49211
---
src/lfn.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/lfn.c b/src/lfn.c
index b33e125..9727ab3 100644
--- a/src/lfn.c
+++ b/src/lfn.c
@@ -74,14 +74,6 @@ static unsigned char fat_uni2esc[64] = {
/* for maxlen param */
#define UNTIL_0 INT_MAX
-/* Convert name part in 'lfn' from unicode to ASCII */
-#define CNV_THIS_PART(lfn) \
- ({ \
- unsigned char __part_uni[CHARS_PER_LFN*2]; \
- copy_lfn_part( __part_uni, lfn ); \
- cnv_unicode( __part_uni, CHARS_PER_LFN, 0 ); \
- })
-
/* Convert name parts collected so far (from previous slots) from unicode to
* ASCII */
#define CNV_PARTS_SO_FAR() \
@@ -155,6 +147,14 @@ static void copy_lfn_part(unsigned char *dst, LFN_ENT * lfn)
memcpy(dst + 22, lfn->name11_12, 4);
}
+/* Convert name part in 'lfn' from unicode to ASCII */
+static inline char *cnv_this_part(LFN_ENT *lfn)
+{
+ unsigned char __part_uni[CHARS_PER_LFN*2];
+ copy_lfn_part( __part_uni, lfn );
+ return cnv_unicode( __part_uni, CHARS_PER_LFN, 0 );
+}
+
static void clear_lfn_slots(int start, int end)
{
int i;
@@ -222,7 +222,7 @@ void lfn_add_slot(DIR_ENT * de, off_t dir_offset)
* display the name) */
printf("A new long file name starts within an old one.\n");
if (slot == lfn_slot && lfn->alias_checksum == lfn_checksum) {
- char *part1 = CNV_THIS_PART(lfn);
+ char *part1 = cnv_this_part(lfn);
char *part2 = CNV_PARTS_SO_FAR();
printf(" It could be that the LFN start bit is wrong here\n"
" if \"%s\" seems to match \"%s\".\n", part1, part2);
@@ -262,7 +262,7 @@ void lfn_add_slot(DIR_ENT * de, off_t dir_offset)
/* Causes: 1) start bit got lost, 2) Previous slot with start bit got
* lost */
/* Fixes: 1) delete LFN, 2) set start bit */
- char *part = CNV_THIS_PART(lfn);
+ char *part = cnv_this_part(lfn);
printf("Long filename fragment \"%s\" found outside a LFN "
"sequence.\n (Maybe the start bit is missing on the "
"last fragment)\n", part);
@@ -304,7 +304,7 @@ void lfn_add_slot(DIR_ENT * de, off_t dir_offset)
printf("Unexpected long filename sequence number "
"(%d vs. expected %d).\n", slot, lfn_slot);
if (lfn->alias_checksum == lfn_checksum && lfn_slot > 0) {
- char *part1 = CNV_THIS_PART(lfn);
+ char *part1 = cnv_this_part(lfn);
char *part2 = CNV_PARTS_SO_FAR();
printf(" It could be that just the number is wrong\n"
" if \"%s\" seems to match \"%s\".\n", part1, part2);
--
2.20.1
|