/* Given a filename, generate the names for the header and the image data. * * Eg. * "fred" -> "fred.hdr", "fred.img" * "fred.img" -> "fred.hdr", "fred.img" */ static void generate_filenames( const char *path, char *header, char *image ) { const char *olds[] = { ".img", ".hdr" }; vips__change_suffix( path, header, FILENAME_MAX, ".hdr", olds, 2 ); vips__change_suffix( path, image, FILENAME_MAX, ".img", olds, 2 ); }
/** * vips_guess_prefix: * @argv0: program name (typically argv[0]) * @env_name: save prefix in this environment variable * * vips_guess_prefix() tries to guess the install directory. You should pass * in the value of argv[0] (the name your program was run as) as a clue to * help it out, plus the name of the environment variable you let the user * override your package install area with (eg. "VIPSHOME"). * * On success, vips_guess_prefix() returns the prefix it discovered, and as a * side effect, sets the environment variable (if it's not set). * * Don't free the return string! * * See also: vips_guess_libdir(). * * Returns: (transfer none): the install prefix as a static string, do not free. */ const char * vips_guess_prefix( const char *argv0, const char *env_name ) { const char *prefix; char *basename; char name[VIPS_PATH_MAX]; /* Already set? */ if( (prefix = g_getenv( env_name )) ) { #ifdef DEBUG printf( "vips_guess_prefix: found \"%s\" in environment\n", prefix ); #endif /*DEBUG*/ return( prefix ); } /* Get the program name from argv0. */ basename = g_path_get_basename( argv0 ); /* Add the exe suffix, if it's missing. */ if( strlen( VIPS_EXEEXT ) > 0 ) { const char *olds[] = { VIPS_EXEEXT }; vips__change_suffix( basename, name, VIPS_PATH_MAX, VIPS_EXEEXT, olds, 1 ); } else vips_strncpy( name, basename, VIPS_PATH_MAX ); g_free( basename ); #ifdef DEBUG printf( "vips_guess_prefix: argv0 = %s\n", argv0 ); printf( "vips_guess_prefix: name = %s\n", name ); #endif /*DEBUG*/ prefix = guess_prefix( argv0, name ); g_setenv( env_name, prefix, TRUE ); return( prefix ); }