@@ -1,10 +1,10 @@ /* ================================================================== - FILE: "/home/joze/src/tclreadline/tclreadline.c" - LAST MODIFICATION: "Wed Sep 15 01:00:43 1999 (joze)" + FILE: "/disk01/home/joze/src/tclreadline/tclreadline.c" + LAST MODIFICATION: "Thu Sep 16 15:43:29 1999 (joze)" (C) 1998, 1999 by Johannes Zellner, $Id$ --- tclreadline -- gnu readline for tcl @@ -189,15 +189,17 @@ Tcl_Obj** objv = (Tcl_Obj**) MALLOC((argc + 1) * sizeof(Tcl_Obj *)); static char *subCmds[] = { "read", "initialize", "write", "add", "complete", "customcompleter", "builtincompleter", "eofchar", + "reset-terminal", (char *) NULL }; enum SubCmdIdx { TCLRL_READ, TCLRL_INITIALIZE, TCLRL_WRITE, TCLRL_ADD, TCLRL_COMPLETE, - TCLRL_CUSTOMCOMPLETER, TCLRL_BUILTINCOMPLETER, TCLRL_EOFCHAR + TCLRL_CUSTOMCOMPLETER, TCLRL_BUILTINCOMPLETER, TCLRL_EOFCHAR, + TCLRL_RESET_TERMINAL }; Tcl_ResetResult(interp); /* clear the result space */ @@ -367,10 +369,22 @@ if (!blank_line(argv[2])) tclrl_eof_string = stripwhite(strdup(argv[2])); } Tcl_AppendResult(interp, tclrl_eof_string, (char*) NULL); break; + + case TCLRL_RESET_TERMINAL: + /* TODO: add this to the completer */ + if (argc > 3) { + Tcl_WrongNumArgs(interp, 2, objv, "?terminal-name?"); + return TCL_ERROR; + } else if (3 == argc) { + rl_reset_terminal(Tcl_GetString(objv[2])); + } else { + rl_cleanup_after_signal(); + } + break; default: goto BAD_COMMAND; /* NOTREACHED */ break;