Some more platform unification
This commit is contained in:
		
							parent
							
								
									5c9283fc68
								
							
						
					
					
						commit
						d0b5d53f92
					
				
					 3 changed files with 24 additions and 66 deletions
				
			
		| 
						 | 
				
			
			@ -310,40 +310,32 @@ get_reg_str (const char *sub, const char *name, char *out, DWORD len)
 | 
			
		|||
 | 
			
		||||
	return FALSE;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
char *
 | 
			
		||||
get_xdir (void)
 | 
			
		||||
{
 | 
			
		||||
	if (!xdir)
 | 
			
		||||
	{
 | 
			
		||||
			char out[256];
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
		char out[256];
 | 
			
		||||
 | 
			
		||||
			if (portable_mode () || !get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", "AppData", out, sizeof (out)))
 | 
			
		||||
			{
 | 
			
		||||
				xdir = g_strdup (".\\config");
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				xdir = g_strdup_printf ("%s\\" "HexChat", out);
 | 
			
		||||
			}
 | 
			
		||||
		if (portable_mode () || !get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", "AppData", out, sizeof (out)))
 | 
			
		||||
		{
 | 
			
		||||
			xdir = g_strdup (".\\config");
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			xdir = g_strdup_printf ("%s\\" "HexChat", out);
 | 
			
		||||
		}
 | 
			
		||||
#else
 | 
			
		||||
		xdir = g_strdup_printf ("%s/.config/" HEXCHAT_DIR, g_get_home_dir ());
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return xdir;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
char *
 | 
			
		||||
get_xdir (void)
 | 
			
		||||
{
 | 
			
		||||
	if (!xdir)
 | 
			
		||||
		xdir = g_strdup_printf ("%s/.config/" HEXCHAT_DIR, g_get_home_dir ());
 | 
			
		||||
 | 
			
		||||
	return xdir;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif	/* !WIN32 */
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
check_prefs_dir (void)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -132,7 +132,7 @@ static const GOptionEntry gopt_entries[] =
 | 
			
		|||
 {"no-auto",	'a', 0, G_OPTION_ARG_NONE,	&arg_dont_autoconnect, N_("Don't auto connect to servers"), NULL},
 | 
			
		||||
 {"cfgdir",	'd', 0, G_OPTION_ARG_STRING,	&arg_cfgdir, N_("Use a different config directory"), "PATH"},
 | 
			
		||||
 {"no-plugins",	'n', 0, G_OPTION_ARG_NONE,	&arg_skip_plugins, N_("Don't auto load any plugins"), NULL},
 | 
			
		||||
 {"plugindir",	'p', 0, G_OPTION_ARG_NONE,	&arg_show_autoload, N_("Show plugin auto-load directory"), NULL},
 | 
			
		||||
 {"plugindir",	'p', 0, G_OPTION_ARG_NONE,	&arg_show_autoload, N_("Show plugin/script auto-load directory"), NULL},
 | 
			
		||||
 {"configdir",	'u', 0, G_OPTION_ARG_NONE,	&arg_show_config, N_("Show user config directory"), NULL},
 | 
			
		||||
 {"url",	 0,  0, G_OPTION_ARG_STRING,	&arg_url, N_("Open an irc://server:port/channel URL"), "URL"},
 | 
			
		||||
#ifndef WIN32	/* uses DBUS */
 | 
			
		||||
| 
						 | 
				
			
			@ -223,53 +223,31 @@ fe_args (int argc, char *argv[])
 | 
			
		|||
 | 
			
		||||
	if (arg_show_version)
 | 
			
		||||
	{
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
		buffer = g_strdup_printf (DISPLAY_NAME " " PACKAGE_VERSION "\n");
 | 
			
		||||
		gtk_init (&argc, &argv);
 | 
			
		||||
		create_msg_dialog ("Version Information", buffer);
 | 
			
		||||
		g_free (buffer);
 | 
			
		||||
#else
 | 
			
		||||
		printf (PACKAGE_TARNAME" "PACKAGE_VERSION"\n");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (arg_show_autoload)
 | 
			
		||||
	{
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
		/* see the chdir() below */
 | 
			
		||||
		char *sl, *exe = strdup (argv[0]);
 | 
			
		||||
		sl = strrchr (exe, '\\');
 | 
			
		||||
		if (sl)
 | 
			
		||||
		{
 | 
			
		||||
			*sl = 0;
 | 
			
		||||
			buffer = g_strdup_printf ("%s\\plugins\n", exe);
 | 
			
		||||
			gtk_init (&argc, &argv);
 | 
			
		||||
			create_msg_dialog ("Plugin Auto-load Directory", buffer);
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			buffer = g_strdup(".\\plugins\n");
 | 
			
		||||
			gtk_init (&argc, &argv);
 | 
			
		||||
			create_msg_dialog ("Plugin Auto-load Directory", buffer);
 | 
			
		||||
		}
 | 
			
		||||
		buffer = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "addons\n", get_xdir ());
 | 
			
		||||
		gtk_init (&argc, &argv);
 | 
			
		||||
		create_msg_dialog ("Plugin/Script Auto-load Directory", buffer);
 | 
			
		||||
		g_free (buffer);
 | 
			
		||||
#else
 | 
			
		||||
		printf ("%s\n", HEXCHATLIBDIR"/plugins");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (arg_show_config)
 | 
			
		||||
	{
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
		buffer = g_strdup_printf ("%s\n", get_xdir ());
 | 
			
		||||
		buffer = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "\n", get_xdir ());
 | 
			
		||||
		gtk_init (&argc, &argv);
 | 
			
		||||
		create_msg_dialog ("User Config Directory", buffer);
 | 
			
		||||
		g_free (buffer);
 | 
			
		||||
#else
 | 
			
		||||
		printf ("%s\n", get_xdir ());
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -282,7 +260,7 @@ fe_args (int argc, char *argv[])
 | 
			
		|||
		char *tmp = strdup (argv[0]);
 | 
			
		||||
		char *sl;
 | 
			
		||||
 | 
			
		||||
		sl = strrchr (tmp, '\\');
 | 
			
		||||
		sl = strrchr (tmp, G_DIR_SEPARATOR);
 | 
			
		||||
		if (sl)
 | 
			
		||||
		{
 | 
			
		||||
			*sl = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -292,18 +270,6 @@ fe_args (int argc, char *argv[])
 | 
			
		|||
	}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if (arg_cfgdir)
 | 
			
		||||
	{
 | 
			
		||||
		if (xdir)
 | 
			
		||||
			g_free (xdir);
 | 
			
		||||
		xdir = strdup (arg_cfgdir);
 | 
			
		||||
		if (xdir[strlen (xdir) - 1] == '/')
 | 
			
		||||
		{
 | 
			
		||||
			xdir[strlen (xdir) - 1] = 0;
 | 
			
		||||
		}
 | 
			
		||||
		g_free (arg_cfgdir);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	gtk_init (&argc, &argv);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_XLIB
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -457,7 +457,7 @@ static const GOptionEntry gopt_entries[] =
 | 
			
		|||
 {"no-auto",	'a', 0, G_OPTION_ARG_NONE,	&arg_dont_autoconnect, N_("Don't auto connect to servers"), NULL},
 | 
			
		||||
 {"cfgdir",	'd', 0, G_OPTION_ARG_STRING,	&arg_cfgdir, N_("Use a different config directory"), "PATH"},
 | 
			
		||||
 {"no-plugins",	'n', 0, G_OPTION_ARG_NONE,	&arg_skip_plugins, N_("Don't auto load any plugins"), NULL},
 | 
			
		||||
 {"plugindir",	'p', 0, G_OPTION_ARG_NONE,	&arg_show_autoload, N_("Show plugin auto-load directory"), NULL},
 | 
			
		||||
 {"plugindir",	'p', 0, G_OPTION_ARG_NONE,	&arg_show_autoload, N_("Show plugin/script auto-load directory"), NULL},
 | 
			
		||||
 {"configdir",	'u', 0, G_OPTION_ARG_NONE,	&arg_show_config, N_("Show user config directory"), NULL},
 | 
			
		||||
 {"url",	 0,  0, G_OPTION_ARG_STRING,	&arg_url, N_("Open an irc://server:port/channel URL"), "URL"},
 | 
			
		||||
 {"version",	'v', 0, G_OPTION_ARG_NONE,	&arg_show_version, N_("Show version information"), NULL},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue