* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include "ao-dbg.h"
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
#include <stdarg.h>
#include <poll.h>
+#include <getopt.h>
static int s51_port = 0;
static char *cpu = "8051";
struct ccdbg *s51_dbg;
int s51_interrupted = 0;
int s51_monitor = 0;
+char *s51_tty = NULL;
+char *s51_device = NULL;
static FILE *s51_input;
static FILE *s51_output;
s51_interrupted = 1;
}
+static const struct option options[] = {
+ { .name = "tty", .has_arg = 1, .val = 'T' },
+ { .name = "device", .has_arg = 1, .val = 'D' },
+ { 0, 0, 0, 0 },
+};
+
int
main(int argc, char **argv)
{
char *endptr;
struct sigvec vec, ovec;
- while ((opt = getopt(argc, argv, "PVvHhmt:X:c:r:Z:s:S:p:")) != -1) {
+ while ((opt = getopt_long(argc, argv, "PVvHhmt:X:c:r:Z:s:S:p:T:", options, NULL)) != -1) {
switch (opt) {
case 't':
cpu = optarg;
case 'm':
s51_monitor = 1;
break;
+ case 'T':
+ s51_tty = optarg;
+ break;
+ case 'D':
+ s51_device = optarg;
+ break;
}
}
if (s51_port) {
putc(c, s51_output);
}
+#if HAVE_LIBREADLINE
#include <readline/readline.h>
#include <readline/history.h>
+#endif
int
s51_read_line(char *line, int len)
{
int ret;
+#if HAVE_LIBREADLINE
if (s51_output == stdout && s51_input == stdin && s51_prompt) {
char *r;
line[len-1] = '\0';
add_history(r);
return 1;
- } else {
+ } else
+#endif
+ {
if (s51_prompt)
s51_printf("%s", s51_prompt);
else