Enlightenment CVS committal

Author  : onefang
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_apps.c e_apps.h e_eap_editor.c e_int_config_apps.c 


Log Message:
Put the exe and it's parameters back together when needed.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_apps.c,v
retrieving revision 1.177
retrieving revision 1.178
diff -u -3 -r1.177 -r1.178
--- e_apps.c    6 Sep 2006 12:09:52 -0000       1.177
+++ e_apps.c    7 Sep 2006 08:53:09 -0000       1.178
@@ -473,6 +473,7 @@
    Ecore_Exe *exe;
    E_App_Instance *inst;
    Evas_List *l;
+   char *command;
    
    E_OBJECT_CHECK_RETURN(a, 0);
    E_OBJECT_TYPE_CHECK_RETURN(a, E_APP_TYPE, 0);
@@ -486,16 +487,32 @@
     * the eapp file */
    inst = E_NEW(E_App_Instance, 1);
    if (!inst) return 0;
+
+   if (a->desktop)
+      command = ecore_desktop_get_command(a->desktop, NULL, 1);
+   else
+      command = strdup(a->exe);
+   if (!command)
+      {
+          free(inst);
+         e_util_dialog_show(_("Run Error"),
+                            _("Enlightenment was unable to process a command 
line:<br>"
+                            "<br>"
+                            "%s %s<br>"),
+                            a->exe, (a->exe_params != NULL) ? a->exe_params : 
"" );
+          return 0;
+      }
    /* We want the stdout and stderr as lines for the error dialog if it exits 
abnormally. */
-   exe = ecore_exe_pipe_run(a->exe, ECORE_EXE_PIPE_AUTO | ECORE_EXE_PIPE_READ 
| ECORE_EXE_PIPE_ERROR | ECORE_EXE_PIPE_READ_LINE_BUFFERED | 
ECORE_EXE_PIPE_ERROR_LINE_BUFFERED, inst);
+   exe = ecore_exe_pipe_run(command, ECORE_EXE_PIPE_AUTO | ECORE_EXE_PIPE_READ 
| ECORE_EXE_PIPE_ERROR | ECORE_EXE_PIPE_READ_LINE_BUFFERED | 
ECORE_EXE_PIPE_ERROR_LINE_BUFFERED, inst);
    if (!exe)
      {
+       free(command);
        free(inst);
        e_util_dialog_show(_("Run Error"),
                           _("Enlightenment was unable to fork a child 
process:<br>"
                             "<br>"
-                            "%s<br>"),
-                          a->exe);
+                            "%s %s<br>"),
+                          a->exe, (a->exe_params != NULL) ? a->exe_params : "" 
);
        return 0;
      }
    /* 20 lines at start and end, 20x100 limit on bytes at each end. */
@@ -517,6 +534,7 @@
        _e_app_change(a2, E_APP_EXEC);
      }
    _e_app_change(a, E_APP_EXEC);
+   free(command);
    return 1;
 }
 
