Enlightenment CVS committal
Author : andreas99
Project : e16
Module : tools
Dir : e16/tools/e16menuedit2/src
Modified Files:
e16menuedit2.c file.c file.h
Log Message:
e16menuedit2 try to autodetect the runnunig E version and if
> 0.16.8 loads the new menu structure
===================================================================
RCS file: /cvsroot/enlightenment/e16/tools/e16menuedit2/src/e16menuedit2.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e16menuedit2.c 5 Dec 2004 11:12:51 -0000 1.15
+++ e16menuedit2.c 5 Dec 2004 13:19:48 -0000 1.16
@@ -47,7 +47,7 @@
GtkWidget *main_statusbar;
char app_dir[PATH_MAX];
char package[] = "librsvg-2.0";
- char good_version[] = "2.7.1";
+ char librsvg_version[] = "2.7.1";
char *version;
int i;
char *pixmap_file;
@@ -97,7 +97,7 @@
/* get librsvg version and check if good enough */
version = pkg_config_version (package);
- librsvg_cmp = version_cmp (version, good_version);
+ librsvg_cmp = version_cmp (version, librsvg_version);
g_free (version);
print_statusbar (_("Menu successfully loaded!"));
@@ -192,12 +192,15 @@
poptContext context;
int option;
char *emenu = NULL;
+ char *e_version_current;
+ int e_version_cmp;
+ char e_version[] = "0.16.8";
struct poptOption options[] =
{
{"emenu", 'e', POPT_ARG_STRING,
&emenu, ARG_EMENU,
- "Enlightenment menu dir...",
+ "Enlightenment menu dir (enlightenment or e16).",
NULL},
{"version", 'v', POPT_ARG_NONE, NULL, ARG_VERSION, "show version", NULL},
POPT_AUTOHELP {NULL, '\0', 0, NULL, 0}
@@ -222,8 +225,20 @@
if (emenu == NULL)
{
- emenu_path = malloc (strlen (".enlightenment") + 1);
- strcpy (emenu_path, ".enlightenment");
+ e_version_current = e16_version ();
+ e_version_cmp = version_cmp (e_version_current, e_version);
+ printf ("ver: %d", e_version_cmp);
+
+ if (e_version_cmp >= 0)
+ {
+ emenu_path = malloc (strlen (E16_MENU) + 1);
+ strcpy (emenu_path, E16_MENU);
+ }
+ else
+ {
+ emenu_path = malloc (strlen (ENLIGHTENMENT_MENU) + 1);
+ strcpy (emenu_path, ENLIGHTENMENT_MENU);
+ }
}
else
{
@@ -240,8 +255,8 @@
else
{
g_print ("Sorry, the parameter 'emenu' has only state 'enlightenment'\n"
- "for old directory before E-0.16.7.1 and 'e16' for new\n"
- "direcory in '.e16/menus'\n");
+ "for old menu structure and 'e16' for new direcory structure\n"
+ "in '.e16/menus' for E16 > 0.16.8.\n");
exit (0);
}
}
===================================================================
RCS file: /cvsroot/enlightenment/e16/tools/e16menuedit2/src/file.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- file.c 5 Dec 2004 11:12:51 -0000 1.10
+++ file.c 5 Dec 2004 13:19:48 -0000 1.11
@@ -300,6 +300,43 @@
return strdup (buf);
}
+/* returns a version number of a pkg-config package
+ * the return char* could be freed after use
+ */
+char *e16_version ()
+{
+ gboolean spawn;
+ const int buf_len = 1024;
+ gchar buf[buf_len];
+ gchar *argv_child[4];
+ gint stdout_child;
+ gint stderr_child;
+ int ret_val;
+ gchar buf2[buf_len];
+
+ argv_child[0] = g_strdup ("eesh");
+ argv_child[1] = g_strdup ("-ewait");
+ argv_child[2] = g_strdup ("ver");;
+ argv_child[3] = NULL;
+
+ spawn = g_spawn_async_with_pipes (NULL, argv_child, NULL,
+ G_SPAWN_SEARCH_PATH, NULL,
+ NULL, NULL, NULL,
+ &stdout_child, &stderr_child, NULL);
+
+ g_free (argv_child[0]);
+ g_free (argv_child[1]);
+
+ ret_val = read (stdout_child, buf, buf_len);
+
+ sscanf (buf, "Enlightenment-Version: enlightenment-%s\n", buf2);
+
+ if (ret_val == 0)
+ return 0;
+ else
+ return strdup (buf2);
+}
+
char *get_fallback_locale (char *locale)
{
char *locale_dup;
===================================================================
RCS file: /cvsroot/enlightenment/e16/tools/e16menuedit2/src/file.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- file.h 10 Nov 2004 13:39:47 -0000 1.7
+++ file.h 5 Dec 2004 13:19:48 -0000 1.8
@@ -51,6 +51,7 @@
char *strsplit (char *s, char **right, int count);
int version_cmp (char *ver1, char *ver2);
char *pkg_config_version (char *package);
+char *e16_version ();
char *get_fallback_locale (char *locale);
int run_help (char *help_app, char* help_dir, char *help_file);
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs