diff options
author | Rob Landley <rob@landley.net> | 2012-02-11 13:42:24 -0600 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2012-02-11 13:42:24 -0600 |
commit | 365bda87f40d0a2d410ebfe025d43ee13444058f (patch) | |
tree | ad8970a4528b5dcff50893b5c1bf20621781411b /toys/echo.c | |
parent | ef3e5284bf078ef3cb0bd21c4883b341f8a2cb96 (diff) | |
download | toybox-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.c | 41 |
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; + } + } } } } |