diff --git a/ChangeLog b/ChangeLog index acd5699a..b0b97bfa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,14 @@ - better handling of input files in vips7 command-line interface - sequential can skip ahead, so extract / insert are now seq +16/7/12 started 7.28.10 +- wopconst was broken +- vips_sign() was broken +- png save compression range was wrong +- more/moreeq was wrong +- vips7 ppm save with options was broken +- don't cache write operations + 18/6/12 started 7.28.9 - slightly more memory debugging output - remove references to the static bicubic interpolator from the docs diff --git a/configure.in b/configure.in index 5397b64f..5f75bc95 100644 --- a/configure.in +++ b/configure.in @@ -37,7 +37,7 @@ VIPS_VERSION_STRING=$VIPS_VERSION-`date` # binary interface changes not backwards compatible?: reset age to 0 LIBRARY_CURRENT=33 -LIBRARY_REVISION=1 +LIBRARY_REVISION=2 LIBRARY_AGE=1 # patched into include/vips/version.h diff --git a/libvips/arithmetic/math2.c b/libvips/arithmetic/math2.c index 3869e9c4..b6cfe6f4 100644 --- a/libvips/arithmetic/math2.c +++ b/libvips/arithmetic/math2.c @@ -22,6 +22,8 @@ * - im_powtra() adapated to make math2.c * 12/11/11 * - redone as a class + * 17/7/12 + * - wopconst was broken */ /* @@ -401,7 +403,7 @@ vips_math2_const_class_init( VipsMath2ConstClass *class ) _( "Operation" ), _( "math to perform" ), VIPS_ARGUMENT_REQUIRED_INPUT, - G_STRUCT_OFFSET( VipsMath2, math2 ), + G_STRUCT_OFFSET( VipsMath2Const, math2 ), VIPS_TYPE_OPERATION_MATH2, VIPS_OPERATION_MATH2_POW ); } diff --git a/libvips/deprecated/im_vips2ppm.c b/libvips/deprecated/im_vips2ppm.c index 3fc21b9e..311aaf3c 100644 --- a/libvips/deprecated/im_vips2ppm.c +++ b/libvips/deprecated/im_vips2ppm.c @@ -66,5 +66,5 @@ im_vips2ppm( IMAGE *in, const char *filename ) } } - return( vips_ppmsave( in, filename, "ascii", ascii, NULL ) ); + return( vips_ppmsave( in, name, "ascii", ascii, NULL ) ); } diff --git a/libvips/foreign/foreign.c b/libvips/foreign/foreign.c index 70a00150..36e0bba7 100644 --- a/libvips/foreign/foreign.c +++ b/libvips/foreign/foreign.c @@ -890,7 +890,7 @@ vips_foreign_load_build( VipsObject *object ) } static VipsOperationFlags -vips_foreign_load_real_get_flags( VipsOperation *operation ) +vips_foreign_load_operation_get_flags( VipsOperation *operation ) { VipsForeignLoad *load = VIPS_FOREIGN_LOAD( operation ); VipsOperationFlags flags; @@ -920,7 +920,7 @@ vips_foreign_load_class_init( VipsForeignLoadClass *class ) object_class->nickname = "fileload"; object_class->description = _( "file loaders" ); - operation_class->get_flags = vips_foreign_load_real_get_flags; + operation_class->get_flags = vips_foreign_load_operation_get_flags; VIPS_ARG_IMAGE( class, "out", 2, _( "Output" ), @@ -1428,6 +1428,10 @@ vips_foreign_save_class_init( VipsForeignSaveClass *class ) */ operation_class->flags |= VIPS_OPERATION_SEQUENTIAL; + /* Must not cache savers. + */ + operation_class->flags |= VIPS_OPERATION_NOCACHE; + /* Default to no coding allowed. */ for( i = 0; i < VIPS_CODING_LAST; i++ ) diff --git a/libvips/foreign/pngsave.c b/libvips/foreign/pngsave.c index 1979a7a8..53eacaac 100644 --- a/libvips/foreign/pngsave.c +++ b/libvips/foreign/pngsave.c @@ -2,6 +2,8 @@ * * 2/12/11 * - wrap a class around the png writer + * 16/7/12 + * - compression should be 0-9, not 1-10 */ /* @@ -104,7 +106,7 @@ vips_foreign_save_png_class_init( VipsForeignSavePngClass *class ) _( "Compression factor" ), VIPS_ARGUMENT_OPTIONAL_INPUT, G_STRUCT_OFFSET( VipsForeignSavePng, compression ), - 1, 10, 6 ); + 0, 9, 6 ); VIPS_ARG_BOOL( class, "interlace", 7, _( "Interlace" ), diff --git a/libvips/include/vips/operation.h b/libvips/include/vips/operation.h index 8689dcc2..eafa2b4c 100644 --- a/libvips/include/vips/operation.h +++ b/libvips/include/vips/operation.h @@ -96,8 +96,7 @@ typedef struct _VipsOperationClass { */ void (*usage)( struct _VipsOperationClass *, VipsBuf * ); - /* Return a set of operation flags. If @get_flags is NULL, just use - * flags. + /* Return a set of operation flags. */ VipsOperationFlags (*get_flags)( VipsOperation * ); VipsOperationFlags flags; diff --git a/libvips/iofuncs/cache.c b/libvips/iofuncs/cache.c index 55273763..bf1c236f 100644 --- a/libvips/iofuncs/cache.c +++ b/libvips/iofuncs/cache.c @@ -265,9 +265,15 @@ vips_value_equal( GParamSpec *pspec, GValue *v1, GValue *v2 ) if( generic == G_TYPE_PARAM_DOUBLE ) return( g_value_get_double( v1 ) == g_value_get_double( v2 ) ); - if( generic == G_TYPE_PARAM_STRING ) - return( strcmp( g_value_get_string( v1 ), - g_value_get_string( v2 ) ) == 0 ); + if( generic == G_TYPE_PARAM_STRING ) { + const char *s1 = g_value_get_string( v1 ); + const char *s2 = g_value_get_string( v2 ); + + if( s1 == s2 ) + return( TRUE ); + else + return( s1 && s2 && strcmp( s1, s2 ) == 0 ); + } if( generic == G_TYPE_PARAM_BOXED ) return( g_value_get_boxed( v1 ) == g_value_get_boxed( v2 ) ); diff --git a/po/en_GB.gmo b/po/en_GB.gmo index e69de29b..9906858d 100644 Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