@@ -1213,11 +1231,13 @@
       desktop = ecore_desktop_get(path, lang);
       if (desktop)
         {
+          a->desktop = desktop;
           if (desktop->name)  a->name = evas_stringshare_add(desktop->name);
           if (desktop->generic)  a->generic = 
evas_stringshare_add(desktop->generic);
           if (desktop->comment)  a->comment = 
evas_stringshare_add(desktop->comment);
 
           if (desktop->exec)  a->exe = evas_stringshare_add(desktop->exec);
+          if (desktop->exec_params)  a->exe = 
evas_stringshare_add(desktop->exec_params);
           if (desktop->icon_class)  a->icon_class = 
evas_stringshare_add(desktop->icon_class);
           if (desktop->icon_path)  a->icon_path = 
evas_stringshare_add(desktop->icon_path);
           if (desktop->window_class)  a->win_class = 
evas_stringshare_add(desktop->window_class);
@@ -1346,6 +1366,7 @@
               desktop->comment = (char *) a->comment;
 
               desktop->exec = (char *) a->exe;
+              desktop->exec_params = (char *) a->exe_params;
               desktop->icon_class = (char *) a->icon_class;
                desktop->icon_path = (char *) a->icon_path;
               desktop->window_class = (char *) a->win_class;
@@ -1492,6 +1513,7 @@
    if (a->generic) evas_stringshare_del(a->generic);
    if (a->comment) evas_stringshare_del(a->comment);
    if (a->exe) evas_stringshare_del(a->exe);
+   if (a->exe_params) evas_stringshare_del(a->exe_params);
    if (a->icon_class) evas_stringshare_del(a->icon_class);
    if (a->icon_path) evas_stringshare_del(a->icon_path);
    if (a->win_name) evas_stringshare_del(a->win_name);
@@ -1502,6 +1524,7 @@
    a->generic = NULL;
    a->comment = NULL;
    a->exe = NULL;
+   a->exe_params = NULL;
    a->icon_class = NULL;
    a->icon_path = NULL;
    a->win_name = NULL;
@@ -2255,6 +2278,7 @@
    dst->generic = src->generic;
    dst->comment = src->comment;
    dst->exe = src->exe;
+   dst->exe_params = src->exe_params;
    dst->path = src->path;
    dst->win_name = src->win_name;
    dst->win_class = src->win_class;
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_apps.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- e_apps.h    5 Sep 2006 14:44:27 -0000       1.40
+++ e_apps.h    7 Sep 2006 08:53:09 -0000       1.41
@@ -31,12 +31,14 @@
    
    E_App              *parent; /* the parent e_app node */
    E_App              *orig; /* if this is a copy, point to the original */
+   Ecore_Desktop      *desktop; /* if this came from a .desktop file. */
    
    const char         *name; /* app name */
    const char         *generic; /* generic app name */
    const char         *comment; /* a longer description */
    const char         *exe; /* command to execute, NULL if directory */
-   
+   const char         *exe_params; /* command params to execute, NULL if 
directory */
+
    const char         *path; /* path to .eet containing icons etc. etc. */
 //   const char         *icon_path; /* path to icon file, in case it is 
different from path. */
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_eap_editor.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -3 -r1.52 -r1.53
--- e_eap_editor.c      6 Sep 2006 08:22:57 -0000       1.52
+++ e_eap_editor.c      7 Sep 2006 08:53:09 -0000       1.53
@@ -114,9 +114,13 @@
 static void
 _e_eap_edit_fill_data(E_Config_Dialog_Data *cfdata)
 {
+   char *exe;
    /*- BASIC -*/
    IFDUP(cfdata->editor->eap->name, cfdata->name);
    IFDUP(cfdata->editor->eap->exe, cfdata->exe);
+   exe = ecore_desktop_merge_command((char *)cfdata->editor->eap->exe, (char 
*)cfdata->editor->eap->exe_params);
+   if (exe)
+      cfdata->exe = exe;
    /*- ADVANCED -*/
    IFDUP(cfdata->editor->eap->generic, cfdata->generic);
    IFDUP(cfdata->editor->eap->comment, cfdata->comment);
@@ -194,10 +198,27 @@
 
    if (eap->name) evas_stringshare_del(eap->name);
    if (eap->exe) evas_stringshare_del(eap->exe);
+   if (eap->exe_params) evas_stringshare_del(eap->exe_params);
    if (eap->image) evas_stringshare_del(eap->image);
+   eap->name = NULL;
+   eap->exe = NULL;
+   eap->exe_params = NULL;
+   eap->image = NULL;
 
    if (data->name) eap->name = evas_stringshare_add(data->name);
-   if (data->exe) eap->exe = evas_stringshare_add(data->exe);
+   if (data->exe)
+      {
+         char *exe;
+
+         exe = strchr(data->exe, ' ');
+        if (exe)
+           {
+              *exe = '\0';
+               eap->exe_params = evas_stringshare_add(++exe);
+              *exe = ' ';
+           }
+         eap->exe = evas_stringshare_add(data->exe);
+      }
    if (data->image)
       {
          eap->image = evas_stringshare_add(data->image);
@@ -228,25 +249,7 @@
    editor = data->editor;
    eap = editor->eap;
 
-   if (eap->name) evas_stringshare_del(eap->name);
-   if (eap->exe) evas_stringshare_del(eap->exe);
-   if (eap->image) evas_stringshare_del(eap->image);
-
-   if (eap->generic) evas_stringshare_del(eap->generic);
-   if (eap->comment) evas_stringshare_del(eap->comment);
-   if (eap->win_name) evas_stringshare_del(eap->win_name);
-   if (eap->win_class) evas_stringshare_del(eap->win_class);
-   if (eap->win_title) evas_stringshare_del(eap->win_title);
-   if (eap->win_role) evas_stringshare_del(eap->win_role);
-   if (eap->icon_class) evas_stringshare_del(eap->icon_class);
-
-   if (data->startup_notify) eap->startup_notify = 1;
-   else eap->startup_notify = 0;
-   if (data->wait_exit) eap->wait_exit = 1;
-   else eap->wait_exit = 0;
-
-   if (data->name) eap->name = evas_stringshare_add(data->name);
-   if (data->exe) eap->exe = evas_stringshare_add(data->exe);
+   e_app_fields_empty(eap);
 
    if (data->generic) eap->generic = evas_stringshare_add(data->generic);
    if (data->comment) eap->comment = evas_stringshare_add(data->comment);
@@ -257,20 +260,8 @@
    if (data->iclass) eap->icon_class = evas_stringshare_add(data->iclass);
    if (data->eap.icon_path) eap->icon_path = 
evas_stringshare_add(data->eap.icon_path);
 
-   if (data->image)
-      {
-         eap->image = evas_stringshare_add(data->image);
-         eap->icon_class = evas_stringshare_add("");   /* Call this temporary, 
until I reconsider the icon search order. */
-      }
-
-   /* FIXME: hardcoded until the eap editor provides fields to change it */
-   if (data->width) eap->width = data->width;
-   else eap->width = 128;
-   if (data->height) eap->height = data->height;
-   else eap->height = 128;
+   _e_eap_edit_basic_apply_data(cfd, data);
 
-   if ((eap->name) && (eap->exe))
-     e_app_fields_save(eap);
    return 1;
 }
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_apps.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- e_int_config_apps.c 6 Sep 2006 08:44:30 -0000       1.20
+++ e_int_config_apps.c 7 Sep 2006 08:53:09 -0000       1.21
@@ -499,7 +499,7 @@
 
    if (!once)
       {
-         mt = e_widget_button_add(evas, _("Regenerate \"All Applications\" 
Menu"), "enlightenment/e",
+         mt = e_widget_button_add(evas, _("Regenerate \"Applications\" Menu"), 
"enlightenment/e",
                           _cb_button_regen, cfdata, NULL);
          cfdata->gui.o_regen_button = mt;
          e_widget_framelist_object_append(of, mt);



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to