--- findutils-4.1.7/xargs/xargs.c.jj 2004-03-05 14:24:02.000000000 +0100 +++ findutils-4.1.7/xargs/xargs.c 2004-03-14 20:30:14.595097885 +0100 @@ -297,7 +297,7 @@ main (int argc, char **argv) if (arg_max <= 0) error (1, 0, _("environment is too large for exec")); - while ((optc = getopt_long (argc, argv, "+0e::i::l::n:prs:txP:", + while ((optc = getopt_long (argc, argv, "+0e::E:i::I:l::L:n:prs:txP:", longopts, (int *) 0)) != -1) { switch (optc) @@ -306,8 +306,9 @@ main (int argc, char **argv) read_args = read_string; break; + case 'E': case 'e': - if (optarg) + if (optarg && *optarg) eof_str = optarg; else eof_str = 0; @@ -316,6 +317,7 @@ main (int argc, char **argv) case 'h': usage (stdout, 0); + case 'I': case 'i': if (optarg) replace_pat = optarg; @@ -326,9 +328,10 @@ main (int argc, char **argv) lines_per_exec = 0; break; + case 'L': case 'l': if (optarg) - lines_per_exec = parse_num (optarg, 'l', 1L, -1L); + lines_per_exec = parse_num (optarg, optc, 1L, -1L); else lines_per_exec = 1; /* -l excludes -i -n. */