diff -urp coreutils-6.9-orig/src/echo.c coreutils-6.9/src/echo.c
--- coreutils-6.9-orig/src/echo.c
+++ coreutils-6.9/src/echo.c
@@ -163,6 +163,10 @@ main (int argc, char **argv)
{
case 'e': case 'E': case 'n':
break;
+ case '-':
+ /* end of short options(allows to print -n,-e or -E) */
+ argc--;
+ argv++;
default:
goto just_echo;
}
diff -urp coreutils-6.9-orig/lib/long-options.c coreutils-6.9/lib/long-options.c
--- coreutils-6.9-orig/lib/long-options.c
+++ coreutils-6.9/lib/long-options.c
@@ -57,8 +57,7 @@ parse_long_options (int argc,
/* Don't print an error message for unrecognized options. */
opterr = 0;
- if (argc == 2
- && (c = getopt_long (argc, argv, "+", long_options, NULL)) != -1)
+ while ((c = getopt_long (argc, argv, "+", long_options, NULL)) != -1)
{
switch (c)
{