diff --git a/cplusplus/include/vips/vips-operators.h b/cplusplus/include/vips/vips-operators.h
index 65ef4adf..7b6392cb 100644
--- a/cplusplus/include/vips/vips-operators.h
+++ b/cplusplus/include/vips/vips-operators.h
@@ -1,5 +1,5 @@
// headers for vips operations
-// Mon 30 Dec 17:45:50 GMT 2019
+// Wed 01 Jan 2020 12:22:11 PM CET
// this file is generated automatically, do not edit!
/**
@@ -1507,13 +1507,6 @@ VImage phasecor( VImage in2, VOption *options = 0 ) const;
*/
static VImage pngload( const char *filename, VOption *options = 0 );
-/**
- * Load png base class.
- * @param options Optional options.
- * @return Output image.
- */
-static VImage pngload_base( VOption *options = 0 );
-
/**
* Load png from buffer.
* @param buffer Buffer to load from.
diff --git a/cplusplus/vips-operators.cpp b/cplusplus/vips-operators.cpp
index 5187544a..12694762 100644
--- a/cplusplus/vips-operators.cpp
+++ b/cplusplus/vips-operators.cpp
@@ -1,5 +1,5 @@
// bodies for vips operations
-// Mon 30 Dec 17:45:35 GMT 2019
+// Wed 01 Jan 2020 12:22:12 PM CET
// this file is generated automatically, do not edit!
VImage VImage::CMC2LCh( VOption *options ) const
@@ -2307,17 +2307,6 @@ VImage VImage::pngload( const char *filename, VOption *options )
return( out );
}
-VImage VImage::pngload_base( VOption *options )
-{
- VImage out;
-
- call( "pngload_base",
- (options ? options : VImage::option())->
- set( "out", &out ) );
-
- return( out );
-}
-
VImage VImage::pngload_buffer( VipsBlob *buffer, VOption *options )
{
VImage out;
diff --git a/doc/function-list.xml b/doc/function-list.xml
index 6a93b7a4..441b4b9f 100644
--- a/doc/function-list.xml
+++ b/doc/function-list.xml
@@ -404,7 +404,7 @@
draw_flood
Flood-fill an area
- vips_draw_flood(), vips_draw_flood()
+ vips_draw_flood(), vips_draw_flood1()
draw_image
@@ -424,7 +424,7 @@
draw_rect
Paint a rectangle on an image
- vips_draw_rect(), vips_rect(), vips_draw_rect1(), vips_draw_point(), vips_draw_point1()
+ vips_draw_rect(), vips_draw_rect1(), vips_draw_point(), vips_draw_point1()
draw_smudge
@@ -722,9 +722,9 @@
vips_jpegload_buffer()
- jpegload_stream
- Load image from jpeg stream
- vips_jpegload_stream()
+ jpegload_source
+ Load image from jpeg source
+ vips_jpegload_source()
jpegsave
@@ -742,9 +742,9 @@
vips_jpegsave_mime()
- jpegsave_stream
- Save image to jpeg stream
- vips_jpegsave_stream()
+ jpegsave_target
+ Save image to jpeg target
+ vips_jpegsave_target()
labelregions
@@ -987,9 +987,9 @@
vips_pngload_buffer()
- pngload_stream
- Load png from stream
- vips_pngload_stream()
+ pngload_source
+ Load png from source
+ vips_pngload_source()
pngsave
@@ -1002,9 +1002,9 @@
vips_pngsave_buffer()
- pngsave_stream
- Save image to png stream
- vips_pngsave_stream()
+ pngsave_target
+ Save image to target as png
+ vips_pngsave_target()
ppmload
@@ -1057,9 +1057,9 @@
vips_radload_buffer()
- radload_stream
- Load rad from stream
- vips_radload_stream()
+ radload_source
+ Load rad from source
+ vips_radload_source()
radsave
@@ -1072,9 +1072,9 @@
vips_radsave_buffer()
- radsave_stream
- Save image to radiance stream
- vips_radsave_stream()
+ radsave_target
+ Save image to radiance target
+ vips_radsave_target()
rank
@@ -1292,9 +1292,9 @@
vips_svgload_buffer()
- svgload_stream
- Load svg from stream
- vips_svgload_stream()
+ svgload_source
+ Load svg from source
+ vips_svgload_source()
switch
@@ -1327,9 +1327,9 @@
vips_thumbnail_image()
- thumbnail_stream
- Generate thumbnail from stream
- vips_thumbnail_stream()
+ thumbnail_source
+ Generate thumbnail from source
+ vips_thumbnail_source()
tiffload
@@ -1342,9 +1342,9 @@
vips_tiffload_buffer()
- tiffload_stream
- Load tiff from stream
- vips_tiffload_stream()
+ tiffload_source
+ Load tiff from source
+ vips_tiffload_source()
tiffsave
@@ -1397,9 +1397,9 @@
vips_webpload_buffer()
- webpload_stream
- Load webp from stream
- vips_webpload_stream()
+ webpload_source
+ Load webp from source
+ vips_webpload_source()
webpsave
@@ -1412,9 +1412,9 @@
vips_webpsave_buffer()
- webpsave_stream
- Save image to webp stream
- vips_webpsave_stream()
+ webpsave_target
+ Save image to webp target
+ vips_webpsave_target()
worley
diff --git a/doc/gen-function-list.py b/doc/gen-function-list.py
old mode 100755
new mode 100644
index 4d91eed9..5ad30e33
--- a/doc/gen-function-list.py
+++ b/doc/gen-function-list.py
@@ -22,13 +22,18 @@ from pyvips import Introspect, Operation, Error, \
_OPERATION_DEPRECATED = 8
-def gen_function(operation_name):
+def gen_function(operation_name, overloads):
intro = Introspect.get(operation_name)
+ c_operations = 'vips_{}()'.format(operation_name)
+
+ if overloads:
+ c_operations += ', ' + (', '.join('vips_{}()'.format(n) for n in overloads))
+
result = '\n'
result += ' {}\n'.format(operation_name)
result += ' {}\n'.format(intro.description.capitalize())
- result += ' vips_{}()\n'.format(operation_name)
+ result += ' {}\n'.format(c_operations)
result += '
'
return result
@@ -71,10 +76,10 @@ def gen_function_list():
'complex2': ['cross_phase'],
'complexget': ['real', 'imag'],
'draw_circle': ['draw_circle1'],
- 'draw_flood': ['draw_flood'],
+ 'draw_flood': ['draw_flood1'],
'draw_line': ['draw_line1'],
'draw_mask': ['draw_mask1'],
- 'draw_rect': ['rect', 'draw_rect1', 'draw_point', 'draw_point1'],
+ 'draw_rect': ['draw_rect1', 'draw_point', 'draw_point1'],
'extract_area': ['crop'],
'linear': ['linear1'],
'math': ['sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'exp', 'exp10', 'log', 'log10'],
@@ -95,9 +100,7 @@ def gen_function_list():
[o + '_const1' for o in overloads['relational']]
for nickname in all_nicknames:
- result = gen_function(nickname)
- if nickname in overloads:
- result = result.replace('()', '(), ' + (', '.join('vips_{}()'.format(n) for n in overloads[nickname])))
+ result = gen_function(nickname, overloads[nickname] if nickname in overloads else None)
print(result)
diff --git a/libvips/foreign/pngload.c b/libvips/foreign/pngload.c
index f2b034e8..1c4d34b0 100644
--- a/libvips/foreign/pngload.c
+++ b/libvips/foreign/pngload.c
@@ -63,7 +63,7 @@ typedef struct _VipsForeignLoadPng {
typedef VipsForeignLoadClass VipsForeignLoadPngClass;
-G_DEFINE_TYPE( VipsForeignLoadPng, vips_foreign_load_png,
+G_DEFINE_ABSTRACT_TYPE( VipsForeignLoadPng, vips_foreign_load_png,
VIPS_TYPE_FOREIGN_LOAD );
static void
diff --git a/test/.gitignore b/test/.gitignore
index 4463a396..9baa9b25 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -1,2 +1,2 @@
test_descriptors
-test_streams
+test_connections
diff --git a/test/test_connections b/test/test_connections
deleted file mode 100755
index 73642228..00000000
--- a/test/test_connections
+++ /dev/null
@@ -1,210 +0,0 @@
-#! /bin/bash
-
-# test_connections - temporary wrapper script for .libs/test_connections
-# Generated by libtool (GNU libtool) 2.4.6 Debian-2.4.6-11
-#
-# The test_connections program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=""
-
-# This environment variable determines our operation mode.
-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
- # install mode needs the following variables:
- generated_by_libtool_version='2.4.6'
- notinst_deplibs=' ../libvips/libvips.la'
-else
- # When we are sourced in execute mode, $file and $ECHO are already set.
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- file="$0"
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
- ECHO="printf %s\\n"
- fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ that is used only on
-# windows platforms, and (c) all begin with the string --lt-
-# (application programs are unlikely to have options that match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's ../libtool value, followed by no.
-lt_option_debug=
-func_parse_lt_options ()
-{
- lt_script_arg0=$0
- shift
- for lt_opt
- do
- case "$lt_opt" in
- --lt-debug) lt_option_debug=1 ;;
- --lt-dump-script)
- lt_dump_D=`$ECHO "X$lt_script_arg0" | /bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
- test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
- lt_dump_F=`$ECHO "X$lt_script_arg0" | /bin/sed -e 's/^X//' -e 's%^.*/%%'`
- cat "$lt_dump_D/$lt_dump_F"
- exit 0
- ;;
- --lt-*)
- $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
- exit 1
- ;;
- esac
- done
-
- # Print the debug banner immediately:
- if test -n "$lt_option_debug"; then
- echo "test_connections:test_connections:$LINENO: libtool wrapper (GNU libtool) 2.4.6 Debian-2.4.6-11" 1>&2
- fi
-}
-
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
- lt_dump_args_N=1;
- for lt_arg
- do
- $ECHO "test_connections:test_connections:$LINENO: newargv[$lt_dump_args_N]: $lt_arg"
- lt_dump_args_N=`expr $lt_dump_args_N + 1`
- done
-}
-
-# Core function for launching the target application
-func_exec_program_core ()
-{
-
- if test -n "$lt_option_debug"; then
- $ECHO "test_connections:test_connections:$LINENO: newargv[0]: $progdir/$program" 1>&2
- func_lt_dump_args ${1+"$@"} 1>&2
- fi
- exec "$progdir/$program" ${1+"$@"}
-
- $ECHO "$0: cannot exec $program $*" 1>&2
- exit 1
-}
-
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from $@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
- case " $* " in
- *\ --lt-*)
- for lt_wr_arg
- do
- case $lt_wr_arg in
- --lt-*) ;;
- *) set x "$@" "$lt_wr_arg"; shift;;
- esac
- shift
- done ;;
- esac
- func_exec_program_core ${1+"$@"}
-}
-
- # Parse options
- func_parse_lt_options "$0" ${1+"$@"}
-
- # Find the directory that this script lives in.
- thisdir=`$ECHO "$file" | /bin/sed 's%/[^/]*$%%'`
- test "x$thisdir" = "x$file" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
- while test -n "$file"; do
- destdir=`$ECHO "$file" | /bin/sed 's%/[^/]*$%%'`
-
- # If there was a directory component, then change thisdir.
- if test "x$destdir" != "x$file"; then
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
- *) thisdir="$thisdir/$destdir" ;;
- esac
- fi
-
- file=`$ECHO "$file" | /bin/sed 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
- done
-
- # Usually 'no', except on cygwin/mingw when embedded into
- # the cwrapper.
- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
- if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
- # special case for '.'
- if test "$thisdir" = "."; then
- thisdir=`pwd`
- fi
- # remove .libs from thisdir
- case "$thisdir" in
- *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /bin/sed 's%[\\/][^\\/]*$%%'` ;;
- .libs ) thisdir=. ;;
- esac
- fi
-
- # Try to get the absolute directory name.
- absdir=`cd "$thisdir" && pwd`
- test -n "$absdir" && thisdir="$absdir"
-
- program='test_connections'
- progdir="$thisdir/.libs"
-
-
- if test -f "$progdir/$program"; then
- # Add our own library path to LD_LIBRARY_PATH
- LD_LIBRARY_PATH="/home/john/GIT/libvips/libvips/.libs:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
-
- # Some systems cannot cope with colon-terminated LD_LIBRARY_PATH
- # The second colon is a workaround for a bug in BeOS R4 sed
- LD_LIBRARY_PATH=`$ECHO "$LD_LIBRARY_PATH" | /bin/sed 's/::*$//'`
-
- export LD_LIBRARY_PATH
-
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- # Run the actual program with our arguments.
- func_exec_program ${1+"$@"}
- fi
- else
- # The program doesn't exist.
- $ECHO "$0: error: '$progdir/$program' does not exist" 1>&2
- $ECHO "This script is just a wrapper for $program." 1>&2
- $ECHO "See the libtool documentation for more information." 1>&2
- exit 1
- fi
-fi
diff --git a/test/test_connections.sh b/test/test_connections.sh
index a12c1225..de59c9a1 100755
--- a/test/test_connections.sh
+++ b/test/test_connections.sh
@@ -1,13 +1,13 @@
#!/bin/sh
-# test load and save via stream*u
+# test load and save via custom connection
# set -x
set -e
. ./variables.sh
-if test_supported jpegload_stream; then
+if test_supported jpegload_source; then
./test_connections $image $tmp/x.png
# test max difference < 10