This is vodz' latest patch.  Sorry it took so long...
    1) ping cleanup (compile fix from this patch already applied).
    2) traceroute call not spare ntohl() now (and reduce size);
    3) Fix for functions not declared static in insmod, ash, vi and mount.
    4) a more simple API cmdedit :))
    5) adds "stopped jobs" warning to ash on Ctrl-D and fixes "ignoreeof" option
    6) reduce exporting library function index->strchr (traceroute), bzero->memset (syslogd)
diff --git a/shell/cmdedit.c b/shell/cmdedit.c
index 540eb7e..69f8337 100644
--- a/shell/cmdedit.c
+++ b/shell/cmdedit.c
@@ -1153,7 +1153,8 @@
  *
  */
  
-extern void cmdedit_read_input(char *prompt, char command[BUFSIZ])
+
+int cmdedit_read_input(char *prompt, char command[BUFSIZ])
 {
 
 	int break_out = 0;
@@ -1231,10 +1232,15 @@
 			 * if the len=0 and no chars to delete */
 			if (len == 0) {
 prepare_to_die:
+#if !defined(BB_FEATURE_ASH)
 				printf("exit");
 				goto_new_line();
 				/* cmdedit_reset_term() called in atexit */
 				exit(EXIT_SUCCESS);
+#else
+				break_out = -1; /* for control stoped jobs */
+				break;
+#endif
 			} else {
 				input_delete();
 			}
@@ -1455,8 +1461,10 @@
 		num_ok_lines++;
 #endif
 	}
+	if(break_out>0) {
 	command[len++] = '\n';		/* set '\n' */
 	command[len] = 0;
+	}
 #if defined(BB_FEATURE_CLEAN_UP) && defined(BB_FEATURE_COMMAND_TAB_COMPLETION)
 	input_tab(0);				/* strong free */
 #endif
@@ -1464,6 +1472,7 @@
 	free(cmdedit_prompt);
 #endif
 	cmdedit_reset_term();
+	return len;
 }