diff options
Diffstat (limited to 'libraries/irrlicht-1.8/source/Irrlicht/bzip2/dlltest.c')
-rw-r--r-- | libraries/irrlicht-1.8/source/Irrlicht/bzip2/dlltest.c | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/bzip2/dlltest.c b/libraries/irrlicht-1.8/source/Irrlicht/bzip2/dlltest.c new file mode 100644 index 0000000..03fa146 --- /dev/null +++ b/libraries/irrlicht-1.8/source/Irrlicht/bzip2/dlltest.c | |||
@@ -0,0 +1,175 @@ | |||
1 | /* | ||
2 | minibz2 | ||
3 | libbz2.dll test program. | ||
4 | by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp) | ||
5 | This file is Public Domain. Welcome any email to me. | ||
6 | |||
7 | usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename] | ||
8 | */ | ||
9 | |||
10 | #define BZ_IMPORT | ||
11 | #include <stdio.h> | ||
12 | #include <stdlib.h> | ||
13 | #include "bzlib.h" | ||
14 | #ifdef _WIN32 | ||
15 | #include <io.h> | ||
16 | #endif | ||
17 | |||
18 | |||
19 | #ifdef _WIN32 | ||
20 | |||
21 | #define BZ2_LIBNAME "libbz2-1.0.2.DLL" | ||
22 | |||
23 | #include <windows.h> | ||
24 | static int BZ2DLLLoaded = 0; | ||
25 | static HINSTANCE BZ2DLLhLib; | ||
26 | int BZ2DLLLoadLibrary(void) | ||
27 | { | ||
28 | HINSTANCE hLib; | ||
29 | |||
30 | if(BZ2DLLLoaded==1){return 0;} | ||
31 | hLib=LoadLibrary(BZ2_LIBNAME); | ||
32 | if(hLib == NULL){ | ||
33 | fprintf(stderr,"Can't load %s\n",BZ2_LIBNAME); | ||
34 | return -1; | ||
35 | } | ||
36 | BZ2_bzlibVersion=GetProcAddress(hLib,"BZ2_bzlibVersion"); | ||
37 | BZ2_bzopen=GetProcAddress(hLib,"BZ2_bzopen"); | ||
38 | BZ2_bzdopen=GetProcAddress(hLib,"BZ2_bzdopen"); | ||
39 | BZ2_bzread=GetProcAddress(hLib,"BZ2_bzread"); | ||
40 | BZ2_bzwrite=GetProcAddress(hLib,"BZ2_bzwrite"); | ||
41 | BZ2_bzflush=GetProcAddress(hLib,"BZ2_bzflush"); | ||
42 | BZ2_bzclose=GetProcAddress(hLib,"BZ2_bzclose"); | ||
43 | BZ2_bzerror=GetProcAddress(hLib,"BZ2_bzerror"); | ||
44 | |||
45 | if (!BZ2_bzlibVersion || !BZ2_bzopen || !BZ2_bzdopen | ||
46 | || !BZ2_bzread || !BZ2_bzwrite || !BZ2_bzflush | ||
47 | || !BZ2_bzclose || !BZ2_bzerror) { | ||
48 | fprintf(stderr,"GetProcAddress failed.\n"); | ||
49 | return -1; | ||
50 | } | ||
51 | BZ2DLLLoaded=1; | ||
52 | BZ2DLLhLib=hLib; | ||
53 | return 0; | ||
54 | |||
55 | } | ||
56 | int BZ2DLLFreeLibrary(void) | ||
57 | { | ||
58 | if(BZ2DLLLoaded==0){return 0;} | ||
59 | FreeLibrary(BZ2DLLhLib); | ||
60 | BZ2DLLLoaded=0; | ||
61 | } | ||
62 | #endif /* WIN32 */ | ||
63 | |||
64 | void usage(void) | ||
65 | { | ||
66 | puts("usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]"); | ||
67 | } | ||
68 | |||
69 | int main(int argc,char *argv[]) | ||
70 | { | ||
71 | int decompress = 0; | ||
72 | int level = 9; | ||
73 | char *fn_r = NULL; | ||
74 | char *fn_w = NULL; | ||
75 | |||
76 | #ifdef _WIN32 | ||
77 | if(BZ2DLLLoadLibrary()<0){ | ||
78 | fprintf(stderr,"Loading of %s failed. Giving up.\n", BZ2_LIBNAME); | ||
79 | exit(1); | ||
80 | } | ||
81 | printf("Loading of %s succeeded. Library version is %s.\n", | ||
82 | BZ2_LIBNAME, BZ2_bzlibVersion() ); | ||
83 | #endif | ||
84 | while(++argv,--argc){ | ||
85 | if(**argv =='-' || **argv=='/'){ | ||
86 | char *p; | ||
87 | |||
88 | for(p=*argv+1;*p;p++){ | ||
89 | if(*p=='d'){ | ||
90 | decompress = 1; | ||
91 | }else if('1'<=*p && *p<='9'){ | ||
92 | level = *p - '0'; | ||
93 | }else{ | ||
94 | usage(); | ||
95 | exit(1); | ||
96 | } | ||
97 | } | ||
98 | }else{ | ||
99 | break; | ||
100 | } | ||
101 | } | ||
102 | if(argc>=1){ | ||
103 | fn_r = *argv; | ||
104 | argc--;argv++; | ||
105 | }else{ | ||
106 | fn_r = NULL; | ||
107 | } | ||
108 | if(argc>=1){ | ||
109 | fn_w = *argv; | ||
110 | argc--;argv++; | ||
111 | }else{ | ||
112 | fn_w = NULL; | ||
113 | } | ||
114 | { | ||
115 | int len; | ||
116 | char buff[0x1000]; | ||
117 | char mode[10]; | ||
118 | |||
119 | if(decompress){ | ||
120 | BZFILE *BZ2fp_r = NULL; | ||
121 | FILE *fp_w = NULL; | ||
122 | |||
123 | if(fn_w){ | ||
124 | if((fp_w = fopen(fn_w,"wb"))==NULL){ | ||
125 | printf("can't open [%s]\n",fn_w); | ||
126 | perror("reason:"); | ||
127 | exit(1); | ||
128 | } | ||
129 | }else{ | ||
130 | fp_w = stdout; | ||
131 | } | ||
132 | if((fn_r == NULL && (BZ2fp_r = BZ2_bzdopen(fileno(stdin),"rb"))==NULL) | ||
133 | || (fn_r != NULL && (BZ2fp_r = BZ2_bzopen(fn_r,"rb"))==NULL)){ | ||
134 | printf("can't bz2openstream\n"); | ||
135 | exit(1); | ||
136 | } | ||
137 | while((len=BZ2_bzread(BZ2fp_r,buff,0x1000))>0){ | ||
138 | fwrite(buff,1,len,fp_w); | ||
139 | } | ||
140 | BZ2_bzclose(BZ2fp_r); | ||
141 | if(fp_w != stdout) fclose(fp_w); | ||
142 | }else{ | ||
143 | BZFILE *BZ2fp_w = NULL; | ||
144 | FILE *fp_r = NULL; | ||
145 | |||
146 | if(fn_r){ | ||
147 | if((fp_r = fopen(fn_r,"rb"))==NULL){ | ||
148 | printf("can't open [%s]\n",fn_r); | ||
149 | perror("reason:"); | ||
150 | exit(1); | ||
151 | } | ||
152 | }else{ | ||
153 | fp_r = stdin; | ||
154 | } | ||
155 | mode[0]='w'; | ||
156 | mode[1] = '0' + level; | ||
157 | mode[2] = '\0'; | ||
158 | |||
159 | if((fn_w == NULL && (BZ2fp_w = BZ2_bzdopen(fileno(stdout),mode))==NULL) | ||
160 | || (fn_w !=NULL && (BZ2fp_w = BZ2_bzopen(fn_w,mode))==NULL)){ | ||
161 | printf("can't bz2openstream\n"); | ||
162 | exit(1); | ||
163 | } | ||
164 | while((len=fread(buff,1,0x1000,fp_r))>0){ | ||
165 | BZ2_bzwrite(BZ2fp_w,buff,len); | ||
166 | } | ||
167 | BZ2_bzclose(BZ2fp_w); | ||
168 | if(fp_r!=stdin)fclose(fp_r); | ||
169 | } | ||
170 | } | ||
171 | #ifdef _WIN32 | ||
172 | BZ2DLLFreeLibrary(); | ||
173 | #endif | ||
174 | return 0; | ||
175 | } | ||