apply debian/patches/01_no_home.diff

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10903 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2008-11-03 13:59:23 +00:00
commit 5236ddf57c
2 changed files with 26 additions and 3 deletions

View file

@ -836,6 +836,13 @@ static void ccache(int argc, char *argv[])
{
/* find the real compiler */
find_compiler(argc, argv);
/* use the real compiler if HOME is not set */
if (!cache_dir) {
cc_log("Unable to determine home directory\n");
cc_log("ccache is disabled\n");
failed();
}
/* we might be disabled */
if (getenv("CCACHE_DISABLE")) {
@ -895,6 +902,13 @@ static void usage(void)
printf("-V print version number\n");
}
static void check_cache_dir(void)
{
if (!cache_dir) {
fatal("Unable to determine home directory");
}
}
/* the main program when not doing a compile */
static int ccache_main(int argc, char *argv[])
{
@ -914,31 +928,37 @@ static int ccache_main(int argc, char *argv[])
exit(0);
case 's':
check_cache_dir();
stats_summary();
break;
case 'c':
check_cache_dir();
cleanup_all(cache_dir);
printf("Cleaned cache\n");
break;
case 'C':
check_cache_dir();
wipe_all(cache_dir);
printf("Cleared cache\n");
break;
case 'z':
check_cache_dir();
stats_zero();
printf("Statistics cleared\n");
break;
case 'F':
check_cache_dir();
v = atoi(optarg);
stats_set_limits(v, -1);
printf("Set cache file limit to %u\n", (unsigned)v);
break;
case 'M':
check_cache_dir();
v = value_units(optarg);
stats_set_limits(-1, v);
printf("Set cache size limit to %uk\n", (unsigned)v);
@ -983,7 +1003,10 @@ int main(int argc, char *argv[])
cache_dir = getenv("CCACHE_DIR");
if (!cache_dir) {
x_asprintf(&cache_dir, "%s/.ccache", get_home_directory());
const char *home_directory = get_home_directory();
if (home_directory) {
x_asprintf(&cache_dir, "%s/.ccache", home_directory);
}
}
temp_dir = getenv("CCACHE_TEMPDIR");
@ -1023,7 +1046,7 @@ int main(int argc, char *argv[])
}
/* make sure the cache dir exists */
if (create_dir(cache_dir) != 0) {
if (cache_dir && (create_dir(cache_dir) != 0)) {
fprintf(stderr,"ccache: failed to create %s (%s)\n",
cache_dir, strerror(errno));
exit(1);

View file

@ -448,7 +448,7 @@ const char *get_home_directory(void)
}
}
#endif
fatal("Unable to determine home directory");
cc_log("Unable to determine home directory");
return NULL;
}