Browse code

win32 ltdl interface

aCaB authored on 2009/10/13 06:36:13
Showing 8 changed files
... ...
@@ -35,7 +35,7 @@
35 35
 #include <assert.h>
36 36
 
37 37
 #include "cltypes.h"
38
-#include "lexglobal.h"
38
+#include "jsparse/lexglobal.h"
39 39
 #include "hashtab.h"
40 40
 #include "others.h"
41 41
 #include "str.h"
... ...
@@ -4,3 +4,5 @@ build
4 4
 *.ncb
5 5
 *.suo
6 6
 *.user
7
+Debug/*
8
+Release/*
... ...
@@ -424,10 +424,10 @@
424 424
 #define LT_DLSEARCH_PATH "/lib:/usr/lib:/usr/local/lib:/usr/lib/atlas:/usr/local/lib:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu"
425 425
 
426 426
 /* The archive extension */
427
-#define LT_LIBEXT "a"
427
+#define LT_LIBEXT "dll"
428 428
 
429 429
 /* Define to the extension used for runtime loadable modules, say, ".so". */
430
-#define LT_MODULE_EXT ".so"
430
+#define LT_MODULE_EXT ".dll"
431 431
 
432 432
 /* Define to the name of the environment variable that determines the run-time
433 433
    module search path. */
... ...
@@ -25,9 +25,8 @@
25 25
 #include "clamav-config.h"
26 26
 #endif
27 27
 
28
-//#define _DIRENT_HAVE_D_TYPE
29
-
30
-typedef unsigned long ino_t;
28
+#define _DIRENT_HAVE_D_TYPE
29
+typedef unsigned short ino_t; /* WTF?!? */
31 30
 
32 31
 typedef struct {
33 32
 	HANDLE dh;
34 33
new file mode 100644
... ...
@@ -0,0 +1,59 @@
0
+/*
1
+ *  Copyright (C) 2009 Sourcefire, Inc.
2
+ *
3
+ *  Authors: aCaB <acab@clamav.net>
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License version 2 as
7
+ *  published by the Free Software Foundation.
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
+ *  MA 02110-1301, USA.
18
+ */
19
+
20
+#include "ltdl.h"
21
+
22
+static DWORD lasterr = 0;
23
+const lt_dlinfo dlinfo = {"libclamunrar_iface", "unrar", 1, 0, 0, 0 };
24
+
25
+int lt_dlinit(void) {
26
+	return 0;
27
+}
28
+
29
+lt_dlhandle lt_dlopen(const char *filename) {
30
+	lt_dlhandle h = LoadLibrary(filename);
31
+	if(!h) lasterr = GetLastError();
32
+	return h;
33
+}
34
+
35
+void *lt_dlsym(lt_dlhandle handle, const char *name) {
36
+	void *f = GetProcAddress(handle, name);
37
+	if(!f) lasterr = GetLastError();
38
+	return f;
39
+}
40
+
41
+const char *lt_dlerror(void) {
42
+	char *err = "NO ERROR";
43
+	if(lasterr)
44
+		FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, lasterr, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&err, 0, NULL);
45
+	return err;
46
+}
47
+
48
+int lt_dladdsearchdir(const char *search_dir) {
49
+	return 0;
50
+}
51
+
52
+const char *lt_dlgetsearchpath(void) {
53
+	return NULL;
54
+}
55
+
56
+const lt_dlinfo *lt_dlgetinfo(lt_dlhandle handle) {
57
+	return &dlinfo;
58
+}
0 59
\ No newline at end of file
1 60
new file mode 100644
... ...
@@ -0,0 +1,51 @@
0
+/*
1
+ *  Copyright (C) 2009 Sourcefire, Inc.
2
+ *
3
+ *  Authors: aCaB <acab@clamav.net>
4
+ *
5
+ *  This program is free software; you can redistribute it and/or modify
6
+ *  it under the terms of the GNU General Public License version 2 as
7
+ *  published by the Free Software Foundation.
8
+ *
9
+ *  This program is distributed in the hope that it will be useful,
10
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
+ *  GNU General Public License for more details.
13
+ *
14
+ *  You should have received a copy of the GNU General Public License
15
+ *  along with this program; if not, write to the Free Software
16
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
+ *  MA 02110-1301, USA.
18
+ */
19
+
20
+#ifndef __LTDL_H
21
+#define __LTDL_H
22
+
23
+#if HAVE_CONFIG_H
24
+#include "clamav-config.h"
25
+#endif
26
+
27
+typedef HANDLE lt_dlhandle;
28
+
29
+int lt_dlinit(void);
30
+lt_dlhandle lt_dlopen(const char *filename);
31
+void *lt_dlsym(lt_dlhandle handle, const char *name);
32
+const char *lt_dlerror(void);
33
+int lt_dlclose (lt_dlhandle handle);
34
+int lt_dladdsearchdir(const char *search_dir);
35
+const char *lt_dlgetsearchpath(void);
36
+
37
+typedef	struct {
38
+  char *	filename;	/* file name */
39
+  char *	name;		/* module name */
40
+  int		ref_count;	/* number of times lt_dlopened minus
41
+				   number of times lt_dlclosed. */
42
+  unsigned int	is_resident:1;	/* module can't be unloaded. */
43
+  unsigned int	is_symglobal:1;	/* module symbols can satisfy
44
+				   subsequently loaded modules.  */
45
+  unsigned int	is_symlocal:1;	/* module symbols are only available
46
+				   locally. */
47
+} lt_dlinfo;
48
+const lt_dlinfo *lt_dlgetinfo(lt_dlhandle handle);
49
+
50
+#endif /* __LTDL_H */
0 51
\ No newline at end of file
... ...
@@ -41,7 +41,7 @@
41 41
 			<Tool
