Tue Aug 11 21:24:49 2009 UTC ()
in v_ecl(), copy the converter from the shadow screen initialized in
v_ecl_init(), so that history can be displayed and edited.

Which means, :ESC works again.


(aymeric)
diff -r1.3 -r1.4 src/dist/nvi/vi/v_ex.c

cvs diff -r1.3 -r1.4 src/dist/nvi/vi/Attic/v_ex.c (expand / switch to unified diff)

--- src/dist/nvi/vi/Attic/v_ex.c 2008/12/05 22:51:43 1.3
+++ src/dist/nvi/vi/Attic/v_ex.c 2009/08/11 21:24:49 1.4
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: v_ex.c,v 1.3 2008/12/05 22:51:43 christos Exp $ */ 1/* $NetBSD: v_ex.c,v 1.4 2009/08/11 21:24:49 aymeric Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 1992, 1993, 1994 4 * Copyright (c) 1992, 1993, 1994
5 * The Regents of the University of California. All rights reserved. 5 * The Regents of the University of California. All rights reserved.
6 * Copyright (c) 1992, 1993, 1994, 1995, 1996 6 * Copyright (c) 1992, 1993, 1994, 1995, 1996
7 * Keith Bostic. All rights reserved. 7 * Keith Bostic. All rights reserved.
8 * 8 *
9 * See the LICENSE file for redistribution information. 9 * See the LICENSE file for redistribution information.
10 */ 10 */
11 11
12#include "config.h" 12#include "config.h"
13 13
14#ifndef lint 14#ifndef lint
@@ -518,26 +518,27 @@ v_ecl(SCR *sp) @@ -518,26 +518,27 @@ v_ecl(SCR *sp)
518 return (1); 518 return (1);
519 if (vs_split(sp, new, 1)) { 519 if (vs_split(sp, new, 1)) {
520 (void)screen_end(new); 520 (void)screen_end(new);
521 return (1); 521 return (1);
522 } 522 }
523 523
524 /* Attach to the screen. */ 524 /* Attach to the screen. */
525 new->ep = wp->ccl_sp->ep; 525 new->ep = wp->ccl_sp->ep;
526 ++new->ep->refcnt; 526 ++new->ep->refcnt;
527 CIRCLEQ_INSERT_HEAD(&new->ep->scrq, new, eq); 527 CIRCLEQ_INSERT_HEAD(&new->ep->scrq, new, eq);
528 528
529 new->frp = wp->ccl_sp->frp; 529 new->frp = wp->ccl_sp->frp;
530 new->frp->flags = sp->frp->flags; 530 new->frp->flags = sp->frp->flags;
 531 new->conv = wp->ccl_sp->conv;
531 532
532 /* Move the cursor to the end. */ 533 /* Move the cursor to the end. */
533 (void)db_last(new, &new->lno); 534 (void)db_last(new, &new->lno);
534 if (new->lno == 0) 535 if (new->lno == 0)
535 new->lno = 1; 536 new->lno = 1;
536 537
537 /* Remember the originating window. */ 538 /* Remember the originating window. */
538 sp->ccl_parent = sp; 539 sp->ccl_parent = sp;
539 540
540 /* It's a special window. */ 541 /* It's a special window. */
541 F_SET(new, SC_COMEDIT); 542 F_SET(new, SC_COMEDIT);
542 543
543 /* Don't encode on writing to DB. */ 544 /* Don't encode on writing to DB. */