diff --git a/src/main.c b/src/main.c index e1e5df8408aed35616997a8ee570f9dc92387464..41a37b550e7d89186e9f5a46848c212a21fffdc5 100644 --- a/src/main.c +++ b/src/main.c @@ -2,7 +2,7 @@ || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information. -|| $Id: main.c,v 1.230 2008/06/28 19:23:06 mast Exp $ +|| $Id: main.c,v 1.231 2008/06/29 10:40:55 mast Exp $ */ #include "global.h" @@ -137,24 +137,22 @@ static void get_master_key(HKEY cat) static void set_default_master(void) { + char *mp = master_location + CONSTANT_STRLEN (MASTER_COOKIE); + #ifdef HAVE_GETENV - if(!master_location[CONSTANT_STRLEN(MASTER_COOKIE)] && - getenv("PIKE_MASTER")) { + if(!*mp && getenv("PIKE_MASTER")) { set_master(getenv("PIKE_MASTER")); } #endif #ifdef __NT__ - if(!master_location[CONSTANT_STRLEN(MASTER_COOKIE)]) - get_master_key(HKEY_CURRENT_USER); - if(!master_location[CONSTANT_STRLEN(MASTER_COOKIE)]) - get_master_key(HKEY_LOCAL_MACHINE); + if(!*mp) get_master_key(HKEY_CURRENT_USER); + if(!*mp) get_master_key(HKEY_LOCAL_MACHINE); #endif - if(!master_location[CONSTANT_STRLEN(MASTER_COOKIE)]) + if(!*mp) { - SNPRINTF (master_location + CONSTANT_STRLEN(MASTER_COOKIE), - sizeof (master_location) - CONSTANT_STRLEN (MASTER_COOKIE), + SNPRINTF (mp, sizeof (master_location) - CONSTANT_STRLEN (MASTER_COOKIE), DEFAULT_MASTER, PIKE_MAJOR_VERSION, PIKE_MINOR_VERSION, @@ -162,8 +160,7 @@ static void set_default_master(void) } #ifdef __NT__ - if (master_location[CONSTANT_STRLEN (MASTER_COOKIE)] != '/' && - master_location[CONSTANT_STRLEN (MASTER_COOKIE)] != '\\') { + if (!(*mp == '/' || *mp == '\\' || (isalpha (*mp) && mp[1] == ':'))) { char exepath[MAXPATHLEN]; if (!GetModuleFileName (NULL, exepath, _MAX_PATH)) fprintf (stderr, "Failed to get path to exe file: %d\n", @@ -172,16 +169,14 @@ static void set_default_master(void) char tmp[MAXPATHLEN * 2]; char *p = strrchr (exepath, '\\'); if (p) *p = 0; - SNPRINTF (tmp, sizeof (tmp), "%s/%s", exepath, - master_location + CONSTANT_STRLEN (MASTER_COOKIE)); - strncpy (master_location + CONSTANT_STRLEN (MASTER_COOKIE), tmp, + SNPRINTF (tmp, sizeof (tmp), "%s/%s", exepath, mp); + strncpy (mp, tmp, sizeof (master_location) - CONSTANT_STRLEN (MASTER_COOKIE)); } } #endif - TRACE((stderr, "Default master at \"%s\"...\n", - master_location + CONSTANT_STRLEN(MASTER_COOKIE))); + TRACE((stderr, "Default master at \"%s\"...\n", mp)); } #ifdef LIBPIKE