42 42
 				Name="VCCLCompilerTool"
43 43
 				Optimization="0"
44
-				AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)..\libclamav&quot;;&quot;$(SolutionDir)\compat&quot;;&quot;$(SolutionDir)\3rdparty\zlib&quot;;&quot;$(SolutionDir)\3rdparty\pthreads&quot;;&quot;$(SolutionDir)\3rdparty\bzip2&quot;;&quot;$(SolutionDir)..\libltdl&quot;;&quot;$(SolutionDir)..&quot;"
44
+				AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)..\libclamav&quot;;&quot;$(SolutionDir)\compat&quot;;&quot;$(SolutionDir)\3rdparty\zlib&quot;;&quot;$(SolutionDir)\3rdparty\pthreads&quot;;&quot;$(SolutionDir)\3rdparty\bzip2&quot;;&quot;$(SolutionDir)..&quot;"
45 45
 				PreprocessorDefinitions="WIN32_LEAN_AND_MEAN;HAVE_CONFIG_H"
46 46
 				MinimalRebuild="true"
47 47
 				BasicRuntimeChecks="3"
... ...
@@ -63,7 +63,9 @@
63 63
 			/>
64 64
 			<Tool
65 65
 				Name="VCLinkerTool"
66
+				AdditionalDependencies="ws2_32.lib"
66 67
 				LinkIncremental="2"
68
+				IgnoreAllDefaultLibraries="false"
67 69
 				GenerateDebugInformation="true"
68 70
 				SubSystem="2"
69 71
 				TargetMachine="1"
... ...
@@ -117,7 +119,7 @@
117 117
 				Name="VCCLCompilerTool"
118 118
 				Optimization="2"
119 119
 				EnableIntrinsicFunctions="true"
120
-				AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)..\libclamav&quot;;&quot;$(SolutionDir)\compat&quot;;&quot;$(SolutionDir)\3rdparty\zlib&quot;;&quot;$(SolutionDir)\3rdparty\pthreads&quot;;&quot;$(SolutionDir)\3rdparty\bzip2&quot;;&quot;$(SolutionDir)..\libltdl&quot;;&quot;$(SolutionDir)..&quot;"
120
+				AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(SolutionDir)..\libclamav&quot;;&quot;$(SolutionDir)\compat&quot;;&quot;$(SolutionDir)\3rdparty\zlib&quot;;&quot;$(SolutionDir)\3rdparty\pthreads&quot;;&quot;$(SolutionDir)\3rdparty\bzip2&quot;;&quot;$(SolutionDir)..&quot;"
121 121
 				PreprocessorDefinitions="WIN32_LEAN_AND_MEAN;HAVE_CONFIG_H"
122 122
 				RuntimeLibrary="2"
123 123
 				EnableFunctionLevelLinking="true"
... ...
@@ -138,7 +140,10 @@
138 138
 			/>
139 139
 			<Tool
140 140
 				Name="VCLinkerTool"
141
+				UseLibraryDependencyInputs="true"
142
+				AdditionalDependencies="ws2_32.lib"
141 143
 				LinkIncremental="1"
144
+				IgnoreAllDefaultLibraries="false"
142 145
 				GenerateDebugInformation="true"
143 146
 				SubSystem="2"
144 147
 				OptimizeReferences="2"
... ...
@@ -269,6 +274,10 @@
269 269
 				>
270 270
 			</File>
271 271
 			<File
272
+				RelativePath="..\libclamav\nsis\bzlib.c"
273
+				>
274
+			</File>
275
+			<File
272 276
 				RelativePath="..\libclamav\cab.c"
273 277
 				>
274 278
 			</File>
... ...
@@ -337,6 +346,10 @@
337 337
 				>
338 338
 			</File>
339 339
 			<File
340
+				RelativePath="..\libclamav\nsis\infblock.c"
341
+				>
342
+			</File>
343
+			<File
340 344
 				RelativePath="..\libclamav\inflate64.c"
341 345
 				>
342 346
 			</File>
... ...
@@ -349,10 +362,18 @@
349 349
 				>
350 350
 			</File>
351 351
 			<File
352
+				RelativePath="..\libclamav\jsparse\js-norm.c"
353
+				>
354
+			</File>
355
+			<File
352 356
 				RelativePath="..\libclamav\line.c"
353 357
 				>
354 358
 			</File>
355 359
 			<File
360
+				RelativePath=".\compat\ltdl.c"
361
+				>
362
+			</File>
363
+			<File
356 364
 				RelativePath="..\libclamav\lzma_iface.c"
357 365
 				>
358 366
 			</File>
... ...
@@ -409,6 +430,10 @@
409 409
 				>
410 410
 			</File>
411 411
 			<File
412
+				RelativePath="..\libclamav\nsis\nulsft.c"
413
+				>
414
+			</File>
415
+			<File
412 416
 				RelativePath="..\libclamav\ole2_extract.c"
413 417
 				>
414 418
 			</File>
... ...
@@ -449,6 +474,10 @@
449 449
 				>
450 450
 			</File>
451 451
 			<File
452
+				RelativePath=".\3rdparty\pthreads\pthread.c"
453
+				>
454
+			</File>
455
+			<File
452 456
 				RelativePath="..\libclamav\readdb.c"
453 457
 				>
454 458
 			</File>
... ...
@@ -457,6 +486,14 @@
457 457
 				>
458 458
 			</File>
459 459
 			<File
460
+				RelativePath="..\libclamav\regex\regcomp.c"
461
+				>
462
+			</File>
463
+			<File
464
+				RelativePath="..\libclamav\regex\regerror.c"
465
+				>
466
+			</File>
467
+			<File
460 468
 				RelativePath="..\libclamav\regex_list.c"
461 469
 				>
462 470
 			</File>
... ...
@@ -465,6 +502,14 @@
465 465
 				>
466 466
 			</File>
467 467
 			<File
468
+				RelativePath="..\libclamav\regex\regexec.c"
469
+				>
470
+			</File>
471
+			<File
472
+				RelativePath="..\libclamav\regex\regfree.c"
473
+				>
474
+			</File>
475
+			<File
468 476
 				RelativePath="..\libclamav\rtf.c"
469 477
 				>
470 478
 			</File>
... ...
@@ -493,6 +538,10 @@
493 493
 				>
494 494
 			</File>
495 495
 			<File
496
+				RelativePath="..\libclamav\regex\strlcpy.c"
497
+				>
498
+			</File>
499
+			<File
496 500
 				RelativePath="..\libclamav\table.c"
497 501
 				>
498 502
 			</File>
... ...
@@ -566,434 +615,6 @@
566 566
 			Filter="h;hpp;hxx;hm;inl;inc;xsd"
567 567
 			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
568 568
 			>
