aboutsummaryrefslogtreecommitdiff
path: root/project/src/wszst.c
diff options
context:
space:
mode:
Diffstat (limited to 'project/src/wszst.c')
-rw-r--r--project/src/wszst.c65
1 files changed, 50 insertions, 15 deletions
diff --git a/project/src/wszst.c b/project/src/wszst.c
index 7182405..59192d2 100644
--- a/project/src/wszst.c
+++ b/project/src/wszst.c
@@ -308,6 +308,7 @@ static const sizeof_info_t sizeof_info_szs_list[] =
SIZEOF_INFO_ENTRY(DistributionInfo_t)
SIZEOF_INFO_ENTRY(pack_header_t)
SIZEOF_INFO_ENTRY(pack_metric_t)
+ SIZEOF_INFO_ENTRY(check_cache_t)
SIZEOF_INFO_TITLE("BREFF & BREFT")
SIZEOF_INFO_ENTRY(breff_root_head_t)
@@ -459,6 +460,7 @@ static const sizeof_info_t sizeof_info_szs_list[] =
SIZEOF_INFO_ENTRY(le_binary_head_v4_t)
SIZEOF_INFO_ENTRY(le_binary_head_v5_34_t)
SIZEOF_INFO_ENTRY(le_binary_head_v5_38_t)
+ SIZEOF_INFO_ENTRY(le_binary_head_v5_44_t)
SIZEOF_INFO_ENTRY(le_binary_head_v5_t)
SIZEOF_INFO_ENTRY(le_binary_head_t)
SIZEOF_INFO_ENTRY(le_binary_param_t)
@@ -620,6 +622,7 @@ static const sizeof_info_t sizeof_info_szs_list[] =
SIZEOF_INFO_ENTRY(szs_extract_t)
SIZEOF_INFO_ENTRY(raw_data_t)
SIZEOF_INFO_ENTRY(wbz_header_t)
+ SIZEOF_INFO_ENTRY(wlz_header_t)
SIZEOF_INFO_ENTRY(analyze_param_t)
SIZEOF_INFO_ENTRY(analyze_szs_t)
SIZEOF_INFO_ENTRY(file_type_t)
@@ -864,7 +867,7 @@ enumError cmd_ui_check()
dur += GetTimerUSec();
printf("%c%c "
- ,uc.is_ui >= OFFON_ON ? 'U' : uc.is_ui > OFFON_OFF ? 'u' : '-'
+ ,uc.is_ui >= OFFON_ON ? 'U' : uc.is_ui > OFFON_OFF ? 'u' : '-'
,uc.is_korean >= OFFON_ON ? 'K' : uc.is_korean > OFFON_OFF ? 'k' : '-'
);
@@ -3744,6 +3747,36 @@ static bool ScanByExtFF
return true;
}
+ if ( !strcmp(point,"bz2") || !strcmp(point,"bzip2") )
+ {
+ *ff_arch = FF_U8;
+ *ff_compr = FF_BZIP2;
+ return true;
+ }
+
+ if (!strcmp(point,"wlz"))
+ {
+ *ff_arch = FF_WU8;
+ *ff_compr = FF_LZ;
+ return true;
+ }
+
+ if (!strcmp(point,"lzma"))
+ {
+ *ff_arch = FF_U8;
+ *ff_compr = FF_LZMA;
+ return true;
+ }
+
+ #if 0 // [[xz+]]
+ if (!strcmp(point,"xz"))
+ {
+ *ff_arch = FF_U8;
+ *ff_compr = FF_XZ;
+ return true;
+ }
+ #endif
+
if (!strcmp(point,"u8"))
{
*ff_arch = FF_U8;
@@ -3866,8 +3899,6 @@ static enumError patch_file_helper
char dest[PATH_MAX];
if ( opt_fform == FF_U8 || opt_fform == FF_WU8 )
-// [[lta]] [[2do]]
-// [[lfl]] [[2do]]
{
SubstDest( dest, sizeof(dest), fname,
opt_dest && *opt_dest ? opt_dest : "\1P/\1N\1?T", "\1N\1?T",
@@ -3884,11 +3915,11 @@ static enumError patch_file_helper
//--- check dirty
- const ccp dest_format = GetNameFF_SZScurrent(&szs);
+ file_format_t ff_file = was_compressed ? GetNewCompressionSZS(&szs) : szs.fform_file;
+ const ccp dest_format = GetNameFF(ff_file,szs.fform_current);
const bool src_dest_diff
= strcmp(src_format,dest_format) || strcmp(dest,fname);
-//X if ( !dirty && opt_norm )
if (!dirty)
dirty = data.data.len != szs.size || memcmp(data.data.ptr,szs.data,szs.size);
@@ -3898,11 +3929,11 @@ static enumError patch_file_helper
//--- compression and SZS cache
- if (dirty)
+ if ( dirty || src_dest_diff )
{
if (was_compressed)
{
- CompressSZS(&szs,true);
+ CompressSZS(&szs,0,true);
FreeExMem(&orig);
orig = ExMemByS(szs.cdata,szs.csize);
}
@@ -3955,7 +3986,7 @@ static enumError patch_file_helper
fflush(stdlog);
}
- LinkCacheRAW(szs.cache_fname,dest,orig.data.ptr,orig.data.len);
+ LinkCacheData(szs.cache_fname,dest,orig.data.ptr,orig.data.len);
}
abort:;
@@ -4165,7 +4196,7 @@ static enumError cmd_duplicate()
if (was_compressed)
{
ClearCompressedSZS(&szs);
- CompressSZS(&szs,false);
+ CompressSZS(&szs,0,false);
}
SaveSZS(&szs,fname,true,was_compressed);
@@ -4544,7 +4575,7 @@ static enumError cmd_compress()
if ( err <= ERR_WARNING && err != ERR_NOT_EXISTS )
{
szs.dest_fname = dest;
- CompressSZS(&szs,true);
+ CompressSZS(&szs,0,true);
szs.dest_fname = 0;
if ( szs.cache_used && (int)max_err < ERR_CACHE_USED && parallel_count <= 0 )
@@ -4562,7 +4593,7 @@ static enumError cmd_compress()
szs.csize, dest);
}
ResetFile(&F,opt_preserve);
- LinkCacheRAW(szs.cache_fname,dest,szs.cdata,szs.csize);
+ LinkCacheData(szs.cache_fname,dest,szs.cdata,szs.csize);
if ( !err && opt_remove_src )
RemoveSource(arg,dest,verbose>=0,testmode);
@@ -4969,7 +5000,7 @@ static enumError cmd_update()
if (F.f)
{
if (IsCompressedFF(szs.fform_file))
- CompressSZS(&szs,true);
+ CompressSZS(&szs,0,true);
SetFileAttrib(&F.fatt,&szs.fatt,0);
const u8 * data = szs.cdata ? szs.cdata : szs.data;
const size_t size = szs.cdata ? szs.csize : szs.size;
@@ -5020,7 +5051,6 @@ static enumError cmd_extract ( enumCommands mode )
{
opt_recurse = INT_MAX;
opt_decode = false;
- opt_avail_txt = true;
basedir = "common/";
}
@@ -5876,12 +5906,16 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env )
case GO_YAZ1: SetCompressionFF(0,FF_YAZ1); break;
case GO_XYZ: SetCompressionFF(0,FF_XYZ); break;
case GO_BZ: SetCompressionFF(0,FF_BZ); break;
+ case GO_BZIP2: SetCompressionFF(0,FF_BZIP2); break;
+ case GO_LZ: SetCompressionFF(0,FF_LZ); break;
+ case GO_LZMA: SetCompressionFF(0,FF_LZMA); break;
case GO_U8: SetCompressionFF(FF_U8,0); break;
case GO_SZS: SetCompressionFF(FF_U8,FF_YAZ0); break;
case GO_WU8: SetCompressionFF(FF_WU8,0); break;
case GO_XWU8: SetCompressionFF(FF_WU8,FF_XYZ); break;
case GO_WBZ: SetCompressionFF(FF_WU8,FF_BZ); break;
+ case GO_WLZ: SetCompressionFF(FF_WU8,FF_LZ); break;
//case GO_LTA: SetCompressionFF(FF_LTA,0); break;
case GO_LFL: SetCompressionFF(FF_LFL,0); break;
//case GO_ARC: SetCompressionFF(FF_RARC,0); break;
@@ -5929,6 +5963,7 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env )
case GO_FILTER_BMG: filter_bmg = optarg; break;
case GO_LE_MENU: opt_le_menu = true; break;
case GO_9LAPS: opt_9laps = true; break;
+ case GO_UI_SOURCE: opt_ui_source = optarg; break;
case GO_CUP_ICONS: opt_cup_icons = optarg; break;
case GO_TITLE_SCREEN: opt_title_screen = optarg; break;
case GO_AUTOADD_PATH: DefineAutoAddPath(optarg); break;
@@ -5982,7 +6017,7 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env )
case GO_NO_BMG_COLORS: opt_bmg_colors = 0; break;
case GO_BMG_COLORS: opt_bmg_colors = 2; break;
case GO_NO_BMG_INLINE: opt_bmg_inline_attrib = false; break;
- case GO_CACHE: opt_cache = optarg; break;
+ case GO_CACHE: opt_cache = optarg; opt_remove_dest = true; break;
case GO_CNAME: opt_cname = optarg; break;
case GO_LOG_CACHE: opt_log_cache = optarg; break;
case GO_PARALLEL: parallel_count++; break;
@@ -6017,7 +6052,7 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env )
SetupKMP();
SetupMDL();
- // true until final version of 'post-patch-mkw.sh'
+ // [[cache]] p2=true until final version of 'post-patch-mkw.sh'
SetupSZSCache(opt_cache,true);
if (!err)