From de0134d3dc24fdb689d27b47e2a1fbc84b8b67c7 Mon Sep 17 00:00:00 2001 From: Lukas Tinkl Date: Jan 09 2009 00:41:29 +0000 Subject: KDE 4.1.4 --- diff --git a/.cvsignore b/.cvsignore index 81cdeac..c761790 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -kdegraphics-4.1.2.tar.bz2 +kdegraphics-4.1.4.tar.bz2 diff --git a/kdegraphics-4.1.3-libkdcraw-0.4.0.patch b/kdegraphics-4.1.3-libkdcraw-0.4.0.patch index 287ffc8..346b2e3 100644 --- a/kdegraphics-4.1.3-libkdcraw-0.4.0.patch +++ b/kdegraphics-4.1.3-libkdcraw-0.4.0.patch @@ -1,7 +1,7 @@ Index: test/raw2png.cpp =================================================================== ---- test/raw2png.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ test/raw2png.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- test/raw2png.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ test/raw2png.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,123 @@ +/* ============================================================ + * @@ -134,8 +134,8 @@ Added: svn:eol-style Index: test/CMakeLists.txt =================================================================== ---- test/CMakeLists.txt (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ test/CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- test/CMakeLists.txt (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ test/CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,44 @@ +KDE4_NO_ENABLE_FINAL(kdcraw) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../libkdcraw) @@ -189,8 +189,8 @@ Added: svn:eol-style Index: libraw/libraw/libraw_alloc.h =================================================================== ---- libraw/libraw/libraw_alloc.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/libraw/libraw_alloc.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/libraw/libraw_alloc.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/libraw/libraw_alloc.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,98 @@ +/* -*- C++ -*- + * File: libraw_alloc.h @@ -298,9 +298,9 @@ Added: svn:eol-style Index: libraw/libraw/libraw_internal.h =================================================================== ---- libraw/libraw/libraw_internal.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/libraw/libraw_internal.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) -@@ -0,0 +1,233 @@ +--- libraw/libraw/libraw_internal.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/libraw/libraw_internal.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) +@@ -0,0 +1,235 @@ +/* -*- C++ -*- + * File: libraw_internal.h + * Copyright 2008 Alex Tutubalin @@ -360,10 +360,6 @@ Index: libraw/libraw/libraw_internal.h + int vbits; + + }ph1_bits; -+ struct -+ { -+ uchar buf[0x4000], vbits, padding[3]; -+ }pana_bits; + int make_decoder_leaf; + struct + { @@ -376,6 +372,12 @@ Index: libraw/libraw/libraw_internal.h + }sony_decrypt; + unsigned foveon_decoder_huff[1024]; + uchar jpeg_buffer[4096]; ++ struct ++ { ++ uchar buf[0x4000]; ++ int vbits, padding; ++ }pana_bits; ++ + // init - should use in constructor/recycle + void init() + { @@ -477,8 +479,8 @@ Index: libraw/libraw/libraw_internal.h + + +struct jhead { -+ int bits, high, wide, clrs, sraw, psv, restart, vpred[4]; -+ struct decode *huff[4]; ++ int bits, high, wide, clrs, sraw, psv, restart, vpred[6]; ++ struct decode *huff[6]; + ushort *row; +}; +struct tiff_tag { @@ -542,8 +544,8 @@ Added: svn:eol-style Index: libraw/libraw/libraw.h =================================================================== ---- libraw/libraw/libraw.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/libraw/libraw.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/libraw/libraw.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/libraw/libraw.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,328 @@ +/* -*- C++ -*- + * File: libraw.h @@ -881,8 +883,8 @@ Added: svn:eol-style Index: libraw/libraw/libraw_types.h =================================================================== ---- libraw/libraw/libraw_types.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/libraw/libraw_types.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/libraw/libraw_types.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/libraw/libraw_types.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,272 @@ +/* -*- C++ -*- + * File: libraw_types.h @@ -1164,8 +1166,8 @@ Added: svn:eol-style Index: libraw/libraw/libraw_version.h =================================================================== ---- libraw/libraw/libraw_version.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/libraw/libraw_version.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/libraw/libraw_version.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/libraw/libraw_version.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,47 @@ +/* -*- C++ -*- + * File: version.h @@ -1195,7 +1197,7 @@ Index: libraw/libraw/libraw_version.h + +#define LIBRAW_MAJOR_VERSION 0 +#define LIBRAW_MINOR_VERSION 6 -+#define LIBRAW_PATCH_VERSION 1 ++#define LIBRAW_PATCH_VERSION 5 +#define LIBRAW_VERSION_TAIL Release + +#define _LIBRAW_VERSION_MAKE(a,b,c,d) #a"."#b"."#c"-"#d @@ -1222,8 +1224,8 @@ Added: svn:eol-style Index: libraw/libraw/libraw_const.h =================================================================== ---- libraw/libraw/libraw_const.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/libraw/libraw_const.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/libraw/libraw_const.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/libraw/libraw_const.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,147 @@ +/* -*- C++ -*- + * File: libraw_const.h @@ -1380,8 +1382,8 @@ Added: svn:eol-style Index: libraw/samples/mem_image.cpp =================================================================== ---- libraw/samples/mem_image.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/samples/mem_image.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/samples/mem_image.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/samples/mem_image.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,198 @@ +/* -*- C++ -*- + * File: mem_image.cpp @@ -1589,8 +1591,8 @@ Added: svn:eol-style Index: libraw/samples/dcraw_emu.cpp =================================================================== ---- libraw/samples/dcraw_emu.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/samples/dcraw_emu.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/samples/dcraw_emu.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/samples/dcraw_emu.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,216 @@ +/* -*- C++ -*- + * File: dcraw_emu.cpp @@ -1816,8 +1818,8 @@ Added: svn:eol-style Index: libraw/samples/simple_dcraw.cpp =================================================================== ---- libraw/samples/simple_dcraw.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/samples/simple_dcraw.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/samples/simple_dcraw.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/samples/simple_dcraw.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,157 @@ +/* -*- C++ -*- + * File: simple_dcraw.cpp @@ -1984,8 +1986,8 @@ Added: svn:eol-style Index: libraw/samples/dcraw_half.cpp =================================================================== ---- libraw/samples/dcraw_half.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/samples/dcraw_half.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/samples/dcraw_half.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/samples/dcraw_half.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,83 @@ +/* -*- C++ -*- + * File: simple_dcraw_c.c @@ -2079,8 +2081,8 @@ Added: svn:eol-style Index: libraw/samples/half_mt.cpp =================================================================== ---- libraw/samples/half_mt.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/samples/half_mt.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/samples/half_mt.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/samples/half_mt.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,178 @@ +/* -*- C++ -*- + * File: simple_dcraw_c.c @@ -2269,8 +2271,8 @@ Added: svn:eol-style Index: libraw/samples/identify.cpp =================================================================== ---- libraw/samples/identify.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/samples/identify.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/samples/identify.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/samples/identify.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,126 @@ +/* -*- C++ -*- + * File: identify.cpp @@ -2406,8 +2408,8 @@ Added: svn:eol-style Index: libraw/samples/half_mt_win32.cpp =================================================================== ---- libraw/samples/half_mt_win32.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/samples/half_mt_win32.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/samples/half_mt_win32.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/samples/half_mt_win32.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,211 @@ +/* -*- C++ -*- + * File: simple_dcraw_c.c @@ -2620,11 +2622,16 @@ Index: libraw/samples/half_mt_win32.cpp + + return 0; +} + +Property changes on: libraw/samples/half_mt_win32.cpp +___________________________________________________________________ +Added: svn:mergeinfo + Index: libraw/src/libraw_cxx.cpp =================================================================== ---- libraw/src/libraw_cxx.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/src/libraw_cxx.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) -@@ -0,0 +1,1372 @@ +--- libraw/src/libraw_cxx.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/src/libraw_cxx.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) +@@ -0,0 +1,1381 @@ +/* -*- C++ -*- + * File: libraw_cxx.cpp + * Copyright 2008 Alex Tutubalin @@ -3449,7 +3456,10 @@ Index: libraw/src/libraw_cxx.cpp + return errno; + + if(!T.thumb) -+ return LIBRAW_OUT_OF_ORDER_CALL; ++ { ++ fclose(tfp); ++ return LIBRAW_OUT_OF_ORDER_CALL; ++ } + + try { + switch (T.tformat) @@ -3658,6 +3668,7 @@ Index: libraw/src/libraw_cxx.cpp +"Canon PowerShot G6", +"Canon PowerShot G7 (CHDK hack)", +"Canon PowerShot G9", ++"Canon PowerShot G10", +"Canon PowerShot S2 IS (CHDK hack)", +"Canon PowerShot S3 IS (CHDK hack)", +"Canon PowerShot S5 IS (CHDK hack)", @@ -3672,6 +3683,7 @@ Index: libraw/src/libraw_cxx.cpp +"Canon EOS D30", +"Canon EOS D60", +"Canon EOS 5D", ++"Canon EOS 5D Mark II", +"Canon EOS 10D", +"Canon EOS 20D", +"Canon EOS 30D", @@ -3772,6 +3784,7 @@ Index: libraw/src/libraw_cxx.cpp +"Kodak KAI-0340", +"Konica KD-400Z", +"Konica KD-510Z", ++"Leaf AFi 7", +"Leaf Aptus 17", +"Leaf Aptus 22", +"Leaf Aptus 54S", @@ -3791,6 +3804,7 @@ Index: libraw/src/libraw_cxx.cpp +"Leica Digilux 3", +"Leica D-LUX2", +"Leica D-LUX3", ++"Leica D-LUX4", +"Leica V-LUX1", +"Logitech Fotoman Pixtura", +"Mamiya ZD", @@ -3884,6 +3898,8 @@ Index: libraw/src/libraw_cxx.cpp +"Panasonic DMC-FZ28", +"Panasonic DMC-FZ30", +"Panasonic DMC-FZ50", ++"Panasonic DMC-FX150", ++"Panasonic DMC-G1", +"Panasonic DMC-L1", +"Panasonic DMC-L10", +"Panasonic DMC-LC1", @@ -4005,8 +4021,8 @@ Added: svn:eol-style Index: libraw/src/libraw_c_api.cpp =================================================================== ---- libraw/src/libraw_c_api.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/src/libraw_c_api.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/src/libraw_c_api.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/src/libraw_c_api.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,117 @@ +/* -*- C++ -*- + * File: libraw_c_api.cpp @@ -4133,8 +4149,8 @@ Added: svn:eol-style Index: libraw/internal/libraw_internal_funcs.h =================================================================== ---- libraw/internal/libraw_internal_funcs.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/internal/libraw_internal_funcs.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/internal/libraw_internal_funcs.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/internal/libraw_internal_funcs.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,200 @@ +/* -*- C++ -*- + * File: libraw_internal_funcs.h @@ -4344,12 +4360,12 @@ Added: svn:eol-style Index: libraw/internal/defines.h =================================================================== ---- libraw/internal/defines.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/internal/defines.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/internal/defines.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/internal/defines.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,134 @@ +/* + GENERATED FILE, DO NOT EDIT -+ Generated from dcraw/dcraw.c at Thu Sep 25 11:44:51 2008 ++ Generated from dcraw/dcraw.c at Sun Jan 4 16:41:18 2009 + Look into original file (probably http://cybercom.net/~dcoffin/dcraw/dcraw.c) + for copyright information. +*/ @@ -4357,7 +4373,7 @@ Index: libraw/internal/defines.h +#line 27 "dcraw/dcraw.c" +#define NO_JPEG +#line 32 "dcraw/dcraw.c" -+#define VERSION "8.88" ++#define VERSION "8.89" + +#define _GNU_SOURCE +#define _USE_MATH_DEFINES @@ -4489,12 +4505,12 @@ Added: svn:eol-style Index: libraw/internal/dcraw_common.cpp =================================================================== ---- libraw/internal/dcraw_common.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/internal/dcraw_common.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) -@@ -0,0 +1,7644 @@ +--- libraw/internal/dcraw_common.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/internal/dcraw_common.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) +@@ -0,0 +1,7727 @@ +/* + GENERATED FILE, DO NOT EDIT -+ Generated from dcraw/dcraw.c at Thu Sep 25 11:44:51 2008 ++ Generated from dcraw/dcraw.c at Sun Jan 4 16:41:18 2009 + Look into original file (probably http://cybercom.net/~dcoffin/dcraw/dcraw.c) + for copyright information. +*/ @@ -4866,7 +4882,7 @@ Index: libraw/internal/dcraw_common.cpp +} + +/* -+ Construct a decode tree according the specification in *source. ++ Construct a decode tree according to the specification in *source. + The first 16 bytes specify how many codes should be 1-bit, 2-bit + 3-bit, etc. Bytes after that are the leaf values. + @@ -5088,13 +5104,12 @@ Index: libraw/internal/dcraw_common.cpp +#line 881 "dcraw/dcraw.c" +int CLASS ljpeg_start (struct jhead *jh, int info_only) +{ -+ int i, tag, len; ++ int c, tag, len; + uchar data[0x10000], *dp; + + init_decoder(); + memset (jh, 0, sizeof *jh); -+ for (i=0; i < 4; i++) -+ jh->huff[i] = free_decode; ++ FORC(6) jh->huff[c] = free_decode; + jh->restart = INT_MAX; + fread (data, 2, 1, ifp); + if (data[1] != 0xd8) return 0; @@ -5106,7 +5121,7 @@ Index: libraw/internal/dcraw_common.cpp + fread (data, 1, len, ifp); + switch (tag) { + case 0xffc3: -+ jh->sraw = data[7] == 0x21; ++ jh->sraw = ((data[7] >> 4) * (data[7] & 15) - 1) & 3; + case 0xffc0: + jh->bits = data[0]; + jh->high = data[1] << 8 | data[2]; @@ -5123,6 +5138,7 @@ Index: libraw/internal/dcraw_common.cpp + break; + case 0xffda: + jh->psv = data[1+data[0]*2]; ++ jh->bits -= data[3+data[0]*2] & 15; + break; + case 0xffdd: + jh->restart = data[0] << 8 | data[1]; @@ -5130,8 +5146,8 @@ Index: libraw/internal/dcraw_common.cpp + } while (tag != 0xffda); + if (info_only) return 1; + if (jh->sraw) { -+ jh->huff[3] = jh->huff[2] = jh->huff[1]; -+ jh->huff[1] = jh->huff[0]; ++ FORC(4) jh->huff[2+c] = jh->huff[1]; ++ FORC(jh->sraw) jh->huff[1+c] = jh->huff[0]; + } + jh->row = (ushort *) calloc (jh->wide*jh->clrs, 4); + merror (jh->row, "ljpeg_start()"); @@ -5155,11 +5171,11 @@ Index: libraw/internal/dcraw_common.cpp + +ushort * CLASS ljpeg_row (int jrow, struct jhead *jh) +{ -+ int col, c, diff, pred; ++ int col, c, diff, pred, spred=0; + ushort mark=0, *row[3]; + + if (jrow * jh->wide % jh->restart == 0) { -+ FORC4 jh->vpred[c] = 1 << (jh->bits-1); ++ FORC(6) jh->vpred[c] = 1 << (jh->bits-1); + if (jrow) + do mark = (mark << 8) + (c = fgetc(ifp)); + while (c != EOF && mark >> 4 != 0xffd); @@ -5169,8 +5185,8 @@ Index: libraw/internal/dcraw_common.cpp + for (col=0; col < jh->wide; col++) + FORC(jh->clrs) { + diff = ljpeg_diff (jh->huff[c]); -+ if (jh->sraw && c < 2 && (col | c)) -+ pred = row[0][(c << 1)-3]; ++ if (jh->sraw && c <= jh->sraw && (col | c)) ++ pred = spred; + else if (col) pred = row[0][-jh->clrs]; + else pred = (jh->vpred[c] += diff) - diff; + if (jrow && col) switch (jh->psv) { @@ -5184,6 +5200,7 @@ Index: libraw/internal/dcraw_common.cpp + default: pred = 0; + } + if ((**row = pred + diff) >> jh->bits) derror(); ++ if (c <= jh->sraw) spred = **row; + row[0]++; row[1]++; + } + return row[2]; @@ -5237,42 +5254,57 @@ Index: libraw/internal/dcraw_common.cpp +void CLASS canon_sraw_load_raw() +{ + struct jhead jh; -+ short *rp=0, *ip; ++ short *rp=0, (*ip)[4]; + int jwide, slice, scol, ecol, row, col, jrow=0, jcol=0, pix[3], c; + + if (!ljpeg_start (&jh, 0)) return; -+ jwide = (jh.wide >>= 1) * 4; ++ jwide = (jh.wide >>= 1) * jh.clrs; + + for (ecol=slice=0; slice <= cr2_slice[0]; slice++) { + scol = ecol; -+ ecol += cr2_slice[1] >> 1; -+ if (!cr2_slice[0] || ecol > width-1) ecol = width & -2; -+ for (row=0; row < height; row++) { -+ ip = (short *) image[row*width+scol]; -+ for (col=scol; col < ecol; col+=2, jcol+=4, ip+=8) { ++ ecol += cr2_slice[1] * 2 / jh.clrs; ++ if (!cr2_slice[0] || ecol > raw_width-1) ecol = raw_width & -2; ++ for (row=0; row < height; row += (jh.clrs >> 1) - 1) { ++ ip = (short (*)[4]) image + row*width; ++ for (col=scol; col < ecol; col+=2, jcol+=jh.clrs) { + if ((jcol %= jwide) == 0) + rp = (short *) ljpeg_row (jrow++, &jh); -+ ip[0] = rp[jcol]; -+ ip[4] = rp[jcol+1]; -+ ip[1] = (short) (rp[jcol+2] << 2) >> 2; -+ ip[2] = (short) (rp[jcol+3] << 2) >> 2; ++ if (col >= width) continue; ++ FORC (jh.clrs-2) ++ ip[col + (c >> 1)*width + (c & 1)][0] = rp[jcol+c]; ++ ip[col][1] = rp[jcol+jh.clrs-2] - 16384; ++ ip[col][2] = rp[jcol+jh.clrs-1] - 16384; + } + } + } -+ for (row=0; row < height; row++) { -+ ip = (short *) image[row*width+1]; -+ for (col=1; col < width-1; col+=2, ip+=8) { -+ ip[1] = (ip[-3] + ip[5] + 1) >> 1; -+ ip[2] = (ip[-2] + ip[6] + 1) >> 1; -+ } -+ if (col < width) { ip[1] = ip[-3]; ip[2] = ip[-2]; } -+ ip = (short *) image[row*width]; -+ for (col=0; col < width; col++, ip+=4) { -+ pix[0] = ip[2] + ip[0]; -+ pix[2] = ip[1] + ip[0]; -+ pix[1] = ((ip[0] << 12) - ip[1]*778 - (ip[2] << 11)) >> 12; -+ FORC3 ip[c] = CLIP((pix[c] - 512) * sraw_mul[c] >> 10); ++ ip = (short (*)[4]) image; ++ rp = ip[0]; ++ for (row=0; row < height; row++, ip+=width) { ++ if (row & (jh.sraw >> 1)) ++ for (col=0; col < width; col+=2) ++ for (c=1; c < 3; c++) ++ if (row == height-1) ++ ip[col][c] = ip[col-width][c]; ++ else ip[col][c] = (ip[col-width][c] + ip[col+width][c] + 1) >> 1; ++ for (col=1; col < width; col+=2) ++ for (c=1; c < 3; c++) ++ if (col == width-1) ++ ip[col][c] = ip[col-1][c]; ++ else ip[col][c] = (ip[col-1][c] + ip[col+1][c] + 1) >> 1; ++ } ++ for ( ; rp < ip[0]; rp+=4) { ++ if (unique_id < 0x80000200) { ++ pix[0] = rp[0] + rp[2] - 512; ++ pix[2] = rp[0] + rp[1] - 512; ++ pix[1] = rp[0] + ((-778*rp[1] - (rp[2] << 11)) >> 12) - 512; ++ } else { ++ rp[1] += jh.sraw+1; ++ rp[2] += jh.sraw+1; ++ pix[0] = rp[0] + (( 200*rp[1] + 22929*rp[2]) >> 12); ++ pix[1] = rp[0] + ((-5640*rp[1] - 11751*rp[2]) >> 12); ++ pix[2] = rp[0] + ((29040*rp[1] - 101*rp[2]) >> 12); + } ++ FORC3 rp[c] = CLIP(pix[c] * sraw_mul[c] >> 10); + } + free (jh.row); + maximum = 0x3fff; @@ -5391,7 +5423,7 @@ Index: libraw/internal/dcraw_common.cpp + 7,6,8,5,9,4,10,3,11,12,2,0,1,13,14 } }; + struct decode *dindex; + ushort ver0, ver1, vpred[2][2], hpred[2], csize; -+ int i, max, step=0, huff=0, split=0, row, col, len, shl, diff; ++ int i, min, max, step=0, huff=0, split=0, row, col, len, shl, diff; + + fseek (ifp, meta_offset, SEEK_SET); + ver0 = fgetc(ifp); @@ -5417,14 +5449,16 @@ Index: libraw/internal/dcraw_common.cpp +{ + read_shorts (curve, max=csize); +color_flags.curve_state = LIBRAW_COLORSTATE_LOADED; } ++ while (curve[max-2] == curve[max-1]) max--; + init_decoder(); + make_decoder (nikon_tree[huff], 0); + fseek (ifp, data_offset, SEEK_SET); + getbits(-1); -+ for (row=0; row < height; row++) { ++ for (min=row=0; row < height; row++) { + if (split && row == split) { + init_decoder(); + make_decoder (nikon_tree[huff+1], 0); ++ max += (min = 16) << 1; + } + for (col=0; col < raw_width; col++) { + for (dindex=first_decode; dindex->branch[0]; ) @@ -5436,9 +5470,9 @@ Index: libraw/internal/dcraw_common.cpp + diff -= (1 << len) - !shl; + if (col < 2) hpred[col] = vpred[row & 1][col] += diff; + else hpred[col & 1] += diff; -+ if (hpred[col & 1] >= max) derror(); ++ if ((ushort)(hpred[col & 1] + min) >= max) derror(); + if ((unsigned) (col-left_margin) < width) -+ BAYER(row,col-left_margin) = curve[hpred[col & 1] & 0x3fff]; ++ BAYER(row,col-left_margin) = curve[LIM((short)hpred[col & 1],0,0x3fff)]; + } + } +} @@ -5524,14 +5558,14 @@ Index: libraw/internal/dcraw_common.cpp + */ +int CLASS minolta_z2() +{ -+ int i; ++ int i, nz; + char tail[424]; + + fseek (ifp, -sizeof tail, SEEK_END); + fread (tail, 1, sizeof tail, ifp); -+ for (i=0; i < sizeof tail; i++) -+ if (tail[i]) return 1; -+ return 0; ++ for (nz=i=0; i < sizeof tail; i++) ++ if (tail[i]) nz++; ++ return nz > 20; +} + +/* Here raw_width is in bytes, not pixels. */ @@ -5579,7 +5613,7 @@ Index: libraw/internal/dcraw_common.cpp + } + free (pixel); +} -+#line 1379 "dcraw/dcraw.c" ++#line 1397 "dcraw/dcraw.c" +void CLASS ppm_thumb (FILE *tfp) +{ + char *thumb; @@ -5938,6 +5972,7 @@ Index: libraw/internal/dcraw_common.cpp + + if (!ljpeg_start (&jh, 0)) return; + free (jh.row); ++ order = 0x4949; + ph1_bits(-1); + for (row=-top_margin; row < height; row++) { + pred[0] = pred[1] = 0x8000; @@ -5951,6 +5986,7 @@ Index: libraw/internal/dcraw_common.cpp + diff = ph1_bits(len[i]); + if ((diff & (1 << (len[i]-1))) == 0) + diff -= (1 << len[i]) - 1; ++ if (diff == 65535) diff = -32768; + pred[i] += diff; + if (row >= 0 && (unsigned)(col+i) < width) + BAYER(row,col+i) = pred[i]; @@ -5987,7 +6023,7 @@ Index: libraw/internal/dcraw_common.cpp + } +} + -+#line 1790 "dcraw/dcraw.c" ++#line 1810 "dcraw/dcraw.c" +void CLASS sinar_4shot_load_raw() +{ + ushort *pixel; @@ -6156,7 +6192,7 @@ Index: libraw/internal/dcraw_common.cpp + } else if ((nonz[i & 1] = pana_bits(8)) || i > 11) + pred[i & 1] = nonz[i & 1] << 4 | pana_bits(4); + if (col < width) -+ if ((BAYER(row,col) = pred[col & 1]) > 4098) derror(); ++ if ((BAYER(row,col) = pred[col & 1]) > 4098) derror(); + } +} + @@ -6534,7 +6570,7 @@ Index: libraw/internal/dcraw_common.cpp +#endif + jpeg_destroy_decompress (&cinfo); +throw LIBRAW_EXCEPTION_DECODE_JPEG; -+#line 2339 "dcraw/dcraw.c" ++#line 2359 "dcraw/dcraw.c" + } + buf = (*cinfo.mem->alloc_sarray) + ((j_common_ptr) &cinfo, JPOOL_IMAGE, width*3, 1); @@ -7042,7 +7078,7 @@ Index: libraw/internal/dcraw_common.cpp + smal_decode_segment (seg+i, holes); + if (holes) fill_holes (holes); +} -+#line 3544 "dcraw/dcraw.c" ++#line 3564 "dcraw/dcraw.c" + +/* + Seach from the current directory up to the root looking for @@ -7058,7 +7094,7 @@ Index: libraw/internal/dcraw_common.cpp +RUN_CALLBACK(LIBRAW_PROGRESS_BAD_PIXELS,0,2); + if (fname) + fp = fopen (fname, "r"); -+#line 3585 "dcraw/dcraw.c" ++#line 3605 "dcraw/dcraw.c" + if (!fp) + { +imgdata.process_warnings |= LIBRAW_WARN_NO_BADPIXELMAP; @@ -8349,7 +8385,7 @@ Index: libraw/internal/dcraw_common.cpp + } +} + -+#line 4879 "dcraw/dcraw.c" ++#line 4899 "dcraw/dcraw.c" +void CLASS parse_makernote (int base, int uptag) +{ + static const uchar xlat[2][256] = { @@ -8445,10 +8481,11 @@ Index: libraw/internal/dcraw_common.cpp + if (tag == 2 && strstr(make,"NIKON")) + iso_speed = (get2(),get2()); + if (tag == 4 && len > 26 && len < 35) { -+ iso_speed = 50 * pow (2, (get4(),get2())/32.0 - 4); -+ if ((i=(get2(),get2())) != 0x7fff) ++ if ((i=(get4(),get2())) != 0x7fff && !iso_speed) ++ iso_speed = 50 * pow (2, i/32.0 - 4); ++ if ((i=(get2(),get2())) != 0x7fff && !aperture) + aperture = pow (2, i/64.0); -+ if ((i=get2()) != 0xffff) ++ if ((i=get2()) != 0xffff && !shutter) + shutter = pow (2, (short) i/-32.0); + wbi = (get2(),get2()); + shot_order = (get2(),get2()); @@ -8603,7 +8640,9 @@ Index: libraw/internal/dcraw_common.cpp + cam_mul[2] = get2() / 256.0; +color_flags.cam_mul_state = LIBRAW_COLORSTATE_LOADED; + } -+ if (tag == 0x2010 && type == 13) ++ if ((tag | 0x70) == 0x2070 && type == 4) ++ fseek (ifp, get4()+base, SEEK_SET); ++ if (tag == 0x2010 && type != 7) + load_raw = &CLASS olympus_e410_load_raw; + if (tag == 0x2020) + parse_thumb_note (base, 257, 258); @@ -8613,8 +8652,8 @@ Index: libraw/internal/dcraw_common.cpp + fseek (ifp, get4(), SEEK_SET); + parse_thumb_note (base, 136, 137); + } -+ if (tag == 0x4001 && type == 3) { -+ i = len == 582 ? 50 : len == 653 ? 68 : 126; ++ if (tag == 0x4001 && len > 500) { ++ i = len == 582 ? 50 : len == 653 ? 68 : len == 5120 ? 142 : 126; + fseek (ifp, i, SEEK_CUR); +get2_rggb: + FORC4 cam_mul[c ^ (c >> 1)] = get2(); @@ -8728,7 +8767,7 @@ Index: libraw/internal/dcraw_common.cpp + static const char *mod[] = + { "","DCB2","Volare","Cantare","CMost","Valeo 6","Valeo 11","Valeo 22", + "Valeo 11p","Valeo 17","","Aptus 17","Aptus 22","Aptus 75","Aptus 65", -+ "Aptus 54S","Aptus 65S","Aptus 75S" }; ++ "Aptus 54S","Aptus 65S","Aptus 75S","AFi 5","AFi 6","AFi 7" }; + float romm_cam[3][3]; + + fseek (ifp, offset, SEEK_SET); @@ -8832,7 +8871,7 @@ Index: libraw/internal/dcraw_common.cpp + } +} + -+#line 5365 "dcraw/dcraw.c" ++#line 5388 "dcraw/dcraw.c" +int CLASS parse_tiff_ifd (int base) +{ + unsigned entries, tag, type, len, plen=16, save; @@ -8906,7 +8945,7 @@ Index: libraw/internal/dcraw_common.cpp + fgets (model, 64, ifp); + break; + case 280: /* Panasonic RW2 offset */ -+ if (~tiff_ifd[ifd].offset) break; ++ if (type != 4) break; + load_raw = &CLASS panasonic_load_raw; + load_flags = 0x2008; + case 273: /* StripOffset */ @@ -8933,10 +8972,11 @@ Index: libraw/internal/dcraw_common.cpp + case 514: + tiff_ifd[ifd].bytes = get4(); + break; -+ case 305: /* Software */ ++ case 305: case 11: /* Software */ + fgets (software, 64, ifp); + if (!strncmp(software,"Adobe",5) || + !strncmp(software,"dcraw",5) || ++ !strncmp(software,"UFRaw",5) || + !strncmp(software,"Bibble",6) || + !strncmp(software,"Nikon Scan",10) || + !strcmp (software,"Digital Photo Professional")) @@ -9077,6 +9117,7 @@ Index: libraw/internal/dcraw_common.cpp + ima_len = len; + break; + case 46279: ++ if (!ima_len) break; + fseek (ifp, 78, SEEK_CUR); + raw_width = get4(); + raw_height = get4(); @@ -9130,6 +9171,7 @@ Index: libraw/internal/dcraw_common.cpp + break; + case 50706: /* DNGVersion */ + FORC4 dng_version = (dng_version << 8) + fgetc(ifp); ++ if (!make[0]) strcpy (make, "DNG"); + break; + case 50710: /* CFAPlaneColor */ + if (len > 4) len = 4; @@ -9410,7 +9452,7 @@ Index: libraw/internal/dcraw_common.cpp +void CLASS parse_external_jpeg() +{ + char *file, *ext, *jname, *jfile, *jext; -+#line 5946 "dcraw/dcraw.c" ++#line 5972 "dcraw/dcraw.c" + ext = strrchr (ifname, '.'); + file = strrchr (ifname, '/'); + if (!file) file = strrchr (ifname, '\\'); @@ -9453,7 +9495,7 @@ Index: libraw/internal/dcraw_common.cpp +#endif +} + free (jname); -+#line 5991 "dcraw/dcraw.c" ++#line 6017 "dcraw/dcraw.c" +} + +/* @@ -9673,7 +9715,7 @@ Index: libraw/internal/dcraw_common.cpp + fseek (ifp, base, SEEK_SET); + order = get4() & 0xffff; + if (get4() >> 8 != 0x526177) return; /* "Raw" */ -+ fseek (ifp, base+get4(), SEEK_SET); ++ fseek (ifp, get4()+base, SEEK_SET); + entries = get4(); + get4(); + while (entries--) { @@ -9797,11 +9839,19 @@ Index: libraw/internal/dcraw_common.cpp + order = 0x4949; + fread (tag, 4, 1, ifp); + size = get4(); ++ end = ftell(ifp) + size; + if (!memcmp(tag,"RIFF",4) || !memcmp(tag,"LIST",4)) { -+ end = ftell(ifp) + size; + get4(); + while (ftell(ifp) < end) + parse_riff(); ++ } else if (!memcmp(tag,"nctg",4)) { ++ while (ftell(ifp) < end) { ++ i = get2(); ++ size = get2(); ++ if ((i+1) >> 1 == 10 && size == 20) ++ get_timestamp(0); ++ else fseek (ifp, size, SEEK_CUR); ++ } + } else if (!memcmp(tag,"IDIT",4) && size < 64) { + fread (date, 64, 1, ifp); + date[size] = 0; @@ -9886,7 +9936,7 @@ Index: libraw/internal/dcraw_common.cpp + data_offset = (INT64) get4() + 8; + data_offset += (INT64) get4() << 32; +} -+#line 6528 "dcraw/dcraw.c" ++#line 6562 "dcraw/dcraw.c" +void CLASS adobe_coeff (const char *p_make, const char *p_model) +{ + static const struct { @@ -9903,6 +9953,8 @@ Index: libraw/internal/dcraw_common.cpp + { 9805,-2689,-1312,-5803,13064,3068,-2438,3075,8775 } }, + { "Canon EOS D60", 0, 0xfa0, + { 6188,-1341,-890,-7168,14489,2937,-2640,3228,8483 } }, ++ { "Canon EOS 5D Mark II", 0, 0x3cf0, ++ { 4716,603,-830,-7798,15474,2480,-1496,1937,6651 } }, + { "Canon EOS 5D", 0, 0xe6c, + { 6347,-479,-972,-8297,15954,2480,-1968,2131,7649 } }, + { "Canon EOS 10D", 0, 0xfa0, @@ -9915,6 +9967,8 @@ Index: libraw/internal/dcraw_common.cpp + { 6257,-303,-1000,-7880,15621,2396,-1714,1904,7046 } }, + { "Canon EOS 40D", 0, 0x3f60, + { 6071,-747,-856,-7653,15365,2441,-2025,2553,7315 } }, ++ { "Canon EOS 50D", 0, 0x3d93, ++ { 4920,616,-593,-6493,13964,2784,-1774,3178,7005 } }, + { "Canon EOS 300D", 0, 0xfa0, + { 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } }, + { "Canon EOS 350D", 0, 0xfff, @@ -9924,7 +9978,7 @@ Index: libraw/internal/dcraw_common.cpp + { "Canon EOS 450D", 0, 0x390d, + { 5784,-262,-821,-7539,15064,2672,-1982,2681,7427 } }, + { "Canon EOS 1000D", 0, 0xe43, -+ { 7054,-1501,-990,-8156,15544,2812,-1278,1414,7796 } }, ++ { 6771,-1139,-977,-7818,15123,2928,-1244,1437,7533 } }, + { "Canon EOS-1Ds Mark III", 0, 0x3bb0, + { 5859,-211,-930,-8255,16017,2353,-1732,1887,7448 } }, + { "Canon EOS-1Ds Mark II", 0, 0xe80, @@ -9945,6 +9999,8 @@ Index: libraw/internal/dcraw_common.cpp + { -5300,9846,1776,3436,684,3939,-5540,9879,6200,-1404,11175,217 } }, + { "Canon PowerShot A5", 0, 0, + { -4801,9475,1952,2926,1611,4094,-5259,10164,5947,-1554,10883,547 } }, ++ { "Canon PowerShot G10", 0, 0, ++ { 11093,-3906,-1028,-5047,12492,2879,-1003,1750,5561 } }, + { "Canon PowerShot G1", 0, 0, + { -4778,9467,2172,4743,-1141,4344,-5146,9908,6077,-1566,11051,557 } }, + { "Canon PowerShot G2", 0, 0, @@ -10041,6 +10097,8 @@ Index: libraw/internal/dcraw_common.cpp + { 12343,-4515,-1285,-7165,14899,2435,-1895,2496,8800 } }, + { "FUJIFILM IS-1", 0, 0, + { 21461,-10807,-1441,-2332,10599,1999,289,875,7703 } }, ++ { "FUJIFILM IS Pro", 0, 0, ++ { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } }, + { "Imacon Ixpress", 0, 0, /* DJC */ + { 7025,-1415,-704,-5188,13765,1424,-1248,2742,6038 } }, + { "KODAK NC2000", 0, 0, @@ -10147,8 +10205,8 @@ Index: libraw/internal/dcraw_common.cpp + { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } }, + { "NIKON D80", 0, 0, + { 8629,-2410,-883,-9055,16940,2171,-1490,1363,8520 } }, -+ { "NIKON D90", 0, 0xf00, /* DJC */ -+ { 9692,-2519,-831,-5396,13053,2344,-1818,2682,7084 } }, ++ { "NIKON D90", 0, 0xf00, ++ { 7309,-1403,-519,-8474,16008,2622,-2434,2826,8064 } }, + { "NIKON D200", 0, 0xfbc, + { 8367,-2248,-763,-8758,16447,2422,-1527,1550,8053 } }, + { "NIKON D300", 0, 0, @@ -10179,6 +10237,8 @@ Index: libraw/internal/dcraw_common.cpp + { 8489,-2583,-1036,-8051,15583,2643,-1307,1407,7354 } }, + { "NIKON E8800", 0, 0, + { 7971,-2314,-913,-8451,15762,2894,-1442,1520,7610 } }, ++ { "NIKON COOLPIX P6000", 0, 0, ++ { 9698,-3367,-914,-4706,12584,2368,-837,968,5801 } }, + { "OLYMPUS C5050", 0, 0, + { 10508,-3124,-1273,-6079,14294,1901,-1653,2306,6237 } }, + { "OLYMPUS C5060", 0, 0, @@ -10245,10 +10305,14 @@ Index: libraw/internal/dcraw_common.cpp + { 9427,-2714,-868,-7493,16092,1373,-2199,3264,7180 } }, + { "PENTAX K200D", 0, 0, + { 9186,-2678,-907,-8693,16517,2260,-1129,1094,8524 } }, ++ { "PENTAX K2000", 0, 0, ++ { 11057,-3604,-1155,-5152,13046,2329,-282,375,8104 } }, + { "Panasonic DMC-FZ8", 0, 0xf7f0, + { 8986,-2755,-802,-6341,13575,3077,-1476,2144,6379 } }, + { "Panasonic DMC-FZ18", 0, 0, + { 9932,-3060,-935,-5809,13331,2753,-1267,2155,5575 } }, ++ { "Panasonic DMC-FZ28", 15, 0xfff, ++ { 10109,-3488,-993,-5412,12812,2916,-1305,2140,5543 } }, + { "Panasonic DMC-FZ30", 0, 0xf94c, + { 10976,-4029,-1141,-7918,15491,2600,-1670,2071,8246 } }, + { "Panasonic DMC-FZ50", 0, 0xfff0, /* aka "LEICA V-LUX1" */ @@ -10263,6 +10327,12 @@ Index: libraw/internal/dcraw_common.cpp + { 10704,-4187,-1230,-8314,15952,2501,-920,945,8927 } }, + { "Panasonic DMC-LX2", 0, 0, /* aka "LEICA D-LUX3" */ + { 8048,-2810,-623,-6450,13519,3272,-1700,2146,7049 } }, ++ { "Panasonic DMC-LX3", 15, 0xfff, /* aka "LEICA D-LUX4" */ ++ { 8128,-2668,-655,-6134,13307,3161,-1782,2568,6083 } }, ++ { "Panasonic DMC-FX150", 15, 0xfff, ++ { 9082,-2907,-925,-6119,13377,3058,-1797,2641,5609 } }, ++ { "Panasonic DMC-G1", 15, 0xfff, ++ { 8199,-2065,-1056,-8124,16156,2033,-2458,3022,7220 } }, + { "Phase One H 20", 0, 0, /* DJC */ + { 1313,1855,-109,-6715,15908,808,-327,1840,6020 } }, + { "Phase One P 2", 0, 0, @@ -10291,8 +10361,8 @@ Index: libraw/internal/dcraw_common.cpp + { 6038,-1484,-578,-9146,16746,2513,-875,746,7217 } }, + { "SONY DSLR-A700", 254, 0x1ffe, + { 5775,-805,-359,-8574,16295,2391,-1943,2341,7249 } }, -+ { "SONY DSLR-A900", 254, 0x1ffe, /* DJC */ -+ { 6971,-1730,-794,-5763,13529,2236,-1500,2251,6715 } } ++ { "SONY DSLR-A900", 254, 0x1ffe, ++ { 5209,-1072,-397,-8845,16120,2919,-1618,1803,8654 } } + }; + double cam_xyz[4][3]; + char name[130]; @@ -10589,6 +10659,8 @@ Index: libraw/internal/dcraw_common.cpp + { height = 2616; width = 3896; } + if (height == 3136 && width == 4864) /* Pentax K20D */ + { height = 3124; width = 4688; } ++ if (height == 3014 && width == 4096) /* Ricoh GX200 */ ++ width = 4014; + if (dng_version) { + if (filters == UINT_MAX) filters = 0; + if (filters) is_raw = tiff_samples; @@ -10622,6 +10694,10 @@ Index: libraw/internal/dcraw_common.cpp + load_raw = &CLASS foveon_load_raw; + simple_coeff(0); + } else if (is_canon && tiff_bps == 15) { ++ switch (width) { ++ case 3344: width -= 66; ++ case 3872: width -= 6; ++ } + filters = 0; + load_raw = &CLASS canon_sraw_load_raw; + } else if (!strcmp(model,"PowerShot 600")) { @@ -10829,11 +10905,21 @@ Index: libraw/internal/dcraw_common.cpp + top_margin = 34; + left_margin = 90; + goto canon_cr2; ++ } else if (is_canon && raw_width == 4480) { ++ height = 3326; ++ width = 4432; ++ top_margin = 10; ++ left_margin = 12; ++ filters = 0x49494949; + } else if (is_canon && raw_width == 1208) { + top_margin = 51; + left_margin = 62; + raw_width = width *= 4; -+ maximum = 0x3d93; ++ goto canon_cr2; ++ } else if (is_canon && raw_width == 1448) { ++ top_margin = 51; ++ left_margin = 158; ++ raw_width = width *= 4; + goto canon_cr2; + } else if (is_canon && raw_width == 5108) { + top_margin = 13; @@ -11203,6 +11289,9 @@ Index: libraw/internal/dcraw_common.cpp + maximum = 0x3fff; + } else if (!strcmp(make,"Leaf")) { + maximum = 0x3fff; ++ fseek (ifp, data_offset, SEEK_SET); ++ if (ljpeg_start (&jh, 1) && jh.bits == 15) ++ maximum = 0x1fff; + if (tiff_samples > 1) filters = 0; + if (tiff_samples > 1 || tile_length < raw_height) + load_raw = &CLASS leaf_hdr_load_raw; @@ -11266,22 +11355,21 @@ Index: libraw/internal/dcraw_common.cpp + zero_is_bad = 1; + adobe_coeff ("Panasonic","DMC-L1"); break; + case 3304: -+ width -= 16; ++ width -= 17; + zero_is_bad = 1; + adobe_coeff ("Panasonic","DMC-FZ30"); break; + case 3330: -+ width = 3291; -+ left_margin = 9; ++ width += 43; ++ left_margin = -6; + maximum = 0xf7f0; -+ goto fz18; + case 3370: -+ width = 3288; -+ left_margin = 15; -+fz18: if (height > 2480) ++ width -= 82; ++ left_margin += 15; ++ if (height > 2480) + height = 2480 - (top_margin = 10); + filters = 0x49494949; + zero_is_bad = 1; -+ break; ++ adobe_coeff ("Panasonic","DMC-FZ18"); break; + case 3690: + height += 36; + left_margin = -14; @@ -11297,21 +11385,27 @@ Index: libraw/internal/dcraw_common.cpp + case 3710: + width = 3682; + filters = 0x49494949; -+ break; ++ adobe_coeff ("Panasonic","DMC-L10"); break; + case 3724: + width -= 14; + case 3836: -+ width += 36; -+ case 4060: -+ width -= 78; -+ filters = 0x16161616; -+ maximum = 0xfff; ++ width -= 42; ++lx3: filters = 0x16161616; ++ if (make[0] != 'P') ++ adobe_coeff ("Panasonic","DMC-LX3"); + break; + case 3880: + width -= 22; + left_margin = 6; + zero_is_bad = 1; + adobe_coeff ("Panasonic","DMC-LX1"); break; ++ case 4060: ++ width = 3982; ++ if (height == 2250) goto lx3; ++ width = 4018; ++ filters = 0x49494949; ++ zero_is_bad = 1; ++ adobe_coeff ("Panasonic","DMC-G1"); break; + case 4290: + height += 38; + left_margin = -14; @@ -11322,6 +11416,11 @@ Index: libraw/internal/dcraw_common.cpp + top_margin = 15; + left_margin += 17; + adobe_coeff ("Panasonic","DMC-LX2"); break; ++ case 4508: ++ height -= 6; ++ width = 4429; ++ filters = 0x16161616; ++ adobe_coeff ("Panasonic","DMC-FX150"); break; + } + } else if (!strcmp(model,"C770UZ")) { + height = 1718; @@ -11665,7 +11764,7 @@ Index: libraw/internal/dcraw_common.cpp + if (strcmp (input, "embed")) + hInProfile = cmsOpenProfileFromFile (input, "r"); + else if (profile_length) { -+#line 8314 "dcraw/dcraw.c" ++#line 8397 "dcraw/dcraw.c" +hInProfile = cmsOpenProfileFromMem (imgdata.color.profile, profile_length); + } else + { @@ -11815,7 +11914,7 @@ Index: libraw/internal/dcraw_common.cpp + +#endif +memset(histogram,0,sizeof(int)*LIBRAW_HISTOGRAM_SIZE*4); -+#line 8466 "dcraw/dcraw.c" ++#line 8549 "dcraw/dcraw.c" + for (img=image[0], row=0; row < height; row++) + for (col=0; col < width; col++, img+=4) { + if (!raw_color) { @@ -11956,7 +12055,7 @@ Index: libraw/internal/dcraw_common.cpp +} + + -+#line 8631 "dcraw/dcraw.c" ++#line 8714 "dcraw/dcraw.c" +void CLASS tiff_set (ushort *ntag, + ushort tag, ushort type, int count, int val) +{ @@ -12144,8 +12243,8 @@ Added: svn:eol-style Index: libraw/internal/var_defines.h =================================================================== ---- libraw/internal/var_defines.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/internal/var_defines.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/internal/var_defines.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/internal/var_defines.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,165 @@ +/* -*- C++ -*- + * File: var_defines.h @@ -12320,17 +12419,17 @@ Added: svn:eol-style Index: libraw/internal/foveon.cpp =================================================================== ---- libraw/internal/foveon.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libraw/internal/foveon.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libraw/internal/foveon.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libraw/internal/foveon.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,790 @@ +/* + GENERATED FILE, DO NOT EDIT -+ Generated from dcraw/dcraw.c at Thu Sep 25 11:44:51 2008 ++ Generated from dcraw/dcraw.c at Sun Jan 4 16:41:18 2009 + Look into original file (probably http://cybercom.net/~dcoffin/dcraw/dcraw.c) + for copyright information. +*/ + -+#line 2848 "dcraw/dcraw.c" ++#line 2868 "dcraw/dcraw.c" +#define CLASS LibRaw:: +#include "libraw/libraw_types.h" +#define LIBRAW_LIBRARY_BUILD @@ -12341,7 +12440,7 @@ Index: libraw/internal/foveon.cpp +#define SRC_USES_CURVE +#include "internal/var_defines.h" +#define sget4(s) sget4((uchar *)s) -+#line 2860 "dcraw/dcraw.c" ++#line 2880 "dcraw/dcraw.c" + +/* RESTRICTED code starts here */ + @@ -12363,7 +12462,7 @@ Index: libraw/internal/foveon.cpp + cur = free_decode++; + if (free_decode > first_decode+2048) { +throw LIBRAW_EXCEPTION_DECODE_RAW; -+#line 2885 "dcraw/dcraw.c" ++#line 2905 "dcraw/dcraw.c" + } + if (code) + for (i=0; i < size; i++) @@ -12595,12 +12694,12 @@ Index: libraw/internal/foveon.cpp + return i < 0 ? -curve[1-i] : curve[1+i]; +} + -+#line 3119 "dcraw/dcraw.c" ++#line 3139 "dcraw/dcraw.c" +#ifdef image +#undef image +#endif +#define image ((short(*)[4]) imgdata.image) -+#line 3126 "dcraw/dcraw.c" ++#line 3146 "dcraw/dcraw.c" + +void CLASS foveon_interpolate() +{ @@ -13017,7 +13116,7 @@ Index: libraw/internal/foveon.cpp +#undef image + +/* RESTRICTED code ends here */ -+#line 6426 "dcraw/dcraw.c" ++#line 6460 "dcraw/dcraw.c" +char * CLASS foveon_gets (int offset, char *str, int len) +{ + int i; @@ -13121,8 +13220,8 @@ Added: svn:eol-style Index: libkdcraw/dcrawinfo.h.cmake =================================================================== ---- libkdcraw/dcrawinfo.h.cmake (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/dcrawinfo.h.cmake (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/dcrawinfo.h.cmake (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/dcrawinfo.h.cmake (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -1,30 +0,0 @@ -/* ============================================================ - * @@ -13156,8 +13255,8 @@ Index: libkdcraw/dcrawinfo.h.cmake -#endif // DCRAW_INFO_H Index: libkdcraw/dcrawbinary.cpp =================================================================== ---- libkdcraw/dcrawbinary.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/dcrawbinary.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/dcrawbinary.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/dcrawbinary.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -1,212 +0,0 @@ -/* ============================================================ - * @@ -13373,8 +13472,8 @@ Index: libkdcraw/dcrawbinary.cpp -} // namespace KDcrawIface Index: libkdcraw/dcrawbinary.h =================================================================== ---- libkdcraw/dcrawbinary.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/dcrawbinary.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/dcrawbinary.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/dcrawbinary.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -1,100 +0,0 @@ -/* ============================================================ - * @@ -13478,8 +13577,8 @@ Index: libkdcraw/dcrawbinary.h -#endif // DCRAW_BINARY_H Index: libkdcraw/rcombobox.h =================================================================== ---- libkdcraw/rcombobox.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libkdcraw/rcombobox.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/rcombobox.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libkdcraw/rcombobox.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,84 @@ +/* ============================================================ + * @@ -13573,8 +13672,8 @@ Added: svn:eol-style Index: libkdcraw/rnuminput.cpp =================================================================== ---- libkdcraw/rnuminput.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libkdcraw/rnuminput.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/rnuminput.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libkdcraw/rnuminput.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,248 @@ +/* ============================================================ + * @@ -13832,8 +13931,8 @@ Added: svn:eol-style Index: libkdcraw/rnuminput.h =================================================================== ---- libkdcraw/rnuminput.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libkdcraw/rnuminput.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/rnuminput.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libkdcraw/rnuminput.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,127 @@ +/* ============================================================ + * @@ -13970,8 +14069,8 @@ Added: svn:eol-style Index: libkdcraw/kdcrawprivate.cpp =================================================================== ---- libkdcraw/kdcrawprivate.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libkdcraw/kdcrawprivate.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/kdcrawprivate.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libkdcraw/kdcrawprivate.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,144 @@ +/* ============================================================ + * @@ -14125,8 +14224,8 @@ Added: svn:eol-style Index: libkdcraw/libkdcraw_export.h =================================================================== ---- libkdcraw/libkdcraw_export.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/libkdcraw_export.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/libkdcraw_export.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/libkdcraw_export.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -24,7 +24,7 @@ #include @@ -14138,8 +14237,8 @@ Index: libkdcraw/libkdcraw_export.h # else Index: libkdcraw/kdcrawprivate.h =================================================================== ---- libkdcraw/kdcrawprivate.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libkdcraw/kdcrawprivate.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/kdcrawprivate.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libkdcraw/kdcrawprivate.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,80 @@ +/* ============================================================ + * @@ -14229,8 +14328,8 @@ Added: svn:eol-style Index: libkdcraw/kdcraw.cpp =================================================================== ---- libkdcraw/kdcraw.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/kdcraw.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/kdcraw.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/kdcraw.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -10,10 +10,6 @@ * Copyright (C) 2006-2008 by Marcel Wiesweg * Copyright (C) 2007-2008 by Guillaume Castagnino @@ -15477,8 +15576,8 @@ Index: libkdcraw/kdcraw.cpp } // namespace KDcrawIface Index: libkdcraw/rawdecodingsettings.h =================================================================== ---- libkdcraw/rawdecodingsettings.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/rawdecodingsettings.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/rawdecodingsettings.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/rawdecodingsettings.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -25,6 +25,11 @@ #ifndef RAW_DECODING_SETTINGS_H #define RAW_DECODING_SETTINGS_H @@ -15798,8 +15897,8 @@ Index: libkdcraw/rawdecodingsettings.h } // namespace KDcrawIface Index: libkdcraw/squeezedcombobox.cpp =================================================================== ---- libkdcraw/squeezedcombobox.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libkdcraw/squeezedcombobox.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/squeezedcombobox.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libkdcraw/squeezedcombobox.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,199 @@ +/* ============================================================ + * @@ -16002,8 +16101,8 @@ Index: libkdcraw/squeezedcombobox.cpp +} // namespace KDcrawIface Index: libkdcraw/kdcraw.h =================================================================== ---- libkdcraw/kdcraw.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/kdcraw.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/kdcraw.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/kdcraw.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -25,7 +25,7 @@ #ifndef KDCRAW_H #define KDCRAW_H @@ -16158,8 +16257,8 @@ Index: libkdcraw/kdcraw.h } // namespace KDcrawIface Index: libkdcraw/rawfiles.h =================================================================== ---- libkdcraw/rawfiles.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/rawfiles.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/rawfiles.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/rawfiles.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -24,9 +24,66 @@ #ifndef RAW_FILES_H #define RAW_FILES_H @@ -16231,8 +16330,8 @@ Index: libkdcraw/rawfiles.h #endif // RAW_FILES_H Index: libkdcraw/squeezedcombobox.h =================================================================== ---- libkdcraw/squeezedcombobox.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libkdcraw/squeezedcombobox.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/squeezedcombobox.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libkdcraw/squeezedcombobox.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,162 @@ +/* ============================================================ + * @@ -16398,8 +16497,8 @@ Index: libkdcraw/squeezedcombobox.h +#endif // SQUEEZEDCOMBOBOX_H Index: libkdcraw/dcrawinfocontainer.h =================================================================== ---- libkdcraw/dcrawinfocontainer.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/dcrawinfocontainer.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/dcrawinfocontainer.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/dcrawinfocontainer.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -23,13 +23,13 @@ #ifndef DCRAW_INFO_CONTAINER_H #define DCRAW_INFO_CONTAINER_H @@ -16649,8 +16748,8 @@ Index: libkdcraw/dcrawinfocontainer.h } // namespace KDcrawIface Index: libkdcraw/dcrawsettingswidget.cpp =================================================================== ---- libkdcraw/dcrawsettingswidget.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/dcrawsettingswidget.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/dcrawsettingswidget.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/dcrawsettingswidget.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -25,25 +25,24 @@ // Qt includes. @@ -17653,8 +17752,8 @@ Index: libkdcraw/dcrawsettingswidget.cpp } // NameSpace KDcrawIface Index: libkdcraw/rcombobox.cpp =================================================================== ---- libkdcraw/rcombobox.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 0) -+++ libkdcraw/rcombobox.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/rcombobox.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 0) ++++ libkdcraw/rcombobox.cpp (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -0,0 +1,148 @@ +/* ============================================================ + * @@ -17812,8 +17911,8 @@ Added: svn:eol-style Index: libkdcraw/dcrawsettingswidget.h =================================================================== ---- libkdcraw/dcrawsettingswidget.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/dcrawsettingswidget.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/dcrawsettingswidget.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/dcrawsettingswidget.h (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -25,11 +25,16 @@ #ifndef DCRAW_SETTINGS_WIDGET_H #define DCRAW_SETTINGS_WIDGET_H @@ -17954,8 +18053,8 @@ Index: libkdcraw/dcrawsettingswidget.h Index: libkdcraw/CMakeLists.txt =================================================================== ---- libkdcraw/CMakeLists.txt (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw/CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw/CMakeLists.txt (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw/CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -1,24 +1,35 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h) @@ -18003,8 +18102,8 @@ Index: libkdcraw/CMakeLists.txt libkdcraw_export.h Index: libkdcraw.pc.cmake =================================================================== ---- libkdcraw.pc.cmake (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw.pc.cmake (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw.pc.cmake (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw.pc.cmake (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -4,7 +4,7 @@ includedir=${INCLUDE_INSTALL_DIR} @@ -18016,8 +18115,8 @@ Index: libkdcraw.pc.cmake Version: ${DCRAW_LIB_VERSION_STRING} Index: AUTHORS =================================================================== ---- AUTHORS (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ AUTHORS (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- AUTHORS (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ AUTHORS (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -9,3 +9,7 @@ Gerhard Kulzer Achim Bohnet @@ -18029,8 +18128,8 @@ Index: AUTHORS \ No newline at end of file Index: TODO =================================================================== ---- TODO (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ TODO (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- TODO (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ TODO (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -1,3 +1 @@ -- Use libRaw C++ interface instead dcraw.c. (http://www.libraw.org) -- Remove QProcess. Use multithreading instead. @@ -18039,8 +18138,8 @@ Index: TODO +- Add DNG writting mode support using Adobe DNG sdk Index: libkdcraw.lsm.cmake =================================================================== ---- libkdcraw.lsm.cmake (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ libkdcraw.lsm.cmake (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- libkdcraw.lsm.cmake (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ libkdcraw.lsm.cmake (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -2,8 +2,8 @@ Title: libkdcraw Version: ${DCRAW_LIB_VERSION_STRING} @@ -18054,28 +18153,38 @@ Index: libkdcraw.lsm.cmake Maintained-by: Index: NEWS =================================================================== ---- NEWS (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ NEWS (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) -@@ -1,8 +1,51 @@ +--- NEWS (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ NEWS (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) +@@ -1,22 +1,74 @@ -0.2.0 +0.4.0 - Released with KDE 4.2.0 -+Updated LibRaw to 0.6.1. -+Ported to LibRaw Api 0.6.0. Removed dcraw.c and DcrawBinary class. -+Use kDebug(51002) instead qDebug(). -+New cameras: Canon 50D, Sony A900, Nikon D90 & P6000, Panasonic LX3 FZ28. -+ -+0.3.0 - Released with KDE 4.1.2 ------------------------------------------------------------------------ -+Sync with KDE3 branch 0.1.5 API changes. -+ -+0.2.0 - Released with KDE 4.1.0 +-Port to CMake/KDE4/QT4 ++- Updated to LibRaw 0.6.5 : Fixed file descriptor and buffer memory leak when thumbnail extractor is called, ++ but library object is not properly initialized. ++ Fixes in Imacon files unpacking. ++ Fixes in Hasselblad .fff files unpacking. ++- Updated to LibRaw 0.6.3 : NEF processing code changed (some overflow control added). ++- Updated to LibRaw 0.6.2. ++- New cameras: Canon G10 & 5D Mk2, Leaf AFi 7, Leica D-LUX4, ++ Panasonic FX150 & G 1, Fujifilm IS Pro. ++- Updated to LibRaw 0.6.1. ++- New cameras: Canon 50D, Sony A900, Nikon D90 & P6000, Panasonic LX3 FZ28. ++- Ported to LibRaw Api 0.6.0. Removed dcraw.c and DcrawBinary class. ++- Use kDebug(51002) instead qDebug(). + ++0.3.0 - Released with KDE 4.1.2 +------------------------------------------------------------------------ - Port to CMake/KDE4/QT4 -+Moved from extragear/libs to kdegraphics/libs ++- Sync with KDE3 branch 0.1.5 API changes. ++0.2.0 - Released with KDE 4.1.0 ++------------------------------------------------------------------------ ++- Port to CMake/KDE4/QT4 ++- Moved from extragear/libs to kdegraphics/libs ++ +0.1.5 +------------------------------------------------------------------------ - ++ +- API changed: add white point settings support (dcraw -S option) + +- Updated dcraw to 8.86 @@ -18109,10 +18218,33 @@ Index: NEWS 0.1.3 ------------------------------------------------------------------------ - updated dcraw to 8.81 +- new cameras: Canon G7, Fuji FinePix S9100/S9600, Olympus SP560UZ, Panasonic DMC-L10 ++- New cameras: Canon G7, Fuji FinePix S9100/S9600, Olympus SP560UZ, Panasonic DMC-L10 + +- - updated dcraw to 8.80 +- new cameras: Hasselblad H3D, Olympus E-3, Canon EOS 40D, Canon PowerShot G9, +- Canon EOS-1Ds Mark III, AVT F-080C, Nikon D3, Nikon D300, +- Nikon Coolpix S6, Panasonic DMC-FZ18, Sony DSLR-A700 ++- updated dcraw to 8.80 ++- new cameras: Hasselblad H3D, Olympus E-3, Canon EOS 40D, Canon PowerShot G9, ++ Canon EOS-1Ds Mark III, AVT F-080C, Nikon D3, Nikon D300, ++ Nikon Coolpix S6, Panasonic DMC-FZ18, Sony DSLR-A700 + +- -m number_of_passes +- After interpolation, clean up color artifacts by repeatedly +- applying a 3x3 median filter to the R-G and B-G channels. +- - Licence : is GPL compatible again == less wories) ++ -m number_of_passes ++ After interpolation, clean up color artifacts by repeatedly ++ applying a 3x3 median filter to the R-G and B-G channels. ++- dcraw.c licence : is GPL compatible again == less wories) + + 0.1.2 + ------------------------------------------------------------------------ Index: CMakeLists.txt =================================================================== ---- CMakeLists.txt (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- CMakeLists.txt (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -1,21 +1,25 @@ PROJECT(libkdcraw) @@ -18243,8 +18375,8 @@ Index: CMakeLists.txt +SUBDIRS(profiles) Index: README =================================================================== ---- README (.../tags/KDE/4.1.3/kdegraphics/libs/libkdcraw) (revision 888947) -+++ README (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 888947) +--- README (.../tags/KDE/4.1.4/kdegraphics/libs/libkdcraw) (revision 907970) ++++ README (.../trunk/KDE/kdegraphics/libs/libkdcraw) (revision 907970) @@ -1,4 +1,4 @@ -DCRAW program interface for KDE +LibRaw C++ interface for KDE diff --git a/kdegraphics-4.1.3-libkexiv2-0.5.0.patch b/kdegraphics-4.1.3-libkexiv2-0.5.0.patch index d0647a0..39e24af 100644 --- a/kdegraphics-4.1.3-libkexiv2-0.5.0.patch +++ b/kdegraphics-4.1.3-libkexiv2-0.5.0.patch @@ -1,7 +1,7 @@ Index: libkexiv2/kexiv2comments.cpp =================================================================== ---- libkexiv2/kexiv2comments.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2comments.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- libkexiv2/kexiv2comments.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2comments.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -10,10 +10,6 @@ * Copyright (C) 2006-2008 by Gilles Caulier * Copyright (C) 2006-2008 by Marcel Wiesweg @@ -25,8 +25,8 @@ Index: libkexiv2/kexiv2comments.cpp return false; Index: libkexiv2/kexiv2gps.cpp =================================================================== ---- libkexiv2/kexiv2gps.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2gps.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- libkexiv2/kexiv2gps.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2gps.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -10,20 +10,16 @@ * Copyright (C) 2006-2008 by Gilles Caulier * Copyright (C) 2006-2008 by Marcel Wiesweg @@ -112,6 +112,15 @@ Index: libkexiv2/kexiv2gps.cpp { Exiv2::ExifKey gpsKey((*it2).toAscii().constData()); Exiv2::ExifData::iterator it3 = d->exifMetadata.findKey(gpsKey); +@@ -528,7 +523,7 @@ + // To do this we: (for example) + // 0.12345 * 10000 = 1234.5 + // floor(1234.5) = 1234 - now bigger than 1 - ready... +- fractional = trunc(fractional * rounder); ++ fractional = round(fractional * rounder); + + // Convert the whole thing to a fraction. + // Fraction is: @@ -630,7 +625,6 @@ } } @@ -129,8 +138,8 @@ Index: libkexiv2/kexiv2gps.cpp } // NameSpace KExiv2Iface Index: libkexiv2/kexiv2private.cpp =================================================================== ---- libkexiv2/kexiv2private.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2private.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- libkexiv2/kexiv2private.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2private.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -9,10 +9,6 @@ * Copyright (C) 2006-2008 by Gilles Caulier * Copyright (C) 2006-2008 by Marcel Wiesweg @@ -173,8 +182,8 @@ Index: libkexiv2/kexiv2private.cpp QString KExiv2Priv::convertCommentValue(const Exiv2::Exifdatum &exifDatum) Index: libkexiv2/kexiv2exif.cpp =================================================================== ---- libkexiv2/kexiv2exif.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2exif.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- libkexiv2/kexiv2exif.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2exif.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -10,20 +10,16 @@ * Copyright (C) 2006-2008 by Gilles Caulier * Copyright (C) 2006-2008 by Marcel Wiesweg @@ -226,7 +235,16 @@ Index: libkexiv2/kexiv2exif.cpp d->printExiv2ExceptionError("Cannot set Exif data using Exiv2 ", e); } -@@ -618,11 +615,16 @@ +@@ -316,6 +313,8 @@ + d->exifMetadata.erase(it); + return true; + } ++ ++ return true; + } + catch( Exiv2::Error &e ) + { +@@ -618,11 +617,16 @@ case Exiv2::unsignedLong: case Exiv2::signedShort: case Exiv2::signedLong: @@ -244,7 +262,7 @@ Index: libkexiv2/kexiv2exif.cpp QList list; list << (*it).toRational(component).first; list << (*it).toRational(component).second; -@@ -630,6 +632,8 @@ +@@ -630,6 +634,8 @@ } else { @@ -253,7 +271,7 @@ Index: libkexiv2/kexiv2exif.cpp // prefer double precision double num = (*it).toRational(component).first; double den = (*it).toRational(component).second; -@@ -743,7 +747,7 @@ +@@ -743,7 +749,7 @@ if (it != exifData.end()) { long orientation = it->toLong(); @@ -262,7 +280,7 @@ Index: libkexiv2/kexiv2exif.cpp rotateExifQImage(thumbnail, (ImageOrientation)orientation); } -@@ -820,7 +824,7 @@ +@@ -820,7 +826,7 @@ thumbFile.setAutoRemove(true); thumbFile.open(); thumb.save(thumbFile.fileName(), "JPEG"); @@ -273,8 +291,8 @@ Index: libkexiv2/kexiv2exif.cpp #if (EXIV2_TEST_VERSION(0,17,91)) Index: libkexiv2/kexiv2.cpp =================================================================== ---- libkexiv2/kexiv2.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- libkexiv2/kexiv2.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -9,10 +9,6 @@ * Copyright (C) 2006-2008 by Gilles Caulier * Copyright (C) 2006-2008 by Marcel Wiesweg @@ -286,7 +304,22 @@ Index: libkexiv2/kexiv2.cpp * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General * Public License as published by the Free Software Foundation; -@@ -83,6 +79,25 @@ +@@ -25,6 +21,14 @@ + * + * ============================================================ */ + ++// C ANSI includes. ++ ++extern "C" ++{ ++#include ++#include ++} ++ + // Local includes. + + #include "version.h" +@@ -83,6 +87,25 @@ //-- Statics methods ---------------------------------------------- @@ -312,7 +345,7 @@ Index: libkexiv2/kexiv2.cpp bool KExiv2::supportXmp() { #ifdef _XMP_SUPPORT_ -@@ -92,13 +107,46 @@ +@@ -92,13 +115,46 @@ #endif // _XMP_SUPPORT_ } @@ -362,7 +395,7 @@ Index: libkexiv2/kexiv2.cpp } QString KExiv2::Exiv2Version() -@@ -123,36 +171,77 @@ +@@ -123,36 +179,77 @@ bool KExiv2::isReadOnly(const QString& filePath) { if (!canWriteComment(filePath)) @@ -447,7 +480,7 @@ Index: libkexiv2/kexiv2.cpp Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*) (QFile::encodeName(filePath))); -@@ -199,15 +288,33 @@ +@@ -199,15 +296,33 @@ QFileInfo dinfo(finfo.path()); if (!finfo.isWritable()) { @@ -483,7 +516,7 @@ Index: libkexiv2/kexiv2.cpp try { Exiv2::AccessMode mode; -@@ -235,11 +342,12 @@ +@@ -235,11 +350,12 @@ { if (image->mimeType() == "image/tiff") { @@ -498,7 +531,26 @@ Index: libkexiv2/kexiv2.cpp untouchedTags << "Exif.Image.ImageWidth"; untouchedTags << "Exif.Image.ImageLength"; untouchedTags << "Exif.Image.BitsPerSample"; -@@ -331,6 +439,16 @@ +@@ -293,8 +409,18 @@ + + #endif // _XMP_SUPPORT_ + ++ // NOTE: Don't touch access and modification timestamp of file. ++ struct stat st; ++ ::stat(QFile::encodeName(filePath), &st); ++ ++ struct utimbuf ut; ++ ut.modtime = st.st_mtime; ++ ut.actime = st.st_atime; ++ + image->writeMetadata(); + ++ ::utime(QFile::encodeName(filePath), &ut); ++ + return true; + } + catch( Exiv2::Error &e ) +@@ -331,6 +457,16 @@ return d->filePath; } @@ -517,8 +569,8 @@ Index: libkexiv2/kexiv2.cpp return true; Index: libkexiv2/kexiv2iptc.cpp =================================================================== ---- libkexiv2/kexiv2iptc.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2iptc.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- libkexiv2/kexiv2iptc.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2iptc.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -10,20 +10,16 @@ * Copyright (C) 2006-2008 by Gilles Caulier * Copyright (C) 2006-2008 by Marcel Wiesweg @@ -648,9 +700,20 @@ Index: libkexiv2/kexiv2iptc.cpp ++it; Index: libkexiv2/kexiv2private.h =================================================================== ---- libkexiv2/kexiv2private.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2private.h (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) -@@ -41,7 +41,6 @@ +--- libkexiv2/kexiv2private.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2private.h (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) +@@ -21,6 +21,10 @@ + * + * ============================================================ */ + ++#ifndef KEXIV2PRIVATE_H ++#define KEXIV2PRIVATE_H ++ ++ + // C++ includes. + + #include +@@ -41,7 +45,6 @@ #include #include #include @@ -658,7 +721,7 @@ Index: libkexiv2/kexiv2private.h // KDE includes. -@@ -49,6 +48,7 @@ +@@ -49,6 +52,7 @@ #include #include #include @@ -666,7 +729,7 @@ Index: libkexiv2/kexiv2private.h // Exiv2 includes. -@@ -119,6 +119,8 @@ +@@ -119,6 +123,8 @@ public: @@ -675,10 +738,15 @@ Index: libkexiv2/kexiv2private.h QString filePath; std::string imageComments; +@@ -133,3 +139,4 @@ + }; + + } // NameSpace KExiv2Iface ++#endif Index: libkexiv2/kexiv2image.cpp =================================================================== ---- libkexiv2/kexiv2image.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2image.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- libkexiv2/kexiv2image.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2image.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -10,20 +10,16 @@ * Copyright (C) 2006-2008 by Gilles Caulier * Copyright (C) 2006-2008 by Marcel Wiesweg @@ -938,8 +1006,8 @@ Index: libkexiv2/kexiv2image.cpp data.resize(previewFile.size()); Index: libkexiv2/CMakeLists.txt =================================================================== ---- libkexiv2/CMakeLists.txt (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- libkexiv2/CMakeLists.txt (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -1,7 +1,9 @@ -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}") @@ -962,9 +1030,17 @@ Index: libkexiv2/CMakeLists.txt TARGET_LINK_LIBRARIES( kexiv2 ${EXPAT_LIBRARIES} ) Index: libkexiv2/kexiv2.h =================================================================== ---- libkexiv2/kexiv2.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2.h (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) -@@ -118,13 +118,27 @@ +--- libkexiv2/kexiv2.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2.h (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) +@@ -14,6 +14,7 @@ + * Iptc : http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf + * Xmp : http://www.adobe.com/devnet/xmp/pdfs/xmp_specification.pdf + * http://www.iptc.org/std/Iptc4xmpCore/1.0/specification/Iptc4xmpCore_1.0-spec-XMPSchema_8.pdf ++ * Paper: http://www.metadataworkinggroup.com/pdf/mwg_guidance.pdf + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General +@@ -118,13 +119,27 @@ //-- STATICS methods ---------------------------------------------- //----------------------------------------------------------------- @@ -994,7 +1070,7 @@ Index: libkexiv2/kexiv2.h /** Return a string version of Exiv2 release in format "major.minor.patch" */ -@@ -135,13 +149,20 @@ +@@ -135,13 +150,20 @@ static QString version(); /** return true if metadata from file cannot be written by Exiv2. @@ -1016,7 +1092,7 @@ Index: libkexiv2/kexiv2.h /** Load all metadata (Exif, Iptc, Xmp, and JFIF Comments) from a picture (JPEG, RAW, TIFF, PNG, DNG, etc...). Return true if metadata have been loaded successfully from file. */ -@@ -169,6 +190,16 @@ +@@ -169,6 +191,16 @@ */ QString getFilePath() const; @@ -1033,10 +1109,37 @@ Index: libkexiv2/kexiv2.h //------------------------------------------------------------------- //-- Metadata IMAGE INFORMATION manipulation methods ---------------- //------------------------------------------------------------------- +@@ -388,7 +420,7 @@ + bool rationalWantSmallDenominator=true, bool setProgramName=true) const; + + /** Remove the Exif tag 'exifTagName' from Exif metadata. Return true if tag is +- removed successfully. ++ removed successfully or if no tag was present. + */ + bool removeExifTag(const char *exifTagName, bool setProgramName=true) const; + +@@ -489,7 +521,7 @@ + bool setIptcTagData(const char *iptcTagName, const QByteArray& data, bool setProgramName=true) const; + + /** Remove the all instance of Iptc tags 'iptcTagName' from Iptc metadata. Return true if all +- tags have been removed successfully. ++ tags have been removed successfully (or none were present). + */ + bool removeIptcTag(const char *iptcTagName, bool setProgramName=true) const; + +@@ -723,7 +755,7 @@ + bool registerXmpNameSpace(const QString& uri, const QString& prefix) const; + + /** Remove the Xmp tag 'xmpTagName' from Xmp metadata. Return true if tag is +- removed successfully. ++ removed successfully or if no tag was present. + */ + bool removeXmpTag(const char *xmpTagName, bool setProgramName=true) const; + Index: libkexiv2/kexiv2xmp.cpp =================================================================== ---- libkexiv2/kexiv2xmp.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ libkexiv2/kexiv2xmp.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- libkexiv2/kexiv2xmp.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ libkexiv2/kexiv2xmp.cpp (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -10,20 +10,16 @@ * Copyright (C) 2006-2008 by Gilles Caulier * Copyright (C) 2006-2008 by Marcel Wiesweg @@ -1177,20 +1280,39 @@ Index: libkexiv2/kexiv2xmp.cpp } #endif // _XMP_SUPPORT_ -@@ -557,10 +554,10 @@ +@@ -557,16 +554,23 @@ try { - QStringList list = seq; -+ const QStringList list = seq; - Exiv2::Value::AutoPtr xmpTxtSeq = Exiv2::Value::create(Exiv2::xmpSeq); - +- Exiv2::Value::AutoPtr xmpTxtSeq = Exiv2::Value::create(Exiv2::xmpSeq); +- - for (QStringList::Iterator it = list.begin(); it != list.end(); ++it ) -+ for (QStringList::const_iterator it = list.constBegin(); it != list.constEnd(); ++it ) ++ if (seq.isEmpty()) { - const std::string &txt((*it).toUtf8().constData()); - xmpTxtSeq->read(txt); -@@ -598,7 +595,7 @@ +- const std::string &txt((*it).toUtf8().constData()); +- xmpTxtSeq->read(txt); ++ removeXmpTag(xmpTagName); + } +- d->xmpMetadata.add(Exiv2::XmpKey(xmpTagName), xmpTxtSeq.get()); +- return true; ++ else ++ { ++ const QStringList list = seq; ++ Exiv2::Value::AutoPtr xmpTxtSeq = Exiv2::Value::create(Exiv2::xmpSeq); ++ ++ for (QStringList::const_iterator it = list.constBegin(); it != list.constEnd(); ++it ) ++ { ++ const std::string &txt((*it).toUtf8().constData()); ++ xmpTxtSeq->read(txt); ++ } ++ d->xmpMetadata[xmpTagName].setValue(xmpTxtSeq.get()); ++ return true; ++ } + } + catch( Exiv2::Error &e ) + { +@@ -598,7 +602,7 @@ std::ostringstream os; os << it->toString(i); QString bagValue = QString::fromUtf8(os.str().c_str()); @@ -1199,7 +1321,7 @@ Index: libkexiv2/kexiv2xmp.cpp if (escapeCR) bagValue.replace("\n", " "); -@@ -612,7 +609,7 @@ +@@ -612,7 +616,7 @@ catch( Exiv2::Error &e ) { d->printExiv2ExceptionError(QString("Cannot find Xmp key '%1' into image using Exiv2 ") @@ -1208,16 +1330,39 @@ Index: libkexiv2/kexiv2xmp.cpp } #endif // _XMP_SUPPORT_ -@@ -633,7 +630,7 @@ - QStringList list = bag; - Exiv2::Value::AutoPtr xmpTxtBag = Exiv2::Value::create(Exiv2::xmpBag); +@@ -630,16 +634,23 @@ + try + { +- QStringList list = bag; +- Exiv2::Value::AutoPtr xmpTxtBag = Exiv2::Value::create(Exiv2::xmpBag); +- - for (QStringList::Iterator it = list.begin(); it != list.end(); ++it ) -+ for (QStringList::const_iterator it = list.constBegin(); it != list.constEnd(); ++it ) ++ if (bag.isEmpty()) { - const std::string &txt((*it).toUtf8().constData()); - xmpTxtBag->read(txt); -@@ -748,7 +745,7 @@ +- const std::string &txt((*it).toUtf8().constData()); +- xmpTxtBag->read(txt); ++ removeXmpTag(xmpTagName); + } +- d->xmpMetadata.add(Exiv2::XmpKey(xmpTagName), xmpTxtBag.get()); +- return true; ++ else ++ { ++ QStringList list = bag; ++ Exiv2::Value::AutoPtr xmpTxtBag = Exiv2::Value::create(Exiv2::xmpBag); ++ ++ for (QStringList::const_iterator it = list.constBegin(); it != list.constEnd(); ++it ) ++ { ++ const std::string &txt((*it).toUtf8().constData()); ++ xmpTxtBag->read(txt); ++ } ++ d->xmpMetadata[xmpTagName].setValue(xmpTxtBag.get()); ++ return true; ++ } + } + catch( Exiv2::Error &e ) + { +@@ -748,7 +759,7 @@ catch( Exiv2::Error &e ) { d->printExiv2ExceptionError(QString("Cannot find Xmp key '%1' into image using Exiv2 ") @@ -1226,7 +1371,13 @@ Index: libkexiv2/kexiv2xmp.cpp } #endif // _XMP_SUPPORT_ -@@ -797,7 +794,7 @@ +@@ -793,11 +804,13 @@ + d->xmpMetadata.erase(it); + return true; + } ++ ++ return true; + } catch( Exiv2::Error &e ) { d->printExiv2ExceptionError("Cannot remove Xmp tag using Exiv2 ", e); @@ -1235,19 +1386,28 @@ Index: libkexiv2/kexiv2xmp.cpp #endif // _XMP_SUPPORT_ -@@ -818,9 +815,9 @@ +@@ -818,16 +831,16 @@ QStringList oldkeys = getXmpKeywords(); QStringList newkeys = newKeywords; - -+ - // Create a list of keywords including old one witch already exists. +- // Create a list of keywords including old one witch already exists. - for (QStringList::Iterator it = oldkeys.begin(); it != oldkeys.end(); ++it ) ++ ++ // Create a list of keywords including old one which already exists. + for (QStringList::const_iterator it = oldkeys.constBegin(); it != oldkeys.constEnd(); ++it ) { if (!newkeys.contains(*it)) newkeys.append(*it); -@@ -846,11 +843,11 @@ + } + + if (setXmpTagStringBag("Xmp.dc.subject", newkeys, false)) +- return false; ++ return true; + + #endif // _XMP_SUPPORT_ + +@@ -846,18 +859,18 @@ if (!setProgramId(setProgramName)) return false; @@ -1255,29 +1415,47 @@ Index: libkexiv2/kexiv2xmp.cpp + const QStringList oldSubCat = getXmpSubCategories(); QStringList newSubCat = newSubCategories; - -+ - // Create a list of sub-categories including old one witch already exists. +- // Create a list of sub-categories including old one witch already exists. - for (QStringList::Iterator it = oldSubCat.begin(); it != oldSubCat.end(); ++it ) ++ ++ // Create a list of sub-categories including old one which already exists. + for (QStringList::const_iterator it = oldSubCat.constBegin(); it != oldSubCat.constEnd(); ++it ) { if (!newSubCat.contains(*it)) newSubCat.append(*it); -@@ -878,9 +875,9 @@ + } + + if (setXmpTagStringBag("Xmp.photoshop.SupplementalCategories", newSubCat, false)) +- return false; ++ return true; + + #endif // _XMP_SUPPORT_ + +@@ -878,16 +891,16 @@ QStringList oldSubjectCodes = getXmpSubjects(); QStringList newSubjectCodes = newSubjects; - -+ - // Create a list of sub-categories including old one witch already exists. +- // Create a list of sub-categories including old one witch already exists. - for (QStringList::Iterator it = oldSubjectCodes.begin(); it != oldSubjectCodes.end(); ++it ) ++ ++ // Create a list of sub-categories including old one which already exists. + for (QStringList::const_iterator it = oldSubjectCodes.constBegin(); it != oldSubjectCodes.constEnd(); ++it ) { if (!newSubjectCodes.contains(*it)) newSubjectCodes.append(*it); + } + + if (setXmpTagStringBag("Xmp.iptc.SubjectCode", newSubjectCodes, false)) +- return false; ++ return true; + + #endif // _XMP_SUPPORT_ + Index: TODO =================================================================== ---- TODO (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ TODO (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- TODO (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ TODO (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -1,3 +1,3 @@ - Extract GPS info from XMP tags. -- Exif/Iptc => Xmp synchrosization. @@ -1285,8 +1463,8 @@ Index: TODO - Xmp side-car file support. Index: NEWS =================================================================== ---- NEWS (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ NEWS (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- NEWS (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ NEWS (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -1,9 +1,27 @@ -0.2.0 +0.4.0 - @@ -1318,9 +1496,9 @@ Index: NEWS 001 ==> 146864: Lesser XMP support in digiKam. Index: CMakeLists.txt =================================================================== ---- CMakeLists.txt (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) -@@ -15,11 +15,14 @@ +--- CMakeLists.txt (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) +@@ -15,11 +15,15 @@ # 0.1.7 => 4.0.1 # 0.1.8 => 5.0.0 # ... here we can have new releases from KDE3 branch @@ -1329,15 +1507,16 @@ Index: CMakeLists.txt +# 0.3.0 => 7.0.0 (released with KDE 4.1.2) +# 0.4.0 => 7.1.0 +# 0.5.0 => 7.2.0 (Released with KDE 4.2.0) ++# 0.6.0 => 7.3.0 (Released with KDE 4.3.0) # Library API version SET(KEXIV2_LIB_MAJOR_VERSION "0") -SET(KEXIV2_LIB_MINOR_VERSION "2") -+SET(KEXIV2_LIB_MINOR_VERSION "5") ++SET(KEXIV2_LIB_MINOR_VERSION "6") SET(KEXIV2_LIB_PATCH_VERSION "0") # Suffix to add at end of version string. Usual values are: -@@ -29,12 +32,12 @@ +@@ -29,12 +33,12 @@ # "-beta3" : beta3 release. # "-rc" : release candidate. # "" : final relase. Can be used in production. @@ -1349,11 +1528,11 @@ Index: CMakeLists.txt -SET(KEXIV2_LIB_SO_CUR_VERSION "6") -SET(KEXIV2_LIB_SO_REV_VERSION "0") +SET(KEXIV2_LIB_SO_CUR_VERSION "7") -+SET(KEXIV2_LIB_SO_REV_VERSION "2") ++SET(KEXIV2_LIB_SO_REV_VERSION "3") SET(KEXIV2_LIB_SO_AGE_VERSION "0") # ======================================================= -@@ -47,7 +50,6 @@ +@@ -47,7 +51,6 @@ # ======================================================= @@ -1363,8 +1542,8 @@ Index: CMakeLists.txt Index: README =================================================================== ---- README (.../tags/KDE/4.1.3/kdegraphics/libs/libkexiv2) (revision 888944) -+++ README (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 888944) +--- README (.../tags/KDE/4.1.4/kdegraphics/libs/libkexiv2) (revision 907970) ++++ README (.../trunk/KDE/kdegraphics/libs/libkexiv2) (revision 907970) @@ -9,18 +9,20 @@ -- ABOUT -------------------------------------------------------------- diff --git a/kdegraphics-4.1.3-libkipi-0.3.0.patch b/kdegraphics-4.1.3-libkipi-0.3.0.patch index 8bdd51d..7543e8c 100644 --- a/kdegraphics-4.1.3-libkipi-0.3.0.patch +++ b/kdegraphics-4.1.3-libkipi-0.3.0.patch @@ -1,7 +1,7 @@ Index: kipiplugin.desktop =================================================================== ---- kipiplugin.desktop (.../tags/KDE/4.1.3/kdegraphics/libs/libkipi) (revision 900398) -+++ kipiplugin.desktop (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 900398) +--- kipiplugin.desktop (.../tags/KDE/4.1.4/kdegraphics/libs/libkipi) (revision 907970) ++++ kipiplugin.desktop (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 907970) @@ -3,18 +3,21 @@ X-KDE-ServiceType=KIPI/Plugin X-KDE-DerivedName=KIPI Plugin @@ -24,7 +24,7 @@ Index: kipiplugin.desktop Comment[ca]=Un connector KIPI Comment[cs]=KIPI modul Comment[da]=Et KIPI-plugin -@@ -25,19 +28,20 @@ +@@ -25,13 +28,12 @@ Comment[fr]=Un module externe pour KIPI Comment[ga]=Breiseán KIPI Comment[gl]=Unha extension de KIPI @@ -39,7 +39,7 @@ Index: kipiplugin.desktop Comment[lv]=KIPI spraudnis Comment[nds]=En KIPI-Moduul Comment[nl]=Een KIPI-plugin -+Comment[nn]=Eit programtillegg til KIPI +@@ -39,6 +41,7 @@ Comment[pl]=Wtyczka KIPI Comment[pt]=Um 'Plugin' do KIPI Comment[pt_BR]=Um Plug-in do KIPI @@ -49,8 +49,8 @@ Index: kipiplugin.desktop Comment[sv]=Ett KIPI-insticksprogram Index: libkipi/interface.cpp =================================================================== ---- libkipi/interface.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkipi) (revision 900398) -+++ libkipi/interface.cpp (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 900398) +--- libkipi/interface.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkipi) (revision 907970) ++++ libkipi/interface.cpp (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 907970) @@ -4,7 +4,7 @@ * http://www.kipi-plugins.org * @@ -319,8 +319,8 @@ Index: libkipi/interface.cpp } // namespace KIPI Index: libkipi/interface.h =================================================================== ---- libkipi/interface.h (.../tags/KDE/4.1.3/kdegraphics/libs/libkipi) (revision 900398) -+++ libkipi/interface.h (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 900398) +--- libkipi/interface.h (.../tags/KDE/4.1.4/kdegraphics/libs/libkipi) (revision 907970) ++++ libkipi/interface.h (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 907970) @@ -15,12 +15,12 @@ * and/or modify it under the terms of the GNU General * Public License as published by the Free Software Foundation; @@ -551,8 +551,8 @@ Index: libkipi/interface.h } // namespace KIPI Index: libkipi/imagecollectionshared.cpp =================================================================== ---- libkipi/imagecollectionshared.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkipi) (revision 900398) -+++ libkipi/imagecollectionshared.cpp (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 900398) +--- libkipi/imagecollectionshared.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkipi) (revision 907970) ++++ libkipi/imagecollectionshared.cpp (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 907970) @@ -15,12 +15,12 @@ * and/or modify it under the terms of the GNU General * Public License as published by the Free Software Foundation; @@ -579,8 +579,8 @@ Index: libkipi/imagecollectionshared.cpp } Index: libkipi/pluginloader.cpp =================================================================== ---- libkipi/pluginloader.cpp (.../tags/KDE/4.1.3/kdegraphics/libs/libkipi) (revision 900398) -+++ libkipi/pluginloader.cpp (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 900398) +--- libkipi/pluginloader.cpp (.../tags/KDE/4.1.4/kdegraphics/libs/libkipi) (revision 907970) ++++ libkipi/pluginloader.cpp (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 907970) @@ -228,7 +228,7 @@ } @@ -603,8 +603,8 @@ Index: libkipi/pluginloader.cpp lay->addWidget( cb ); Index: ChangeLog =================================================================== ---- ChangeLog (.../tags/KDE/4.1.3/kdegraphics/libs/libkipi) (revision 900398) -+++ ChangeLog (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 900398) +--- ChangeLog (.../tags/KDE/4.1.4/kdegraphics/libs/libkipi) (revision 907970) ++++ ChangeLog (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 907970) @@ -242,7 +242,7 @@ trunk/extragear/libs/libkipi/libkipi/plugin.h, trunk/extragear/libs/libkipi/libkipi/pluginloader.cpp: Made some @@ -616,8 +616,8 @@ Index: ChangeLog Index: NEWS =================================================================== ---- NEWS (.../tags/KDE/4.1.3/kdegraphics/libs/libkipi) (revision 900398) -+++ NEWS (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 900398) +--- NEWS (.../tags/KDE/4.1.4/kdegraphics/libs/libkipi) (revision 907970) ++++ NEWS (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 907970) @@ -1,15 +1,21 @@ -0.2.0 +0.3.0 - Released with KDE 4.2.0 @@ -710,8 +710,8 @@ Index: NEWS For details and info about previous versions, see ChangeLog. Index: CMakeLists.txt =================================================================== ---- CMakeLists.txt (.../tags/KDE/4.1.3/kdegraphics/libs/libkipi) (revision 900398) -+++ CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 900398) +--- CMakeLists.txt (.../tags/KDE/4.1.4/kdegraphics/libs/libkipi) (revision 907970) ++++ CMakeLists.txt (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 907970) @@ -13,11 +13,12 @@ # 0.1.5 => 1.1.1 # 0.1.6 => 2.0.0 @@ -743,8 +743,8 @@ Index: CMakeLists.txt Index: README =================================================================== ---- README (.../tags/KDE/4.1.3/kdegraphics/libs/libkipi) (revision 900398) -+++ README (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 900398) +--- README (.../tags/KDE/4.1.4/kdegraphics/libs/libkipi) (revision 907970) ++++ README (.../trunk/KDE/kdegraphics/libs/libkipi) (revision 907970) @@ -52,7 +52,7 @@ IMPORTANT : the bugreports and wishlist are hosted by the KDE bugs report diff --git a/kdegraphics.spec b/kdegraphics.spec index 0d574ba..d4c65e8 100644 --- a/kdegraphics.spec +++ b/kdegraphics.spec @@ -7,8 +7,8 @@ Summary: K Desktop Environment - Graphics Applications Epoch: 7 -Version: 4.1.3 -Release: 6%{?dist} +Version: 4.1.4 +Release: 1%{?dist} Name: kdegraphics #Obsoletes: kdegraphics4 < %{version}-%{release} @@ -226,6 +226,9 @@ rm -rf %{buildroot} %changelog +* Fri Jan 9 2009 Lukáš Tinkl 4.1.4-1 +- KDE 4.1.4 + * Thu Jan 08 2009 Kevin Kofler 4.1.3-6 - BR ebook-tools-devel diff --git a/sources b/sources index 1bee68b..087ff84 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -62513c5d92fae359705266eb2365c526 kdegraphics-4.1.3.tar.bz2 +c2a67098d9df60e839d2af6b866989ef kdegraphics-4.1.4.tar.bz2