Code:
stock fvault_prune
(const vaultname
[],
const start=
-1,
const end=
-1)
{
if( start ==
-1 && end ==
-1 )
{
new keys = fvault_size
(vaultname
);
if( keys
)
{
fvault_clear
(vaultname
);
}
return keys;
}
new filename
[128];
_FormatVaultName
(vaultname, filename, sizeof
(filename
) -
1);
if( !
file_exists(filename
) )
{
return 0;
}
new file =
fopen(_temp_vault,
"wt");
new vault =
fopen(filename,
"rt");
new keys;
//new data[512], len, i, _time[32], timestamp;
//to( len was never used in the code ) ->
new data
[512], i, _time
[32], timestamp;
while( !
feof(vault
) )
{
fgets(vault, data, sizeof
(data
) -
1);
if( data
[0] )
{
_time
[0] =
0;
for( i =
strlen(data
) -
1; i >=
0; i--
)
{
if( data
[i
] ==
'"' ) break;
if( data
[i
] ==
' ' )
{
copy(_time, sizeof
(_time
) -
1, data
[i +
1]);
break;
}
}
timestamp =
str_to_num(_time
);
if( timestamp !=
-1 )
{
if( start ==
-1 && timestamp <= end
|| end ==
-1 && timestamp >= start
|| start <= timestamp <= end
)
{
keys++;
continue;
}
}
}
fputs(file, data
);
}
fclose(file
);
fclose(vault
);
if( keys
)
{
delete_file(filename
);
while( !
rename_file(_temp_vault, filename,
1) ) { }
}
else
{
delete_file(_temp_vault
);
}
return keys;
}