"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "libvips/foreign/dzsave.c" between
vips-8.10.6.tar.gz and vips-8.11.0.tar.gz

About: VIPS is a free image processing system (see also the GUI nip2).

dzsave.c  (vips-8.10.6):dzsave.c  (vips-8.11.0)
skipping to change at line 176 skipping to change at line 176
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <vips/vips.h> #include <vips/vips.h>
#include <vips/internal.h> #include <vips/internal.h>
#ifdef HAVE_GSF #ifdef HAVE_GSF
/* Disable deprecation warnings from gsf. There are loads, and still not
* patched as of 12/2020.
*/
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#include <gsf/gsf.h> #include <gsf/gsf.h>
#pragma GCC diagnostic pop
/* Simple wrapper around libgsf. /* Simple wrapper around libgsf.
* *
* We need to be able to do scattered writes to structured files. So while * We need to be able to do scattered writes to structured files. So while
* building a zip (for example) we need to be able to write to file/a/b.jpg, * building a zip (for example) we need to be able to write to file/a/b.jpg,
* then to file/c/d.jpg, then back to file/a/e.jpg. This is tricky with the * then to file/c/d.jpg, then back to file/a/e.jpg. This is tricky with the
* libgsf API which is happier doing writes in order. * libgsf API which is happier doing writes in order.
* *
* Put an API over libgsf to track refs to all directories and finish/close * Put an API over libgsf to track refs to all directories and finish/close
* them. * them.
skipping to change at line 363 skipping to change at line 369
VipsGsfDirectory *dir; VipsGsfDirectory *dir;
VipsGsfDirectory *child; VipsGsfDirectory *child;
char *dir_name; char *dir_name;
GsfOutput *obj; GsfOutput *obj;
/* vips_gsf_path() always makes a new file, though it may add to an /* vips_gsf_path() always makes a new file, though it may add to an
* existing directory. Note the file, and note the length of the full * existing directory. Note the file, and note the length of the full
* path we are creating. * path we are creating.
*/ */
tree->file_count += 1; tree->file_count += 1;
tree->filename_lengths += strlen( tree->out->name ) + strlen( name ) + 1; tree->filename_lengths +=
strlen( tree->out->name ) + strlen( name ) + 1;
dir = tree; dir = tree;
va_start( ap, name ); va_start( ap, name );
while( (dir_name = va_arg( ap, char * )) ) { while( (dir_name = va_arg( ap, char * )) ) {
if( (child = vips_gsf_child_by_name( dir, dir_name )) ) if( (child = vips_gsf_child_by_name( dir, dir_name )) )
dir = child; dir = child;
else else
dir = vips_gsf_dir_new( dir, dir_name ); dir = vips_gsf_dir_new( dir, dir_name );
tree->filename_lengths += strlen( dir_name ) + 1; tree->filename_lengths += strlen( dir_name ) + 1;
 End of changes. 3 change blocks. 
1 lines changed or deleted 8 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)