569
-			<File
570
-				RelativePath="..\libclamav\7z.h"
571
-				>
572
-			</File>
573
-			<File
574
-				RelativePath="..\libclamav\7z\7zBuf.h"
575
-				>
576
-			</File>
577
-			<File
578
-				RelativePath="..\libclamav\7z\7zCrc.h"
579
-				>
580
-			</File>
581
-			<File
582
-				RelativePath="..\libclamav\7z\Archive\7z\7zDecode.h"
583
-				>
584
-			</File>
585
-			<File
586
-				RelativePath="..\libclamav\7z\Archive\7z\7zExtract.h"
587
-				>
588
-			</File>
589
-			<File
590
-				RelativePath="..\libclamav\7z\7zFile.h"
591
-				>
592
-			</File>
593
-			<File
594
-				RelativePath="..\libclamav\7z\Archive\7z\7zHeader.h"
595
-				>
596
-			</File>
597
-			<File
598
-				RelativePath="..\libclamav\7z\Archive\7z\7zIn.h"
599
-				>
600
-			</File>
601
-			<File
602
-				RelativePath="..\libclamav\7z\Archive\7z\7zItem.h"
603
-				>
604
-			</File>
605
-			<File
606
-				RelativePath="..\libclamav\aspack.h"
607
-				>
608
-			</File>
609
-			<File
610
-				RelativePath="..\libclamav\autoit.h"
611
-				>
612
-			</File>
613
-			<File
614
-				RelativePath="..\libclamav\7z\Bcj2.h"
615
-				>
616
-			</File>
617
-			<File
618
-				RelativePath="..\libclamav\bignum.h"
619
-				>
620
-			</File>
621
-			<File
622
-				RelativePath="..\libclamav\bignum_class.h"
623
-				>
624
-			</File>
625
-			<File
626
-				RelativePath="..\libclamav\binhex.h"
627
-				>
628
-			</File>
629
-			<File
630
-				RelativePath="..\libclamav\blob.h"
631
-				>
632
-			</File>
633
-			<File
634
-				RelativePath="..\libclamav\7z\Bra.h"
635
-				>
636
-			</File>
637
-			<File
638
-				RelativePath="..\libclamav\bytecode.h"
639
-				>
640
-			</File>
641
-			<File
642
-				RelativePath="..\libclamav\bytecode_api.h"
643
-				>
644
-			</File>
645
-			<File
646
-				RelativePath="..\libclamav\bytecode_priv.h"
647
-				>
648
-			</File>
649
-			<File
650
-				RelativePath="..\libclamav\cab.h"
651
-				>
652
-			</File>
653
-			<File
654
-				RelativePath="..\libclamav\chmunpack.h"
655
-				>
656
-			</File>
657
-			<File
658
-				RelativePath="..\libclamav\clamav.h"
659
-				>
660
-			</File>
661
-			<File
662
-				RelativePath="..\libclamav\clambc.h"
663
-				>
664
-			</File>
665
-			<File
666
-				RelativePath="..\libclamav\cltypes.h"
667
-				>
668
-			</File>
669
-			<File
670
-				RelativePath="..\libclamav\cpio.h"
671
-				>
672
-			</File>
673
-			<File
674
-				RelativePath="..\libclamav\7z\CpuArch.h"
675
-				>
676
-			</File>
677
-			<File
678
-				RelativePath="..\libclamav\cvd.h"
679
-				>
680
-			</File>
681
-			<File
682
-				RelativePath="..\libclamav\dconf.h"
683
-				>
684
-			</File>
685
-			<File
686
-				RelativePath="..\libclamav\default.h"
687
-				>
688
-			</File>
689
-			<File
690
-				RelativePath="..\libclamav\disasm.h"
691
-				>
692
-			</File>
693
-			<File
694
-				RelativePath="..\libclamav\disasmpriv.h"
695
-				>
696
-			</File>
697
-			<File
698
-				RelativePath="..\libclamav\dlp.h"
699
-				>
700
-			</File>
701
-			<File
702
-				RelativePath="..\libclamav\dsig.h"
703
-				>
704
-			</File>
705
-			<File
706
-				RelativePath="..\libclamav\elf.h"
707
-				>
708
-			</File>
709
-			<File
710
-				RelativePath="..\libclamav\encoding_aliases.h"
711
-				>
712
-			</File>
713
-			<File
714
-				RelativePath="..\libclamav\entconv.h"
715
-				>
716
-			</File>
717
-			<File
718
-				RelativePath="..\libclamav\entitylist.h"
719
-				>
720
-			</File>
721
-			<File
722
-				RelativePath="..\libclamav\execs.h"
723
-				>
724
-			</File>
725
-			<File
726
-				RelativePath="..\libclamav\explode.h"
727
-				>
728
-			</File>
729
-			<File
730
-				RelativePath="..\libclamav\filetypes.h"
731
-				>
732
-			</File>
733
-			<File
734
-				RelativePath="..\libclamav\filetypes_int.h"
735
-				>
736
-			</File>
737
-			<File
738
-				RelativePath="..\libclamav\fmap.h"
739
-				>
740
-			</File>
741
-			<File
742
-				RelativePath="..\libclamav\fsg.h"
743
-				>
744
-			</File>
745
-			<File
746
-				RelativePath="..\libclamav\hashtab.h"
747
-				>
748
-			</File>
749
-			<File
750
-				RelativePath="..\libclamav\htmlnorm.h"
751
-				>
752
-			</File>
753
-			<File
754
-				RelativePath="..\libclamav\iana_cctld.h"
755
-				>
756
-			</File>
757
-			<File
758
-				RelativePath="..\libclamav\iana_tld.h"
759
-				>
760
-			</File>
761
-			<File
762
-				RelativePath="..\libclamav\inffixed64.h"
763
-				>
764
-			</File>
765
-			<File
766
-				RelativePath="..\libclamav\inflate64.h"
767
-				>
768
-			</File>
769
-			<File
770
-				RelativePath="..\libclamav\inflate64_priv.h"
771
-				>
772
-			</File>
773
-			<File
774
-				RelativePath="..\libclamav\is_tar.h"
775
-				>
776
-			</File>
777
-			<File
778
-				RelativePath="..\libclamav\ishield.h"
779
-				>
780
-			</File>
781
-			<File
782
-				RelativePath="..\libclamav\line.h"
783
-				>
784
-			</File>
785
-			<File
786
-				RelativePath="..\libclamav\lzma_iface.h"
787
-				>
788
-			</File>
789
-			<File
790
-				RelativePath="..\libclamav\7z\LzmaDec.h"
791
-				>
792
-			</File>
793
-			<File
794
-				RelativePath="..\libclamav\macho.h"
795
-				>
796
-			</File>
797
-			<File
798
-				RelativePath="..\libclamav\matcher-ac.h"
799
-				>
800
-			</File>
801
-			<File
802
-				RelativePath="..\libclamav\matcher-bm.h"
803
-				>
804
-			</File>
805
-			<File
806
-				RelativePath="..\libclamav\matcher.h"
807
-				>
808
-			</File>
809
-			<File
810
-				RelativePath="..\libclamav\mbox.h"
811
-				>
812
-			</File>
813
-			<File
814
-				RelativePath="..\libclamav\md5.h"
815
-				>
816
-			</File>
817
-			<File
818
-				RelativePath="..\libclamav\message.h"
819
-				>
820
-			</File>
821
-			<File
822
-				RelativePath="..\libclamav\mew.h"
823
-				>
824
-			</File>
825
-			<File
826
-				RelativePath="..\shared\misc.h"
827
-				>
828
-			</File>
829
-			<File
830
-				RelativePath="..\libclamav\mpool.h"
831
-				>
832
-			</File>
833
-			<File
834
-				RelativePath="..\libclamav\msexpand.h"
835
-				>
836
-			</File>
837
-			<File
838
-				RelativePath="..\libclamav\mspack.h"
839
-				>
840
-			</File>
841
-			<File
842
-				RelativePath="..\libclamav\ole2_extract.h"
843
-				>
844
-			</File>
845
-			<File
846
-				RelativePath="..\libclamav\others.h"
847
-				>
848
-			</File>
849
-			<File
850
-				RelativePath="..\libclamav\packlibs.h"
851
-				>
852
-			</File>
853
-			<File
854
-				RelativePath="..\libclamav\pdf.h"
855
-				>
856
-			</File>
857
-			<File
858
-				RelativePath="..\libclamav\pe.h"
859
-				>
860
-			</File>
861
-			<File
862
-				RelativePath="..\libclamav\petite.h"
863
-				>
864
-			</File>
865
-			<File
866
-				RelativePath="..\libclamav\phish_domaincheck_db.h"
867
-				>
868
-			</File>
869
-			<File
870
-				RelativePath="..\libclamav\phish_whitelist.h"
871
-				>
872
-			</File>
873
-			<File
874
-				RelativePath="..\libclamav\phishcheck.h"
875
-				>
876
-			</File>
877
-			<File
878
-				RelativePath="..\libclamav\readdb.h"
879
-				>
880
-			</File>
881
-			<File
882
-				RelativePath="..\libclamav\rebuildpe.h"
883
-				>
884
-			</File>
885
-			<File
886
-				RelativePath="..\libclamav\regex_list.h"
887
-				>
888
-			</File>
889
-			<File
890
-				RelativePath="..\libclamav\regex_suffix.h"
891
-				>
892
-			</File>
893
-			<File
894
-				RelativePath="..\libclamav\rtf.h"
895
-				>
896
-			</File>
897
-			<File
898
-				RelativePath="..\libclamav\scanners.h"
899
-				>
900
-			</File>
901
-			<File
902
-				RelativePath="..\libclamav\sha256.h"
903
-				>
904
-			</File>
905
-			<File
906
-				RelativePath="..\libclamav\sis.h"
907
-				>
908
-			</File>
909
-			<File
910
-				RelativePath="..\libclamav\special.h"
911
-				>
912
-			</File>
913
-			<File
914
-				RelativePath="..\libclamav\spin.h"
915
-				>
916
-			</File>
917
-			<File
918
-				RelativePath="..\libclamav\str.h"
919
-				>
920
-			</File>
921
-			<File
922
-				RelativePath="..\libclamav\table.h"
923
-				>
924
-			</File>
925
-			<File
926
-				RelativePath="..\libclamav\text.h"
927
-				>
928
-			</File>
929
-			<File
930
-				RelativePath="..\libclamav\textdet.h"
931
-				>
932
-			</File>
933
-			<File
934
-				RelativePath="..\libclamav\textnorm.h"
935
-				>
936
-			</File>
937
-			<File
938
-				RelativePath="..\libclamav\tnef.h"
939
-				>
940
-			</File>
941
-			<File
942
-				RelativePath="..\libclamav\type_desc.h"
943
-				>
944
-			</File>
945
-			<File
946
-				RelativePath="..\libclamav\7z\Types.h"
947
-				>
948
-			</File>
949
-			<File
950
-				RelativePath="..\libclamav\unarj.h"
951
-				>
952
-			</File>
953
-			<File
954
-				RelativePath="..\libclamav\uniq.h"
955
-				>
956
-			</File>
957
-			<File
958
-				RelativePath="..\libclamav\unsp.h"
959
-				>
960
-			</File>
961
-			<File
962
-				RelativePath="..\libclamav\untar.h"
963
-				>
964
-			</File>
965
-			<File
966
-				RelativePath="..\libclamav\unzip.h"
967
-				>
968
-			</File>
969
-			<File
970
-				RelativePath="..\libclamav\upack.h"
971
-				>
972
-			</File>
973
-			<File
974
-				RelativePath="..\libclamav\upx.h"
975
-				>
976
-			</File>
977
-			<File
978
-				RelativePath="..\libclamav\uuencode.h"
979
-				>
980
-			</File>
981
-			<File
982
-				RelativePath="..\libclamav\vba_extract.h"
983
-				>
984
-			</File>
985
-			<File
986
-				RelativePath="..\libclamav\version.h"
987
-				>
988
-			</File>
989
-			<File
990
-				RelativePath="..\libclamav\wwunpack.h"
991
-				>
992
-			</File>
993
-			<File
994
-				RelativePath="..\libclamav\yc.h"
995
-				>
996
-			</File>
997 569
 		</Filter>
