use GetTempPath() on WIndows
This commit is contained in:
parent
030a567f79
commit
f822234c4e
@ -2,6 +2,7 @@
|
|||||||
- im_vips2bufjpeg() writes to a linked list, so it will work for any size
|
- im_vips2bufjpeg() writes to a linked list, so it will work for any size
|
||||||
image and header
|
image and header
|
||||||
- added im_vips2bufpng()
|
- added im_vips2bufpng()
|
||||||
|
- use GetTempPath() to pick a temp dir on Windows
|
||||||
|
|
||||||
12/5/10 started 7.22.2
|
12/5/10 started 7.22.2
|
||||||
- the conditional image of ifthenelse can be any format, a (!=0) is added if
|
- the conditional image of ifthenelse can be any format, a (!=0) is added if
|
||||||
|
5
TODO
5
TODO
@ -1,8 +1,3 @@
|
|||||||
- use GetTempPath
|
|
||||||
|
|
||||||
http://msdn.microsoft.com/en-us/library/aa364992%28VS.85%29.aspx
|
|
||||||
|
|
||||||
instead of $TMPDIR on win
|
|
||||||
|
|
||||||
- lcms2 needs testing
|
- lcms2 needs testing
|
||||||
|
|
||||||
|
@ -59,10 +59,8 @@
|
|||||||
* Copy an image to a disc file, then copy again to output. If the image is
|
* Copy an image to a disc file, then copy again to output. If the image is
|
||||||
* already a disc file, just copy straight through.
|
* already a disc file, just copy straight through.
|
||||||
*
|
*
|
||||||
* The disc file is allocated in the same way as im_system_image(). A disc
|
* The disc file is allocated in the same way as im_system_image().
|
||||||
* file is created in /tmp (change this with the TMPDIR environment
|
* The file is automatically deleted when @out is closed.
|
||||||
* variable) named something like "vips-12-34985.v" and the image is written
|
|
||||||
* to that file. The file is automatically deleted when @out is closed.
|
|
||||||
*
|
*
|
||||||
* See also: im_copy(), im_system_image().
|
* See also: im_copy(), im_system_image().
|
||||||
*
|
*
|
||||||
|
@ -81,8 +81,8 @@
|
|||||||
* "vips_XXXXXX.v", and that filename given to the command. The file is
|
* "vips_XXXXXX.v", and that filename given to the command. The file is
|
||||||
* deleted when the command finishes.
|
* deleted when the command finishes.
|
||||||
*
|
*
|
||||||
* The environment variable TMPDIR can be used to set the temporary
|
* See im_system_image() for details on how VIPS selects a temporary
|
||||||
* directory. If it is not set, it defaults to "/tmp".
|
* directory.
|
||||||
*
|
*
|
||||||
* In all cases, @log must be freed with im_free().
|
* In all cases, @log must be freed with im_free().
|
||||||
*
|
*
|
||||||
|
@ -100,6 +100,10 @@ system_image( IMAGE *im,
|
|||||||
* can be used to set a different temporary directory. If @in_format is
|
* can be used to set a different temporary directory. If @in_format is
|
||||||
* something like "%%s.png", the file will be written in PNG format.
|
* something like "%%s.png", the file will be written in PNG format.
|
||||||
*
|
*
|
||||||
|
* On Windows, if the environment variable TMPDIR is not defined, VIPS calls
|
||||||
|
* GetTempPath() to get the user's preferred temporary area. If that fails, it
|
||||||
|
* defaults to C:\temp.
|
||||||
|
*
|
||||||
* Next an output filename is created in the same way using @out_format. The
|
* Next an output filename is created in the same way using @out_format. The
|
||||||
* command string to run is made by substituting the first %%s in @cmd_format
|
* command string to run is made by substituting the first %%s in @cmd_format
|
||||||
* for the name of the input file and the second %%s for the output filename.
|
* for the name of the input file and the second %%s for the output filename.
|
||||||
|
@ -1528,6 +1528,32 @@ im_amiMSBfirst( void )
|
|||||||
return( 1 );
|
return( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the tmp dir. On Windows, GetTempPath() will also check the values of
|
||||||
|
* TMP, TEMP and USERPROFILE.
|
||||||
|
*/
|
||||||
|
static const char *
|
||||||
|
im__temp_dir( void )
|
||||||
|
{
|
||||||
|
const char *tmpd;
|
||||||
|
|
||||||
|
if( !(tmpd = g_getenv( "TMPDIR" )) ) {
|
||||||
|
#ifdef OS_WIN32
|
||||||
|
static gboolean done = FALSE;
|
||||||
|
static char buf[256];
|
||||||
|
|
||||||
|
if( !done ) {
|
||||||
|
if( !GetTempPath( 256, buf ) )
|
||||||
|
strcpy( buf, "C:\\temp" );
|
||||||
|
}
|
||||||
|
tmpd = buf;
|
||||||
|
#else /*!OS_WIN32*/
|
||||||
|
tmpd = "/tmp";
|
||||||
|
#endif /*!OS_WIN32*/
|
||||||
|
}
|
||||||
|
|
||||||
|
return( tmpd );
|
||||||
|
}
|
||||||
|
|
||||||
/* Make a temporary file name. The format parameter is something like "%s.jpg"
|
/* Make a temporary file name. The format parameter is something like "%s.jpg"
|
||||||
* and will be expanded to something like "/tmp/vips-12-34587.jpg".
|
* and will be expanded to something like "/tmp/vips-12-34587.jpg".
|
||||||
*
|
*
|
||||||
@ -1539,19 +1565,15 @@ im__temp_name( const char *format )
|
|||||||
{
|
{
|
||||||
static int serial = 1;
|
static int serial = 1;
|
||||||
|
|
||||||
const char *tmpd;
|
|
||||||
char file[FILENAME_MAX];
|
char file[FILENAME_MAX];
|
||||||
char file2[FILENAME_MAX];
|
char file2[FILENAME_MAX];
|
||||||
|
|
||||||
char *name;
|
char *name;
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
if( !(tmpd = g_getenv( "TMPDIR" )) )
|
|
||||||
tmpd = "/tmp";
|
|
||||||
|
|
||||||
im_snprintf( file, FILENAME_MAX, "vips-%d-XXXXXX", serial++ );
|
im_snprintf( file, FILENAME_MAX, "vips-%d-XXXXXX", serial++ );
|
||||||
im_snprintf( file2, FILENAME_MAX, format, file );
|
im_snprintf( file2, FILENAME_MAX, format, file );
|
||||||
name = g_build_filename( tmpd, file2, NULL );
|
name = g_build_filename( im__temp_dir(), file2, NULL );
|
||||||
|
|
||||||
if( (fd = g_mkstemp( name )) == -1 ) {
|
if( (fd = g_mkstemp( name )) == -1 ) {
|
||||||
im_error( "tempfile",
|
im_error( "tempfile",
|
||||||
|
@ -288,13 +288,13 @@ im_rank_image( IMAGE **in, IMAGE *out, int n, int index )
|
|||||||
}
|
}
|
||||||
if( im_poutcheck( out ) )
|
if( im_poutcheck( out ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
for( i = 0; i < n; i++ ) {
|
for( i = 0; i < n; i++ )
|
||||||
if( im_pincheck( in[i] ) ||
|
if( im_pincheck( in[i] ) ||
|
||||||
im_check_uncoded( "im_rank_image", in[i] ) ||
|
im_check_uncoded( "im_rank_image", in[i] ) ||
|
||||||
im_check_noncomplex( "im_rank_image", in[i] ) ||
|
im_check_noncomplex( "im_rank_image", in[i] ) ||
|
||||||
im_check_size_same( "im_rank_image", in[i], in[0] ) ||
|
im_check_size_same( "im_rank_image", in[i], in[0] ) ||
|
||||||
im_check_format_same( "im_rank_image", in[i], in[0] ) ||
|
im_check_format_same( "im_rank_image", in[i], in[0] ) ||
|
||||||
im_check_bands( "im_rank_image", in[i], 3 ) )
|
im_check_bands_same( "im_rank_image", in[i], in[0] ) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
if( !(rank = rank_new( in, out, n, index )) ||
|
if( !(rank = rank_new( in, out, n, index )) ||
|
||||||
|
Loading…
Reference in New Issue
Block a user