summaryrefslogtreecommitdiff
path: root/avr/cmd_misc.c
diff options
context:
space:
mode:
authorLeo C2015-06-11 17:43:28 +0200
committerLeo C2015-06-11 17:43:28 +0200
commit1157e75889d3d6d23d1e2514f401cd5b354bd149 (patch)
treeedad2bcaddaec49a18a1b4bac2b813ce9e5a36bf /avr/cmd_misc.c
parent8506d791786eea8ee55db5418a8f646bb2dd3a6d (diff)
parent057817cb1dc71416bc798b5cd592acfcea87efaa (diff)
downloadz180-stamp-1157e75889d3d6d23d1e2514f401cd5b354bd149.zip
Merge branch 'master' into cmdline_edit
Diffstat (limited to 'avr/cmd_misc.c')
-rw-r--r--avr/cmd_misc.c48
1 files changed, 23 insertions, 25 deletions
diff --git a/avr/cmd_misc.c b/avr/cmd_misc.c
index 315b959..c9a3c45 100644
--- a/avr/cmd_misc.c
+++ b/avr/cmd_misc.c
@@ -1,4 +1,6 @@
/*
+ * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de>
+ *
* Copyright 2000-2009
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
@@ -7,46 +9,43 @@
#include "common.h"
#include <stdlib.h>
+#include <stdbool.h>
#include "command.h"
#include "timer.h"
#include "con-utils.h"
+#include "getopt-min.h"
command_ret_t do_echo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
- uint_fast8_t putnl = 1;
+ bool put_newline = true;
(void) cmdtp; (void) flag;
- for (uint_fast8_t i = 1; i < argc; i++) {
+ /* reset getopt() */
+ optind = 1;
+
+ int opt;
+ while ((opt = getopt(argc, argv, PSTR("n"))) != -1) {
+ switch (opt) {
+ case 'n':
+ put_newline = false;
+ break;
+ default: /* '?' */
+ return CMD_RET_USAGE;
+ }
+ }
- uint_fast8_t backslash = 0;
- char *p = argv[i];
- char c;
+ for (uint_fast8_t i = optind; i < argc; i++) {
- if (i != 1)
+ if (i != optind)
putchar(' ');
- while ((c = *p++) != '\0') {
-
- if(backslash) {
- backslash = 0;
- if (c == 'c') {
- putnl = 0;
- continue;
- } else
- putchar('\\');
- } else {
- if (c == '\\') {
- backslash = 1;
- continue;
- }
- }
- putchar(c);
- }
+
+ my_puts(argv[i]);
}
- if (putnl)
+ if (put_newline)
putchar('\n');
return CMD_RET_SUCCESS;
@@ -88,4 +87,3 @@ command_ret_t do_sleep(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]
return CMD_RET_SUCCESS;
}
-