Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: E.h actions.c ewins.c icccm.c memory.c snaps.c Log Message: Simplify WM_COMMAND handling. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v retrieving revision 1.388 retrieving revision 1.389 diff -u -3 -r1.388 -r1.389 --- E.h 12 Mar 2005 11:09:29 -0000 1.388 +++ E.h 12 Mar 2005 15:22:08 -0000 1.389 @@ -745,8 +745,6 @@ char *wm_res_class; char *wm_role; char *wm_command; - int wm_command_argc; - char **wm_command_argv; char *wm_machine; } icccm; struct @@ -1163,6 +1161,7 @@ int execApplication(const char *params); void Espawn(int argc, char **argv); +void EspawnCmd(const char *cmd); /* alert.c */ void AlertInit(void); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/actions.c,v retrieving revision 1.186 retrieving revision 1.187 diff -u -3 -r1.186 -r1.187 --- actions.c 12 Mar 2005 11:09:31 -0000 1.186 +++ actions.c 12 Mar 2005 15:22:08 -0000 1.187 @@ -177,6 +177,17 @@ } void +EspawnCmd(const char *cmd) +{ + int argc; + char **argv; + + argv = EstrlistDecodeEscaped(cmd, &argc); + Espawn(argc, argv); + EstrlistFree(argv, argc); +} + +void ActionsHandleMotion(void) { switch (Mode.mode) =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- ewins.c 12 Mar 2005 11:09:32 -0000 1.30 +++ ewins.c 12 Mar 2005 15:22:08 -0000 1.31 @@ -211,8 +211,6 @@ Efree(ewin->icccm.wm_role); if (ewin->icccm.wm_command) Efree(ewin->icccm.wm_command); - if (ewin->icccm.wm_command_argv) - EstrlistFree(ewin->icccm.wm_command_argv, ewin->icccm.wm_command_argc); if (ewin->icccm.wm_machine) Efree(ewin->icccm.wm_machine); #if ENABLE_EWMH =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/icccm.c,v retrieving revision 1.89 retrieving revision 1.90 diff -u -3 -r1.89 -r1.90 --- icccm.c 12 Mar 2005 11:09:32 -0000 1.89 +++ icccm.c 12 Mar 2005 15:22:08 -0000 1.90 @@ -547,25 +547,22 @@ if (atom_change == 0 || atom_change == ECORE_X_ATOM_WM_COMMAND) { + int argc; + char **argv, s[4096]; + _EFREE(ewin->icccm.wm_command); - if (ewin->icccm.wm_command_argv) - EstrlistFree(ewin->icccm.wm_command_argv, - ewin->icccm.wm_command_argc); - - ewin->icccm.wm_command_argv = - ecore_x_window_prop_string_list_get(ewin->client.win, - ECORE_X_ATOM_WM_COMMAND, - &(ewin->icccm.wm_command_argc)); - if (!ewin->icccm.wm_command && TryGroup(ewin)) - ewin->icccm.wm_command_argv = - ecore_x_window_prop_string_list_get(ewin->client.group, - ECORE_X_ATOM_WM_COMMAND, - &(ewin->icccm. - wm_command_argc)); + + argv = ecore_x_window_prop_string_list_get(ewin->client.win, + ECORE_X_ATOM_WM_COMMAND, + &argc); + if (!argv && TryGroup(ewin)) + argv = ecore_x_window_prop_string_list_get(ewin->client.group, + ECORE_X_ATOM_WM_COMMAND, + &argc); ewin->icccm.wm_command = - EstrlistJoin(ewin->icccm.wm_command_argv, - ewin->icccm.wm_command_argc); + Estrdup(EstrlistEncodeEscaped(s, sizeof(s), argv, argc)); + EstrlistFree(argv, argc); } if (atom_change == 0 || atom_change == ECORE_X_ATOM_WM_CLIENT_MACHINE) =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/memory.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -3 -r1.41 -r1.42 --- memory.c 12 Mar 2005 11:09:33 -0000 1.41 +++ memory.c 12 Mar 2005 15:22:08 -0000 1.42 @@ -488,6 +488,7 @@ Efree(lst); } +#if 0 /* FIXME - Remove? */ char * EstrlistJoin(char **lst, int num) { @@ -512,6 +513,7 @@ return s; } +#endif char * EstrlistEncodeEscaped(char *buf, int len, char **lst, int num) =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/snaps.c,v retrieving revision 1.86 retrieving revision 1.87 diff -u -3 -r1.86 -r1.87 --- snaps.c 12 Mar 2005 11:09:33 -0000 1.86 +++ snaps.c 12 Mar 2005 15:22:08 -0000 1.87 @@ -42,8 +42,6 @@ char sticky; char shaded; char *cmd; - int cmd_argc; - char **cmd_argv; int *groups; int num_groups; char skiptask; @@ -91,8 +89,6 @@ Efree(sn->border_name); if (sn->cmd) Efree(sn->cmd); - if (sn->cmd_argv) - EstrlistFree(sn->cmd_argv, sn->cmd_argc); if (sn->groups) Efree(sn->groups); Efree(sn); @@ -285,12 +281,7 @@ if (sn->cmd) Efree(sn->cmd); - if (sn->cmd_argv) - EstrlistFree(sn->cmd_argv, sn->cmd_argc); sn->cmd = Estrdup(ewin->icccm.wm_command); - sn->cmd_argv = - EstrlistDup(ewin->icccm.wm_command_argv, ewin->icccm.wm_command_argc); - sn->cmd_argc = ewin->icccm.wm_command_argc; } static void @@ -1090,7 +1081,7 @@ { Snapshot **lst, *sn; int i, j, num; - char buf[4096], s[4096], ss[4096]; + char buf[4096], s[4096]; FILE *f; if (!Mode.wm.save_ok) @@ -1119,9 +1110,7 @@ if (sn->use_flags & SNAP_USE_BORDER) fprintf(f, "BORDER: %s\n", sn->border_name); if (sn->use_flags & SNAP_USE_COMMAND) - fprintf(f, "CMD: %s\n", - EstrlistEncodeEscaped(ss, sizeof(ss), - sn->cmd_argv, sn->cmd_argc)); + fprintf(f, "CMD: %s\n", sn->cmd); if (sn->use_flags & SNAP_USE_DESK) fprintf(f, "DESKTOP: %i\n", sn->desktop); if (sn->use_flags & SNAP_USE_POS) @@ -1187,7 +1176,7 @@ { sn = lst[i]; if ((sn->use_flags & SNAP_USE_COMMAND) && (sn->cmd) && !sn->used) - Espawn(sn->cmd_argc, sn->cmd_argv); + EspawnCmd(sn->cmd); } Efree(lst); } @@ -1238,9 +1227,7 @@ else if (!strcmp(s, "CMD:")) { sn->use_flags |= SNAP_USE_COMMAND; - sn->cmd_argv = - EstrlistDecodeEscaped(atword(buf, 2), &(sn->cmd_argc)); - sn->cmd = EstrlistJoin(sn->cmd_argv, sn->cmd_argc); + sn->cmd = Estrdup(atword(buf, 2)); } else if (!strcmp(s, "DESKTOP:")) { ------------------------------------------------------- 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://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs