homm
5ffd9e53bc
use calloc and INT_MAX
2016-05-26 02:28:35 +03:00
homm
1c3def1d5a
return malloc
2016-05-26 02:07:56 +03:00
homm
eec17c0c7a
change xmax meaning to avoid substructions
2016-05-26 02:07:56 +03:00
homm
7722d00daf
simpler coefficients calculation in ImagingResampleHorizontal_8bpc
2016-05-26 02:07:56 +03:00
homm
d3749ccc7c
possible increase precision and avoid compiler warnings
2016-05-26 02:07:56 +03:00
homm
f44a7f8b11
implement round
...
fix windows build
2016-05-26 02:07:56 +03:00
homm
babaaf9bbe
raise on special cases even if imIn->image8
2016-05-26 02:07:56 +03:00
homm
d48324bd21
unroll 8bpc version
2016-05-26 02:07:56 +03:00
homm
126c3151b5
use ImagingPrecompute in ImagingResampleHorizontal_8bpc
2016-05-26 02:07:56 +03:00
homm
f3f03bcd67
unroll 32bpc version
2016-05-26 02:07:56 +03:00
homm
04552b015d
use ImagingPrecompute in ImagingResampleHorizontal_32bpc
2016-05-26 02:07:56 +03:00
homm
023f7adcf6
precompute function
2016-05-26 02:07:56 +03:00
homm
7693da9287
separate 8 and 32 bpc implementations
2016-05-26 02:07:56 +03:00
homm
9618ec98b8
test for consistency
2016-05-26 02:07:56 +03:00
homm
e13297b396
make coefficients ints
2016-05-26 02:07:03 +03:00
homm
342e6f213b
extra line
2016-05-26 02:07:03 +03:00
homm
3ee407e859
pass struct filter to ImagingResampleHorizontal
2016-05-26 02:07:03 +03:00
homm
0e2a8e4323
intermediate not normalized buffer for coefficients
2016-05-26 02:07:03 +03:00
homm
a5b99dd302
move checks before mallocs to prevent memory leaks
2016-05-26 02:07:03 +03:00
Stephen Arthur
0bc4423487
Move the declaration to the beginning of scope to make vs happy
2016-05-22 19:13:19 -07:00
Stephen Arthur
67a243d82d
Removing the one-line variable declare / assign to make appveyor happy
2016-05-22 18:50:42 -07:00
Stephen Arthur
8b572ade81
Found edge cases with custom qtables
...
And there was a lingering bug since the previous qtable unsigned char fix
(#1814 ) since the call to array.array was in another place, the roundtrip was no
longer equivalent.
That was a minor change, but the revised test wouldn't pass because saving an image
with one custom qtable automatically adds a second to it by the call to
jpeg_set_defaults.
With 1 or >2 custom tables, there is extra work we have to do due to that call.
2016-05-22 17:54:31 -07:00
rr-
0430a4a834
Fix libimagequant facade header
2016-05-21 21:11:54 +02:00
rr-
bc0e896b35
Change libimagequant facade signature
2016-05-21 21:01:57 +02:00
rr-
8b7fb44c6b
Make libimagequant visibility detectable
2016-05-06 21:06:54 +02:00
rr-
0b4a089321
Fix C99 errors inside libimagequant quantizer
2016-05-06 20:08:35 +02:00
rr-
cb4ded4929
Minor fixes
2016-05-06 19:29:42 +02:00
rr-
eb354be7c4
Add method=Image.LIBIMAGEQUANT for quantize()
2016-05-05 21:39:16 +02:00
wiredfool
faeb269e30
Revert "Fix for DIB/BMP images"
2016-04-19 16:37:29 +01:00
Hugo
a7c678b1af
Merge pull request #1813 from wiredfool/DIB_1293
...
Fix for DIB/BMP images
2016-04-06 19:58:25 +03:00
wiredfool
0e3caec317
Added Transparency mask unpacker for BMP files
2016-04-06 07:40:49 -07:00
wiredfool
14f3b45f46
Merge pull request #1789 from zwhfly/tiff
...
Add Support for 2/4 bpp Tiff Grayscale Images
2016-04-03 12:07:48 -07:00
wiredfool
a1f244343d
Fixed j2k integer overflow error on encode - CVE-2016-3076
2016-04-01 05:11:54 -07:00
zwhfly
4d147c16d3
Add Some Unpackers for 2/4 bpp Grayscale Format
...
As seen in some tiff image files.
2016-03-29 20:17:39 +08:00
Andrew Murray
a7c7aa171d
Updated redirected URLs
2016-02-11 18:51:36 +11:00
Eric Soroos
07a42363c4
change ifd entry to use uint following libtiff interface
2016-02-04 08:13:17 -08:00
Eric Soroos
717720b051
Fix for buffer overflow in TiffDecode.c CVE-2016-0740
2016-02-04 08:13:11 -08:00
wiredfool
893a40850c
FLI overflow error fix and testcase CVE-2016-0775
2016-02-04 08:13:02 -08:00
wiredfool
1723dc2d07
Merge pull request #1714 from wiredfool/resample-overflow
...
Overflow in resample.c, with tests
2016-02-04 07:52:59 -08:00
Ned Williamson
4e0d9b0b97
fix integer overflow in Resample.c
2016-02-04 07:19:54 -08:00
wiredfool
ae453aa18b
PCD decoder overruns the shuffle buffer, Fixes #568
2016-02-02 05:46:26 -08:00
Andrew Murray
8f9b3a7372
Changed arcs, chords and pie slices to use floats
2015-12-09 00:28:52 +11:00
Andrew Murray
9a2903bf5b
Changed 32 bit to 32-bit and 64 bit to 64-bit
2015-10-15 00:49:03 +11:00
Hugo van Kemenade
00615df3b5
Merge pull request #1487 from radarhere/fix
...
Removed trailing whitespace
2015-10-12 11:06:11 +03:00
Andrew Murray
89fb9965ef
Capitalised Python and Pillow
2015-10-11 21:27:43 +11:00
Andrew Murray
6bd7e7f02d
Removed trailing whitespace
2015-10-11 21:24:35 +11:00
nu774
2be12dec2b
Don't use int to handle type
...
Couldn't accept handle values greater than 0x7FFFFFFF, which wasn't enough even on 32bit system, and completely wrong for 64bit.
2015-10-01 14:54:32 +01:00
Christoph Gohlke
e6733c813a
Disable compiler optimizations for topalette and tobilevel functions for all msvc versions
2015-08-28 23:15:56 -07:00
wiredfool
a92d737177
Merge pull request #1278 from wiredfool/winbuild
...
Windows Build/CI
2015-06-18 09:03:38 -07:00
wiredfool
d2e54d7973
Merge pull request #1255 from radarhere/polygon
...
Fixed polygon edge drawing
2015-06-17 18:18:36 -07:00
wiredfool
fd55099ffc
merge a year of master into winbuild
2015-06-10 12:49:07 -07:00
Andrew Murray
9e24ae023d
Fixed various typos
2015-06-08 01:17:49 +10:00
Andrew Murray
16261beeba
Fixed polygon edge drawing
2015-06-05 11:16:33 +10:00
Andrew Murray
3cd7f0e6f2
Removed unused variable in Jpeg2KEncode
2015-04-01 15:14:56 +11:00
wiredfool
4566a4dcbe
Merge pull request #1128 from hugovk/noise
...
Fix ImagingEffectNoise
2015-03-08 18:29:44 -07:00
hugovk
f1333617d5
Replace harcoded assumption of RAND_MAX with constant. It caused an infinite loop if RAND_MAX > 32767
2015-03-05 23:14:36 +02:00
hugovk
0b79c6e24a
Remove unreachable code (if 0)
2015-03-05 21:07:16 +02:00
wiredfool
b384a7f992
Merge pull request #1088 from bgilbert/opaque-RGBa
...
Fast path for opaque pixels in RGBa unpacker
2015-02-05 22:32:58 -08:00
immerrr
d41fed6732
Enable basic support for 'RGBa' raw encoding/decoding
2015-02-02 13:06:56 +03:00
Benjamin Gilbert
77b020b374
Special-case opaque pixels in RGBa unpacker
...
Avoid the expensive multiply and divide when the pixel is opaque.
On my system, this change gives a 5.76x speedup loading an opaque image
with this call:
PIL.Image.frombuffer('RGBA', (1000, 1000), buf, 'raw', 'RGBa', 0, 1)
2015-01-24 01:13:58 -05:00
Christoph Gohlke
9b8202203a
Use Py_ssize_t instead of ssize_t
2014-12-19 01:30:16 -08:00
Christoph Gohlke
b8fafdef69
Use Py_ssize_t instead of ssize_t
2014-12-19 01:28:21 -08:00
Christoph Gohlke
8fb8d2ec3a
Fix msvc compiler error
2014-12-15 14:44:12 -08:00
wiredfool
2d2293ba3b
Merge pull request #1028 from homm/resize-constants
...
Rename Image.ANTIALIAS to Image.LANCZOS
2014-12-03 16:14:29 -08:00
wiredfool
05b578e7f4
Fix for building on OSX/Clang.
2014-12-01 20:40:10 -08:00
homm
43d5d06ce4
rename Image.ANTIALIAS to Image.LANCZOS
2014-11-28 01:41:56 +03:00
wiredfool
e16ee15f2c
Merge pull request #997 from homm/replace-resize
...
Replace resize method
2014-11-27 10:26:48 -08:00
wiredfool
8a3302ba5d
Merge pull request #961 from homm/fast-box-blur
...
Merge Fast Gaussian Blur
2014-11-27 10:20:11 -08:00
homm
107b4a8b07
sharp alpha channel
...
resolve sharp endianness issues
2014-11-22 01:58:31 +03:00
homm
d0c419632e
resolve endianness issues
2014-11-21 21:53:13 +03:00
homm
bc0f896a47
rename Antialias and stretch to resample
2014-11-19 14:36:00 +03:00
homm
1a097d2e02
Merge commit 'e0b94d65bedb4a2124228aa579686a3ba2974d11' into replace-resize
2014-11-19 13:45:04 +03:00
homm
6078e6e1a7
this bug actually was in previous implementation too:
...
type switch default case was never achieved because special
images is in image8 pointers, not in image32
2014-11-19 03:15:24 +03:00
wiredfool
9d1fde0fff
Use __NO_INLINE__ instead of Py_DEBUG
2014-11-13 21:35:06 -08:00
wiredfool
112a4815f0
Fix compilation on debug versions of python
2014-11-13 15:53:51 -08:00
homm
aba798af25
replace resize implementation
2014-11-09 21:52:16 +03:00
homm
90ee223305
Move ImagingTransposeToNew from Antialias.c to Geometry.c
2014-11-09 03:15:54 +03:00
homm
7a64f7be80
Replace UINT32 assignment with per-channel UINT8 assignment
2014-11-09 03:08:25 +03:00
homm
abc5e11371
two bands case
2014-11-09 03:08:25 +03:00
Eric Soroos
af02f2b29e
Fix for endianness issues in stretch
2014-11-09 03:07:19 +03:00
homm
b8a2b5b907
typo. Free mem after ModeError.
2014-11-09 03:05:57 +03:00
homm
1cd6da4a49
fix performance regression on 64 bit GCC 4.8.
2014-11-09 03:05:57 +03:00
homm
42967dd1a6
speedup by unrolling loops
2014-11-09 03:05:57 +03:00
homm
c22af89ef0
optimize memory usage
2014-11-09 03:05:56 +03:00
homm
e9fc720709
faster float to 8bit convertion
2014-11-09 03:05:56 +03:00
homm
a484d28d1f
make x indexes int
2014-11-09 03:05:56 +03:00
homm
e276e6a535
move ww into coefficients
2014-11-09 03:05:56 +03:00
homm
01b947c602
Iterate pixels in native order
2014-11-09 03:05:56 +03:00
homm
b77521bd6c
Precompute coefficients for all x
2014-11-09 03:05:56 +03:00
homm
40f9f48680
two ImagingStretchHorizaontal pass with two transposes
2014-11-09 03:05:56 +03:00
homm
c8471bcbda
Hide stretch implementation detail in Antialias.c
2014-11-09 03:05:56 +03:00
wiredfool
cfbe49f124
Merge pull request #994 from homm/add-transpose
...
Add transpose and cache aware rotation
2014-11-07 13:58:18 -08:00
homm
4cf2f158b6
add test
...
update comment
2014-11-07 11:48:47 +03:00
homm
a51b176644
make ROTATE_CHUNK constant
...
add comment
2014-11-07 04:46:16 +03:00
homm
cfa20f1004
rotate 90 and 270 by chunks
2014-11-07 04:15:18 +03:00
homm
a960d440db
less operations in loop
2014-11-07 03:57:00 +03:00
homm
d41bc4fbfc
convert tabs into spaces
2014-11-07 03:21:38 +03:00
wiredfool
20be641329
Merge pull request #970 from homm/fix-bicubic-stretch
...
Fix bicubic stretch interpolation
2014-11-05 17:45:47 -08:00
homm
4007a78d53
rename temp to imTransposed
...
actualize comments
2014-10-30 14:48:29 +03:00
homm
c99f05cd6e
change arguments order and names in LineBoxBlurXX
and HorizontalBoxBlur
2014-10-30 14:32:41 +03:00
homm
36a35e7e27
update box_blur help
...
fix code style for `!`
fix spelling
2014-10-30 14:19:12 +03:00
homm
4323683a63
move ImagingGaussianBlur to BoxBlur.c
2014-10-25 17:17:53 +04:00
homm
274f0a14ba
change arguments order and names to match other functions
2014-10-25 17:16:14 +04:00
homm
65173f946b
replace gaussian blur with extended box blur implementation
2014-10-25 16:36:41 +04:00
homm
d89c9ab750
Merge branch 'gaussian-refactor' into fast-box-blur
2014-10-25 15:50:57 +04:00
homm
36cbb16bf6
Add tests. Rise for "P" and "1".
2014-10-25 14:23:07 +04:00
homm
acdcdd487f
convert tabs to spaces
2014-10-25 14:19:29 +04:00
homm
12ba034dc8
unlock upscale filters
2014-10-25 12:39:03 +04:00
homm
d7d92275f1
Change arguments order and names
2014-10-25 04:28:05 +04:00
homm
57cd15f9b1
Use Transpose from geometry.
2014-10-25 04:27:46 +04:00
homm
316ac5ad57
Merge branch 'add-transpose' into fast-box-blur
2014-10-25 04:18:43 +04:00
homm
0c90ce2504
Add new fast ImagingTranspose function
2014-10-25 04:17:59 +04:00
homm
c2d688c4b6
fix bicubic stretch interpolation
2014-10-24 12:57:32 +04:00
homm
c1eb77a4ed
faster commit
2014-10-19 18:34:49 +04:00
homm
f55ea4c04c
Do not use lineOut buffer if source and destination are different.
2014-10-19 13:54:18 +04:00
homm
516bd90cf7
support for multiple passes with only two transposes
2014-10-19 13:54:13 +04:00
homm
d91d7b9826
significant speed improvement (about 55%)
2014-10-19 00:01:38 +04:00
homm
22668de6db
HorizontalBoxBlur unified
...
LineBoxBlur8 & LineBoxBlur32
2014-10-18 18:37:14 +04:00
homm
7d77db20ad
Small optimization: replace division with multiply.
2014-10-18 04:02:10 +04:00
homm
d07c9c2e4e
unused
2014-10-16 16:00:29 +04:00
homm
53c8352f39
highlevel api
2014-10-15 04:08:21 +04:00
homm
5861a46a54
check image mode
2014-10-14 23:29:50 +04:00
homm
a27baf90be
fix large radius. tests
2014-10-14 03:26:46 +04:00
homm
da84cd7ea6
big radius special case
2014-10-14 02:17:53 +04:00
homm
d3d4ff69eb
introduce corners
2014-10-13 23:45:21 +04:00
homm
b1cef839bd
fix window calculation
2014-10-13 04:40:44 +04:00
homm
3906ff3c76
fix x bounds
2014-10-13 03:39:35 +04:00
homm
835db5d12f
type check
2014-10-12 22:40:36 +04:00
homm
2c723abbca
move HorizontalBoxBlur8 down and remove comments
2014-10-12 22:40:36 +04:00
homm
591fc67aae
micro optimizations
2014-10-12 22:40:31 +04:00
homm
92635d0624
8bit
2014-10-12 22:26:00 +04:00
homm
e95382eb08
integer implementation for float radius
2014-10-12 20:30:46 +04:00
homm
f3af171dc4
fix round compensation
2014-10-12 20:09:28 +04:00
homm
f711ab3eb6
float radius
2014-10-12 20:01:49 +04:00
homm
23068e49be
allow float radius (without implementation)
2014-10-12 19:24:38 +04:00
homm
b7b3c719fa
blur in both directions
2014-10-12 17:59:20 +04:00
homm
cc9eff5c68
fast realization with moving window.
...
linear speed against any radius
2014-10-12 17:47:00 +04:00
homm
a6937d84d8
first Horizontal Blur for 32
2014-10-12 17:11:24 +04:00
homm
d49459f5b2
box blur dummy
2014-10-12 16:30:00 +04:00
homm
e38a64b21b
round values with initial .5
...
this improves performance and readabillity
2014-10-12 15:13:37 +04:00
homm
bc24685344
do sum calculation in same loop as maskData calculation
2014-10-12 14:21:13 +04:00
homm
51984f4aa8
fix radius == 0
2014-10-12 14:16:09 +04:00
homm
84b9f16bfd
add effective_scale to all APIs
2014-10-12 03:29:20 +04:00
homm
091b15f9d5
rename vars
2014-10-12 03:19:26 +04:00
homm
5bb0cfa17a
remove pseudo vcs
2014-10-12 02:05:13 +04:00
homm
b1b5db16cd
padding not using anywhere
2014-10-12 00:50:18 +04:00
homm
7bc19c4019
reference gaussian_blur implementation
...
radius meaning match graphicmagick, pixelmator other software
and standard deviation from classic gaussian blur algorithm
2014-10-11 23:51:26 +04:00
homm
bef7e1dce8
cache hasAlpha for ImagingUnsharpMask
2014-10-08 17:40:33 +04:00
homm
e56aed1a95
round pixel values
2014-10-08 15:05:48 +04:00
homm
05c99131e0
fix blur for RGBA & RGBX
2014-10-06 21:55:43 +04:00
homm
626acf705f
convert tabs to spaces
2014-10-06 21:04:54 +04:00
Sandro Mani
7502e6dd45
Remove executable permissions from Jpeg2KEncode.c
2014-10-03 09:57:32 +02:00
Andrew Murray
006229595a
Remove unused variable in libImaging
2014-10-02 07:48:12 +10:00
wiredfool
d64b2376bc
Memory Leak: Freeing malloc'd memory in Jpeg Encode
2014-09-24 15:46:24 -07:00
wiredfool
00addab5e4
Real fix for PR #915 , keep track of the qtables length
2014-09-23 09:23:55 -07:00
Christoph Gohlke
b23c57e12a
Fix segfault in TestFileJpeg.test_quality_keep on win-amd64
2014-09-22 14:39:08 -07:00
Christoph Gohlke
f3e3af6686
Fix msvc build error
2014-09-21 16:48:35 -07:00
Josh Ware
94194ed248
Cleaning up.
...
Reduced memory limit to 1GB
2014-09-12 22:09:27 -07:00
Josh Ware
dd221d9ec0
Don't Py_DECREF context->quality_layers if there is no encoder
2014-09-12 22:09:27 -07:00
Josh Ware
e4e1f5c2d4
More testing...
2014-09-12 22:09:27 -07:00
Josh Ware
9ccc930784
Looking for cleanup segfault
2014-09-12 22:09:27 -07:00
Josh Ware
7407371deb
NULLing pointers on cleanup
2014-09-12 22:09:27 -07:00
Josh Ware
caa95a26b2
Added memory leak fix and testing for Encoder
2014-09-12 22:09:27 -07:00
Josh Ware
b78e5444f4
Prevent multiple calls to ImagingIncrementalCodecDestroy
2014-09-12 22:09:27 -07:00
Kenny Ostrom
d5b4f136c5
added ifd offset to the tiff decoder args, call TIFFSetSubDirectory
2014-09-02 15:20:25 -07:00
hugovk
3a9612af50
Test mandelbrot with bad arguments
2014-09-02 16:39:35 +03:00
hugovk
bcc5305125
Add access functions for ImagingEffectSpread with a test
2014-09-02 15:53:58 +03:00
hugovk
8c96d38ce9
Add access functions for ImagingEffectMandelbrot with a test
2014-09-02 15:14:00 +03:00
hugovk
76ef83263b
Remove unreachable and never completed Perlin turbulence code
2014-09-02 14:47:34 +03:00
hugovk
860e67e1c4
Add access functions for ImagingEffectNoise with a test
2014-09-02 14:11:08 +03:00
wiredfool
9d00686f53
backup implementation of Round for windows platforms
2014-08-24 16:37:54 -07:00
wiredfool
97b5c72630
backup implementation of Round for windows platforms
2014-08-22 16:14:48 -07:00
wiredfool
c7b90f39f4
Merge from master
2014-08-22 14:50:33 -07:00
wiredfool
023ec0a2fc
Incorrect type -- fails on OSX
2014-07-25 10:32:55 -07:00
wiredfool
0bb1cd398f
Conversion between RGB and HSV images
2014-07-22 16:10:02 -07:00
wiredfool
625ff24358
Storage, packing and access for HSV format images
2014-07-22 16:09:22 -07:00
wiredfool
1008d6a993
Windows compatibility
2014-07-05 15:06:17 -07:00
wiredfool
b7f56409eb
Multiplication needs to be 64bit, to handle overflow regardless of the bittedness of the machine, fixes #771#
2014-07-05 14:30:34 -07:00
Alex Clark ☺
b2ed31e8cd
Merge pull request #737 from wiredfool/terseus_imagedraw
...
Merged Imagedraw rewrite
2014-07-01 14:15:11 -04:00
wiredfool
98a4991762
Using local block rather than array literal
2014-07-01 10:20:15 -07:00
wiredfool
a10b91786a
Fix compilation errors with C90 standard
2014-07-01 10:05:38 -07:00
cgohlke
767182a56f
ENH: enable inline functions by default
2014-06-30 15:26:41 -07:00
wiredfool
3bf375c5f7
Merge branch 'master' into terseus_imagedraw
2014-06-30 14:24:59 -07:00
wiredfool
50bbb5e0c5
Removed unused function
2014-06-30 14:12:30 -07:00
David Joy
b147dea535
Add tests and fix a 16bit vs 32bit integer bug
...
Yay unit tests!
2014-06-25 14:06:56 -04:00
David Joy
479693417f
Merge the rest of the patches
...
Now it actually works and passes the test suite
2014-06-25 11:42:06 -04:00
David Joy
433ec1c219
Clean commit of 16-bit monochrome JPEK2000 support
2014-06-25 11:13:33 -04:00
Hugo
9f0b688952
Merge pull request #725 from cgohlke/patch-2
...
Fix msvc warning: 'inline' : macro redefinition
2014-06-25 10:47:47 +03:00
cgohlke
e79f996a45
Fix test_imagedraw failures
2014-06-25 00:07:07 -07:00
cgohlke
b593ff06ad
Fix msvc warning: 'inline' : macro redefinition
2014-06-24 22:23:17 -07:00
wiredfool
a990af1b97
Merge from master
2014-06-24 16:48:38 -07:00
Alex Clark ☺
a126844135
Merge pull request #681 from wiredfool/openjpeg_21
...
OpenJpeg 2.1
2014-06-22 15:39:32 -04:00
wiredfool
05d8cb5b8f
Don't carve out exceptions for py2.4 compilers anymore
2014-06-18 16:08:50 -07:00
wiredfool
a8e02e093a
We don't need unistd.h anymore on unix platforms either
2014-06-18 16:08:16 -07:00
James Anderson
5ceb3ca875
Issue #697 . On MSVC 2012 builds <unistd.h> is not required.
2014-06-18 15:54:21 -07:00
wiredfool
64efea9ed8
Merge branch 'master' into winbuild
2014-06-05 00:15:58 +00:00
Alastair Houghton
72ecb8752e
Changed test for OpenJPEG 2.0
2014-05-27 12:52:50 +01:00
Alastair Houghton
1011e51083
Added support for OpenJPEG 2.1.
2014-05-27 12:43:54 +01:00
wiredfool
d7c049504d
Merge pull request #643 from CounterPillow/datatype-fix
...
Change unsigned INT16 to UINT16
2014-05-20 16:45:06 +01:00
Nicolas F
052ea606bf
Clean up defines and includes for Windows
...
1) Renamed USE_INLINE to PIL_USE_INLINE to avoid conflicts with
other headers/libraries.
2) Replace __WIN32__ and WIN32 with _WIN32
3) Don't define WIN32 when the compiler is MSVC but not on Windows
Why would you even...
4) Don't define strcasecmp if you're not even going to use it.
5) Don't include Windows.h with undefs for compilers newer than
1998 everywhere.
6) Don't surpress warnings for MSVC++ 4.0. People still using
MSVC++ 4.0 deserve it.
7) Don't include things that are already included in Windows.h
2014-05-09 21:05:30 +02:00