998 570
 		<Filter
999 571
 			Name="Resource Files"
... ...
@@ -11,6 +11,8 @@
11 11
 typedef int ssize_t;
12 12
 #define strcasecmp lstrcmpi
13 13
 #define strncasecmp strnicmp
14
+#define mkdir(path, mode) mkdir(path)
15
+#define lstat stat
14 16
 
15 17
 /* FIXME: this one is b0rked */
16 18
 #define snprintf _snprintf
... ...
@@ -20,14 +22,15 @@ typedef int ssize_t;
20 20
 #define S_IRUSR S_IREAD
21 21
 #define S_IWUSR S_IWRITE
22 22
 #define S_IRWXU (S_IRUSR|S_IWUSR)
23
-#define mkdir(path, mode) mkdir(path)
24
-#define lstat stat
23
+#define S_ISDIR(mode) ((_S_IFDIR & mode)!=0)
24
+#define S_ISREG(mode) ((_S_IFREG & mode)!=0)
25
+#define S_ISLNK(mode) (0)
25 26
 #define F_OK 0
26 27
 #define W_OK 2
27 28
 #define R_OK 4
28 29
 #define X_OK R_OK
29 30
 
30
-#define SEARCH_LIBDIR "."
31
+#define SEARCH_LIBDIR ""
31 32
 
32 33
 #ifndef MIN
33 34
 #define MIN(a, b)	(((a) < (b)) ? (a) : (b))