Enlightenment CVS committal Author : mej Project : eterm Module : libast
Dir : eterm/libast/src Modified Files: options.c Log Message: Fri Feb 24 16:45:38 2006 Michael Jennings (mej) Make removal of options from argv[] optional and off by default. Fixes Eterm problem with WM_COMMAND entries being empty. ---------------------------------------------------------------------- =================================================================== RCS file: /cvsroot/enlightenment/eterm/libast/src/options.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- options.c 26 Oct 2004 18:01:53 -0000 1.18 +++ options.c 24 Feb 2006 21:46:12 -0000 1.19 @@ -29,11 +29,11 @@ * option parser. * * @author Michael Jennings <[EMAIL PROTECTED]> - * $Revision: 1.18 $ - * $Date: 2004/10/26 18:01:53 $ + * $Revision: 1.19 $ + * $Date: 2006/02/24 21:46:12 $ */ -static const char __attribute__((unused)) cvs_ident[] = "$Id: options.c,v 1.18 2004/10/26 18:01:53 mej Exp $"; +static const char __attribute__((unused)) cvs_ident[] = "$Id: options.c,v 1.19 2006/02/24 21:46:12 mej Exp $"; #ifdef HAVE_CONFIG_H # include <config.h> @@ -498,7 +498,9 @@ for (k = 0; k < len; k++) { tmp[k] = SPIF_CAST(charptr) STRDUP(argv[k + i]); D_OPTIONS(("tmp[%d] == %s\n", k, tmp[k])); - argv[k + i] = NULL; + if (SPIFOPT_FLAGS_IS_SET(SPIFOPT_SETTING_REMOVE_ARGS)) { + argv[k + i] = NULL; + } } tmp[k] = SPIF_NULL_TYPE(charptr); *(SPIF_CAST_C(spif_charptr_t **) SPIFOPT_OPT_VALUE(n)) = tmp; @@ -560,7 +562,7 @@ NEXT_LETTER(); } } - if (!SPIFOPT_FLAGS_IS_SET(SPIFOPT_SETTING_PREPARSE)) { + if (!SPIFOPT_FLAGS_IS_SET(SPIFOPT_SETTING_PREPARSE) && SPIFOPT_FLAGS_IS_SET(SPIFOPT_SETTING_REMOVE_ARGS)) { argv[i] = NULL; } @@ -663,7 +665,7 @@ ((spifopt_abstract_handler_t) SPIFOPT_OPT_VALUE(j))(val_ptr); } } - if (!SPIFOPT_FLAGS_IS_SET(SPIFOPT_SETTING_PREPARSE)) { + if (!SPIFOPT_FLAGS_IS_SET(SPIFOPT_SETTING_PREPARSE) && SPIFOPT_FLAGS_IS_SET(SPIFOPT_SETTING_REMOVE_ARGS)) { argv[i] = NULL; } NEXT_LOOP(); @@ -671,7 +673,7 @@ if (SPIFOPT_FLAGS_IS_SET(SPIFOPT_SETTING_PREPARSE)) { SPIFOPT_FLAGS_CLEAR(SPIFOPT_SETTING_PREPARSE); - } else { + } else if (SPIFOPT_FLAGS_IS_SET(SPIFOPT_SETTING_REMOVE_ARGS)) { for (i = 1, j = 1; i < argc; i++) { if (argv[i]) { argv[j] = argv[i]; ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs