aboutsummaryrefslogtreecommitdiff
path: root/toys/echo.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2012-02-11 13:42:24 -0600
committerRob Landley <rob@landley.net>2012-02-11 13:42:24 -0600
commit365bda87f40d0a2d410ebfe025d43ee13444058f (patch)
treead8970a4528b5dcff50893b5c1bf20621781411b /toys/echo.c
parentef3e5284bf078ef3cb0bd21c4883b341f8a2cb96 (diff)
downloadtoybox-365bda87f40d0a2d410ebfe025d43ee13444058f.tar.gz
Minor cleanups to echo: collapse together three tolower() calls, make indent/brackets a bit more regular/obvious, and replace some spaces with tabs in help text (in a way that won't matter until I finish rewriting scripts/config2help.py in C).
Diffstat (limited to 'toys/echo.c')
-rw-r--r--toys/echo.c41
1 files changed, 22 insertions, 19 deletions
diff --git a/toys/echo.c b/toys/echo.c
index f7c423cf..6430dcbf 100644
--- a/toys/echo.c
+++ b/toys/echo.c
@@ -17,19 +17,19 @@ config ECHO
Write each argument to stdout, with one space between each, followed
by a newline.
- -n No trailing newline.
- -e Process the following escape sequences:
- \\ backslash
+ -n No trailing newline.
+ -e Process the following escape sequences:
+ \\ backslash
\0NNN octal values (1 to 3 digits)
- \a alert (beep/flash)
- \b backspace
- \c stop output here (avoids trailing newline)
- \f form feed
- \n newline
- \r carriage return
- \t horizontal tab
- \v vertical tab
- \xHH hexadecimal values (1 to 2 digits)
+ \a alert (beep/flash)
+ \b backspace
+ \c stop output here (avoids trailing newline)
+ \f form feed
+ \n newline
+ \r carriage return
+ \t horizontal tab
+ \v vertical tab
+ \xHH hexadecimal values (1 to 2 digits)
*/
#include "toys.h"
@@ -66,17 +66,20 @@ void echo_main(void)
c = 0;
while (arg[j]>='0' && arg[j]<='7' && n++<3)
c = (c*8)+arg[j++]-'0';
- }
- else if (d == 'x') {
+ } else if (d == 'x') {
int n = 0;
c = 0;
- while (n++<2)
+ while (n++<2) {
if (arg[j]>='0' && arg[j]<='9')
c = (c*16)+arg[j++]-'0';
- else if (tolower(arg[j])>='a' && tolower(arg[j])<='f')
- c = (c*16)+tolower(arg[j++])-'a'+10;
- else
- break;
+ else {
+ int temp = tolower(arg[j]);
+ if (temp>='a' && temp<='f') {
+ c = (c*16)+temp-'a'+10;
+ j++;
+ } else break;
+ }
+ }
}
}
}