Fixes for tc help commands

* "tc [class|qdisc|filter] get" doesn't exist, remove it from inline help.

* Add "replace" to "tc [class|filter] get" inline help.

* Fix "tc [class|qdisc|filter] help" output:

  ~$ tc class help
  [snip]
  Command "help" is unknown, try "tc class help".
  ~$

with my best wishes,

--
Hasso Tepper
Elion Enterprises Ltd. [AS3249]
Data Communication Network Administrator

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
diff --git a/tc/tc_class.c b/tc/tc_class.c
index fb0b6b2..774497a 100644
--- a/tc/tc_class.c
+++ b/tc/tc_class.c
@@ -29,7 +29,7 @@
 
 static void usage(void)
 {
-	fprintf(stderr, "Usage: tc class [ add | del | change | get ] dev STRING\n");
+	fprintf(stderr, "Usage: tc class [ add | del | change | replace | show ] dev STRING\n");
 	fprintf(stderr, "       [ classid CLASSID ] [ root | parent CLASSID ]\n");
 	fprintf(stderr, "       [ [ QDISC_KIND ] [ help | OPTIONS ] ]\n");
 	fprintf(stderr, "\n");
@@ -315,8 +315,10 @@
 	if (matches(*argv, "list") == 0 || matches(*argv, "show") == 0
 	    || matches(*argv, "lst") == 0)
 		return tc_class_list(argc-1, argv+1);
-	if (matches(*argv, "help") == 0)
+	if (matches(*argv, "help") == 0) {
 		usage();
+		return 0;
+	}
 	fprintf(stderr, "Command \"%s\" is unknown, try \"tc class help\".\n", *argv);
 	return -1;
 }
diff --git a/tc/tc_filter.c b/tc/tc_filter.c
index 3e102cd..008f0c1 100644
--- a/tc/tc_filter.c
+++ b/tc/tc_filter.c
@@ -32,7 +32,7 @@
 
 static void usage(void)
 {
-	fprintf(stderr, "Usage: tc filter [ add | del | change | get ] dev STRING\n");
+	fprintf(stderr, "Usage: tc filter [ add | del | change | replace | show ] dev STRING\n");
 	fprintf(stderr, "       [ pref PRIO ] [ protocol PROTO ]\n");
 	fprintf(stderr, "       [ estimator INTERVAL TIME_CONSTANT ]\n");
 	fprintf(stderr, "       [ root | classid CLASSID ] [ handle FILTERID ]\n");
@@ -363,8 +363,10 @@
 	if (matches(*argv, "list") == 0 || matches(*argv, "show") == 0
 	    || matches(*argv, "lst") == 0)
 		return tc_filter_list(argc-1, argv+1);
-	if (matches(*argv, "help") == 0)
+	if (matches(*argv, "help") == 0) {
 		usage();
+		return 0;
+        }
 	fprintf(stderr, "Command \"%s\" is unknown, try \"tc filter help\".\n", *argv);
 	return -1;
 }
diff --git a/tc/tc_qdisc.c b/tc/tc_qdisc.c
index 0b16923..1256f07 100644
--- a/tc/tc_qdisc.c
+++ b/tc/tc_qdisc.c
@@ -29,7 +29,7 @@
 
 static int usage(void)
 {
-	fprintf(stderr, "Usage: tc qdisc [ add | del | replace | change | get ] dev STRING\n");
+	fprintf(stderr, "Usage: tc qdisc [ add | del | replace | change | show ] dev STRING\n");
 	fprintf(stderr, "       [ handle QHANDLE ] [ root | ingress | parent CLASSID ]\n");
 	fprintf(stderr, "       [ estimator INTERVAL TIME_CONSTANT ]\n");
 	fprintf(stderr, "       [ [ QDISC_KIND ] [ help | OPTIONS ] ]\n");
@@ -316,8 +316,10 @@
 	if (matches(*argv, "list") == 0 || matches(*argv, "show") == 0
 	    || matches(*argv, "lst") == 0)
 		return tc_qdisc_list(argc-1, argv+1);
-	if (matches(*argv, "help") == 0)
+	if (matches(*argv, "help") == 0) {
 		usage();
+		return 0;
+        }
 	fprintf(stderr, "Command \"%s\" is unknown, try \"tc qdisc help\".\n", *argv);
 	return -1;
 }