Dear Roy,

sorry, this patch also has an issue. The obfuscated version does not work any more (wrong variable data instead data_in).

Here is a corrected total patch including ticket [127ac40147]

<verbatim>

--- Mon May 11 07:31:09 2020
+++ Wed Jan 22 20:53:52 2020
@@ -70,7 +70,7 @@

 		append ret

-		if {(($idx+1) % 20) == 0} {
+		if {($idx % 20) == 0 && $idx != 0} {
 			append ret
 		}
 	}
@@ -82,24 +82,6 @@
 	return $ret
 }

-# Convert data to a character array
-proc character_array {data} {
-	set ret
-	for {set idx 0} {$idx < [string length $data]} {incr idx} {
-		binary scan [string index $data $idx] H* char
-		append ret "0x${char}, "
-
-		if {(($idx+1) % 16) == 0 } {
-			append ret
-		}
-	}
-	set ret [string trimright $ret "\n, \t"]
-
-	append ret
-
-	return $ret
-}
-
 # Encrypt the data
 proc random_byte {} {
 	set value [expr {int(256 * rand())}]
@@ -325,9 +307,16 @@
 #  endif /* !LOADED_CVFS_COMMON */}
 puts ""

-# C struct data output buffer (must be delayed after definition of file data)
-set struct_data ""
-
+puts "static struct cvfs_data = {"
+puts "\t{"
+puts Index 0 cannot be used because we use the value 0 to represent failure */"
+puts = NULL,"
+puts = 0,"
+puts = 0,"
+puts = 0,"
+puts = NULL,"
+puts = 0,"
+puts "\t},"
 for {set idx 1} {$idx < [llength $files]} {incr idx} {
 	set file [lindex $files $idx]
 	set shortfile [shorten_file $startdir $file]
@@ -341,28 +330,15 @@

 			set fd [open $file]
 			fconfigure $fd -translation binary
-			set data_in [read $fd]
+			set data [read $fd]
 			close $fd

 			if {$obsfucate} {
 				set type "CVFS_FILETYPE_ENCRYPTED_FILE"
-				set data_in [encrypt $data_in $obsfucation_key]
+				set data "(unsigned char *) [stringify [encrypt $data $obsfucation_key]]"
 			} else {
 				set type "CVFS_FILETYPE_FILE"
-			}
-			# Microsoft VC9 compiler has a string limit of 65535 bytes
-			# so put all larger files into an array which has a higher
-			# string limit
-			# For instance, the extra variable is used for all files.
-			# this may be deactivated by removing "0 &" below
-			if { 0 & $size <= 65535} {
-				set data "(unsigned char *) [stringify $data_in]"
-			} else {
-				puts "/* Data of $shortfile */"
-				set variable_name cvfs_data_$idx
-				set data $variable_name
-				puts "static unsigned char =\
-						[character_array $data_in];"
+				set data "(unsigned char *) [stringify $data]"
 			}
 		}
 		"directory" {
@@ -372,27 +348,15 @@
 		}
 	}

-	append struct_data
-			name  */
-			index */
-			size  */
-			type  */
-			data  */
-			free  */
-
+	puts "\t{"
+	puts =
+	puts = $idx,"
+	puts = $type,"
+	puts = $size,"
+	puts = $data,"
+	puts = 0,"
+	puts "\t},"
 }
-puts ""
-puts "static struct cvfs_data = {"
-puts "\t{"
-puts Index 0 cannot be used because we use the value 0 to represent failure */"
-puts name  */ NULL,"
-puts index */ 0,"
-puts type  */ 0,"
-puts size  */ 0,"
-puts data  */ NULL,"
-puts free  */ 0,"
-puts "\t},"
-puts -nonewline $struct_data
 puts "};"
 puts ""

</verbatim>