Author: moon Date: 2006-06-30 08:07:11 -0700 (Fri, 30 Jun 2006) New Revision: 3077
Modified: GNUnet/src/util/os/installpath.c Log: fixed some little bugs, cleared errors Modified: GNUnet/src/util/os/installpath.c =================================================================== --- GNUnet/src/util/os/installpath.c 2006-06-29 19:03:21 UTC (rev 3076) +++ GNUnet/src/util/os/installpath.c 2006-06-30 15:07:11 UTC (rev 3077) @@ -190,12 +190,22 @@ *(ptr-n) = '\0'; n++; } ptr = strrchr(tmp, DIR_SEPARATOR); + + if( !( (*(ptr+1) == 'b)' + && (*(ptr+2) == 'i') + && (*(ptr+3) == 'n')) ) ) + GE_LOG(ectx, + GE_WARNING | GE_ADMIN | GE_IMMEDIATE, + _("GNUnet executables are not in a directory named 'bin'. This may signal a broken installation.\n")); + + *(ptr+1) = '\0'; + n = 1; while( *(ptr-n) == DIR_SEPARATOR ) { /* same, but keep the final '/' */ *(ptr-n+1) = '\0'; n++; } if(*tmp == '\0') { /* no prefix at all */ - GE_LOG(NULL, + GE_LOG(ectx, GE_ERROR | GE_USER | GE_ADMIN | GE_DEVELOPER | GE_IMMEDIATE, _("Cannot determine the installation prefix. Unknown error.\n")); return NULL; } @@ -209,30 +219,32 @@ switch(dirkind) { case PREFIX: - dirname = NULL; + dirname = STRDUP("\0"); + break; case BINDIR: - dirname = STRDUP("bin/"); + dirname = STRDUP("bin/\0"); + break; case LIBDIR: - dirname = STRDUP("lib/"); + dirname = STRDUP("lib/\0"); + break; case DATADIR: - dirname = STRDUP("share/"); + dirname = STRDUP("share/\0"); + break; case PACKAGEDATADIR: tmp = MALLOC(9+strlen(prefix)+strlen(appname)); - sprintf(tmp, "share/%s/%s/", prefix, appname); + sprintf(tmp, "share/%s/%s/\0", prefix, appname); dirname = STRDUP(tmp); FREE(tmp); + break; case LOCALEDIR: - dirname = STRDUP("share/locale/"); + dirname = STRDUP("share/locale/\0"); + break; default: return NULL; } - if( !(tmp = MALLOC(strlen(prefix)+strlen(dirname)+1)) ) { - GE_LOG(ectx, - GE_ERROR | GE_USER | GE_ADMIN | GE_IMMEDIATE, - _("Cannot determine the application directories. Memory allocation error.\n")); - return NULL; } + /* if an error occurs here, we won't be able to continue */ + GE_ASSERT(ectx, (tmp = MALLOC(strlen(prefix)+strlen(dirname))) ); - sprintf(tmp, "%s%s", prefix, dirname); final_dir = STRDUP(tmp); FREE(tmp); _______________________________________________ GNUnet-SVN mailing list GNUnet-SVN@gnu.org http://lists.gnu.org/mailman/listinfo/gnunet-svn