summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKuratius <Kuratius@gmx.net>2024-01-17 18:37:32 +0100
committerChristian Brabandt <cb@256bit.org>2024-01-17 22:34:51 +0100
commit7062be13129985fe297b9a8e59c57b8f0db61b8f (patch)
treea4f821166233308a2f218936ccda0f2d203621c8
parentf942db25571e64d413048fcfd9719fdf63a516c6 (diff)
patch 9.1.0041: xxd -i may generate incorrect C statementsv9.1.0041
Problem: xxd -i may generate incorrect C statements (Kuratius) Solution: xxd: Make size type returned by -i option compatible with C standard by using type size_t instead of unsigned int (Kuratius) Also change affected tests to now correctly expect size_t's fixes: #13876 closes: #13880 Signed-off-by: Kuratius <Kuratius@gmx.net> Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r--src/testdir/test_xxd.vim10
-rw-r--r--src/version.c2
-rw-r--r--src/xxd/xxd.c5
3 files changed, 10 insertions, 7 deletions
diff --git a/src/testdir/test_xxd.vim b/src/testdir/test_xxd.vim
index 7a2771e033..a3f006b6fe 100644
--- a/src/testdir/test_xxd.vim
+++ b/src/testdir/test_xxd.vim
@@ -103,7 +103,7 @@ func Test_xxd()
unsigned char XXDfile[] = {
0x54, 0x45, 0x53, 0x54, 0x61, 0x62, 0x63, 0x64, 0x30, 0x39, 0x0a
};
- unsigned int XXDfile_len = 11;
+ size_t XXDfile_len = 11;
[CODE]
call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
@@ -119,7 +119,7 @@ func Test_xxd()
unsigned char XXDFILE[] = {
0x54, 0x45, 0x53, 0x54, 0x61, 0x62, 0x63, 0x64, 0x30, 0x39, 0x0a
};
- unsigned int XXDFILE_LEN = 11;
+ size_t XXDFILE_LEN = 11;
[CODE]
call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
endfor
@@ -233,7 +233,7 @@ func Test_xxd()
unsigned char varName[] = {
0x54, 0x45, 0x53, 0x54, 0x61, 0x62, 0x63, 0x64, 0x30, 0x39, 0x0a
};
- unsigned int varName_len = 11;
+ size_t varName_len = 11;
[CODE]
call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
@@ -247,7 +247,7 @@ func Test_xxd()
unsigned char StdIn[] = {
0x54, 0x45, 0x53, 0x54, 0x61, 0x62, 0x63, 0x64, 0x30, 0x39, 0x0a
};
- unsigned int StdIn_len = 11;
+ size_t StdIn_len = 11;
[CODE]
call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
@@ -263,7 +263,7 @@ func Test_xxd()
unsigned char VARNAME[] = {
0x54, 0x45, 0x53, 0x54, 0x61, 0x62, 0x63, 0x64, 0x30, 0x39, 0x0a
};
- unsigned int VARNAME_LEN = 11;
+ size_t VARNAME_LEN = 11;
[CODE]
call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
endfor
diff --git a/src/version.c b/src/version.c
index 924c6f1750..04832e1110 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 41,
+/**/
40,
/**/
39,
diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c
index 20023e0ee1..75de982810 100644
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -59,6 +59,7 @@
* 31.08.2023 -R never/auto/always prints colored output
* 06.10.2023 enable -r -b to reverse bit dumps
* 12.01.2024 disable auto-conversion for z/OS (MVS)
+ * 17.01.2024 use size_t instead of usigned int for code-generation (-i), #13876
*
* (c) 1990-1998 by Juergen Weigert (jnweiger@gmail.com)
*
@@ -139,7 +140,7 @@ extern void perror __P((char *));
# endif
#endif
-char version[] = "xxd 2024-01-12 by Juergen Weigert et al.";
+char version[] = "xxd 2024-01-17 by Juergen Weigert et al.";
#ifdef WIN32
char osver[] = " (Win32)";
#else
@@ -977,7 +978,7 @@ main(int argc, char *argv[])
if (varname != NULL)
{
fputs_or_die("};\n", fpo);
- FPRINTF_OR_DIE((fpo, "unsigned int %s", isdigit((unsigned char)varname[0]) ? "__" : ""));
+ FPRINTF_OR_DIE((fpo, "size_t %s", isdigit((unsigned char)varname[0]) ? "__" : ""));
for (e = 0; (c = varname[e]) != 0; e++)
putc_or_die(isalnum((unsigned char)c) ? CONDITIONAL_CAPITALIZE(c) : '_', fpo);
FPRINTF_OR_DIE((fpo, "_%s = %d;\n", capitalize ? "LEN" : "len", p));