projects
/
platform
/
upstream
/
bash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported from ../bash-2.01.tar.gz.
[platform/upstream/bash.git]
/
builtins
/
echo.def
diff --git
a/builtins/echo.def
b/builtins/echo.def
index
74ca0f4
..
e8b6edb
100644
(file)
--- a/
builtins/echo.def
+++ b/
builtins/echo.def
@@
-26,6
+26,8
@@
$PRODUCES echo.c
# include <unistd.h>
#endif
# include <unistd.h>
#endif
+#include "../bashansi.h"
+
#include <stdio.h>
#include "../shell.h"
#include <stdio.h>
#include "../shell.h"
@@
-72,8
+74,8
@@
int
echo_builtin (list)
WORD_LIST *list;
{
echo_builtin (list)
WORD_LIST *list;
{
- int display_return, do_v9, i;
- char *temp;
+ int display_return, do_v9, i
, len
;
+ char *temp
, *s
;
#if defined (DEFAULT_ECHO_TO_USG)
/* System V machines already have a /bin/sh with a v9 behaviour. We
#if defined (DEFAULT_ECHO_TO_USG)
/* System V machines already have a /bin/sh with a v9 behaviour. We
@@
-130,13
+132,21
@@
just_echo:
while (list)
{
while (list)
{
- i = 0;
- temp = do_v9 ? ansicstr (list->word->word, STRLEN (list->word->word), &i)
+ i =
len =
0;
+ temp = do_v9 ? ansicstr (list->word->word, STRLEN (list->word->word), &i
, &len
)
: list->word->word;
if (temp)
{
: list->word->word;
if (temp)
{
- printf ("%s", temp);
+ if (do_v9)
+ {
+ for (s = temp; len > 0; len--)
+ putchar (*s++);
+ }
+ else
+ printf ("%s", temp);
+#if defined (SunOS5)
fflush (stdout); /* Fix for bug in SunOS 5.5 printf(3) */
fflush (stdout); /* Fix for bug in SunOS 5.5 printf(3) */
+#endif
}
if (do_v9 && temp)
free (temp);
}
if (do_v9 && temp)
free (temp);