![]() |
Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
|
#include <windows.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <errno.h>#include <fcntl.h>#include <ctype.h>#include <math.h>#include <wctype.h>#include <wchar.h>#include <stdarg.h>#include <stddef.h>#include <setjmp.h>#include <locale.h>#include <signal.h>#include <limits.h>#include <float.h>#include <iso646.h>#include <assert.h>#include "stdio_v2.h"#include "stdio_v3.h"#include <process.h>#include "win64.h"#include "lzop2_multi.c"Data Structures | |
| struct | _rspdata |
Macros | |
| #define | uchar unsigned char |
| #define | uint unsigned int |
| #define | ulong unsigned long |
| #define | ushort unsigned short |
| #define | __valquiriacall __fastcall |
| #define | AMANDA__SIZE ((32767 * 6) + 2) |
| #define | AMANDA__SIZE_w (32767) |
| #define | AMANDA__SIZE_ww ((32767 * 2) + 2) |
| #define | __amandacall __stdcall |
| #define | MAX_MEMORY_SIZE_Z (16 * 1024 * 1024) |
| #define | CHUNK (32768 * 2 * 2) /* it is a good slice of data */ |
Typedefs | |
| typedef struct _rspdata | rspdata |
Functions | |
| void | pedro_dprintf2 (int amanda_level, char *format,...) |
| pedro_dprintf2 is my variant of my debug function because too much calls to pedro_dprintf these days, I am lazy, sorry.... | |
| WCHAR * | utf8_2_wide_dl (const char *pUTF8) |
| my temporary utf8_2_wide_dl function to add full Unicode support and future (when modified) support to long filenames. (jan/2025) | |
| int | compress2_uncompress_k_mt_z (char *input, char *output) |
| function to uncompress a not standard lzop2 multi-thread file, being added full Unicode support and soon long filenames support (possible jan/2025) | |
| void | pedro_dprintf (int amanda_level, char *format,...) |
| FILE * | fopen_utf8_z (char *filename_z, char *mode) |
| void | mprintf (char *format,...) |
| uint | getpor (int max, uint fatia) |
| void | dprintf (char *format,...) |
| int __stdcall | execute () |
| int | start () |
| int | start2 () |
| HANDLE | lfopen (const char *szFileName, char *pMode) |
| void | lfclose (HANDLE hFile) |
| __int64 | lfseek (HANDLE hFile, __int64 iDistance, int iMode) |
| __int64 | lftell (HANDLE hFile) |
| __int64 | lffilesize (const char *szFileName) |
| simple function to get the size of a utf-8 encoded filename, no support to long filenames yet (above MAX_PATH) | |
| unsigned long | lfread (void *pBuffer, unsigned long ulCount, HANDLE hFile) |
| unsigned long | lfwrite (void *pBuffer, unsigned long ulCount, HANDLE hFile) |
| int | setendofile (HANDLE file, __int64 position) |
| int | createtempfilename_and_keep_z_8 (char *path1, char *out_z, char *signature_z) |
| Create a tempfilename with in ANSI format (28/dec/2024), if you plan to allow other temp paths in the future you need to change this function. | |
| int | compress2_compress_k (char *input, char *output, int levelin) |
| This is the function to compress using lzop2 (lzop with multi-thread support) | |
| int | compress2_uncompress (char *input, char *output) |
| int __amandacall | get_multithread_progress_8 (void) |
Variables | |
| CRITICAL_SECTION | lpCriticalSection_charli_lzop2 |
| bool | is_multi_thread_z_8 = false |
| int | intpause_8 |
| int | intcancel_8 |
| char | temp_path_z_8 [] |
| int | finished_8 = 0 |
| int | intstatus_8 |
| int | n_threads_z_8 |
| int64_t | bytes__read_thread_z_8 [129] |
| __INT32_OR_INT64 | my_thread_handle_8 [129] |
| char | temp_files_z_8 [129][2048] |
| int | thread_return_value_z_8 |
| #define __amandacall __stdcall |
| #define __valquiriacall __fastcall |
| #define AMANDA__SIZE ((32767 * 6) + 2) |
The maximum size of an utf-8 encoded filename with the max limit of a file in Windows
| #define AMANDA__SIZE_w (32767) |
The maximum size of Unicode characters in a path in Windows, Linux is 1024 characters as far I know
| #define AMANDA__SIZE_ww ((32767 * 2) + 2) |
| #define MAX_MEMORY_SIZE_Z (16 * 1024 * 1024) |
| #define uchar unsigned char |
| #define uint unsigned int |
| #define ulong unsigned long |
| #define ushort unsigned short |
This is the function to compress using lzop2 (lzop with multi-thread support)
| input | utf-8 encode uncompressed file |
| output | utf-8 destination compressed lzop2 file |
| levelin | not in use, at least this release |
| int compress2_uncompress | ( | char * | input, |
| char * | output ) |
| int compress2_uncompress_k_mt_z | ( | char * | input, |
| char * | output ) |
function to uncompress a not standard lzop2 multi-thread file, being added full Unicode support and soon long filenames support (possible jan/2025)
| input | utf-8 encoded file |
| output | utf-8 encoded file |
0 - No error
1 - Cannot open input file
2 - Cannot open output file
5 - Cannot read from input file
6 - Cannot write to output file
7 - Invalid lzop2 file
8 - Decompression error
119 - User cancel
403 - File access error
405 - Cannotm open output file
407 - Cannot create temp file
| int createtempfilename_and_keep_z_8 | ( | char * | path1, |
| char * | out_z, | ||
| char * | signature_z ) |
Create a tempfilename with in ANSI format (28/dec/2024), if you plan to allow other temp paths in the future you need to change this function.
| path1 | |
| out_z | |
| signature_z |
| void dprintf | ( | char * | format, |
| ... ) |
| int __stdcall execute | ( | ) |
| FILE * fopen_utf8_z | ( | char * | filename_z, |
| char * | mode ) |
| int __amandacall get_multithread_progress_8 | ( | void | ) |
| void lfclose | ( | HANDLE | hFile | ) |
| __int64 lffilesize | ( | const char * | szFileName | ) |
simple function to get the size of a utf-8 encoded filename, no support to long filenames yet (above MAX_PATH)
to get the file input size, with support to files above 2gb, and unicode support
| szFileName | utf-8 encoded filename |
| szFileName | the utf-8 encoded input file |
| szFileName | utf-8 encoded filename |
simple function to get the size of a utf-8 encoded filename, no support to long filenames yet (above MAX_PATH)
| szFileName | the utf-8 encoded input file |
| HANDLE lfopen | ( | const char * | szFileName, |
| char * | pMode ) |
| unsigned long lfread | ( | void * | pBuffer, |
| unsigned long | ulCount, | ||
| HANDLE | hFile ) |
| __int64 lfseek | ( | HANDLE | hFile, |
| __int64 | iDistance, | ||
| int | iMode ) |
| __int64 lftell | ( | HANDLE | hFile | ) |
| unsigned long lfwrite | ( | void * | pBuffer, |
| unsigned long | ulCount, | ||
| HANDLE | hFile ) |
| void mprintf | ( | char * | format, |
| ... ) |
| void pedro_dprintf | ( | int | amanda_level, |
| char * | format, | ||
| ... ) |
| void pedro_dprintf2 | ( | int | amanda_level, |
| char * | format, | ||
| ... ) |
pedro_dprintf2 is my variant of my debug function because too much calls to pedro_dprintf these days, I am lazy, sorry....
em brotli or brotli2
| amanda_level | if equal or above 0 print the string |
| format | printf based format |
| ... |
| int setendofile | ( | HANDLE | file, |
| __int64 | position ) |
| int start | ( | ) |
| int start2 | ( | ) |
| WCHAR * utf8_2_wide_dl | ( | const char * | pUTF8 | ) |
my temporary utf8_2_wide_dl function to add full Unicode support and future (when modified) support to long filenames. (jan/2025)
| pUTF8 |
| int64_t bytes__read_thread_z_8[129] |
| int finished_8 = 0 |
|
extern |
|
extern |
|
extern |
| CRITICAL_SECTION lpCriticalSection_charli_lzop2 |
| __INT32_OR_INT64 my_thread_handle_8[129] |
|
extern |
| char temp_files_z_8[129][2048] |
|
extern |
| int thread_return_value_z_8 |