insert mode bug fix and cleanup
[unix-history] / usr / src / usr.bin / window / wwwrite.c
index f60dc28..90cf59b 100644 (file)
@@ -1,13 +1,24 @@
-#ifndef lint
-static char sccsid[] = "@(#)wwwrite.c  3.25 %G%";
-#endif
-
 /*
 /*
- * Copyright (c) 1983 Regents of the University of California,
- * All rights reserved.  Redistribution permitted subject to
- * the terms of the Berkeley Software License Agreement.
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
  */
 
+#ifndef lint
+static char sccsid[] = "@(#)wwwrite.c  3.30 (Berkeley) %G%";
+#endif /* not lint */
+
 #include "ww.h"
 #include "tt.h"
 #include "char.h"
 #include "ww.h"
 #include "tt.h"
 #include "char.h"
@@ -69,7 +80,7 @@ int n;
                                        q = p + 10;
                                }
                                wwinschar(w, w->ww_cur.r, w->ww_cur.c,
                                        q = p + 10;
                                }
                                wwinschar(w, w->ww_cur.r, w->ww_cur.c,
-                                       *p++ | w->ww_modes << WWC_MSHIFT);
+                                       *p++, w->ww_modes);
                                goto right;
                        }
 
                                goto right;
                        }
 
@@ -149,10 +160,10 @@ int n;
                        case '\r':
                                w->ww_cur.c = w->ww_w.l;
                                break;
                        case '\r':
                                w->ww_cur.c = w->ww_w.l;
                                break;
-                       case ctrl(g):
-                               ttputc(ctrl(g));
+                       case ctrl('g'):
+                               ttputc(ctrl('g'));
                                break;
                                break;
-                       case ctrl([):
+                       case ctrl('['):
                                w->ww_wstate = 1;
                                break;
                        }
                                w->ww_wstate = 1;
                                break;
                        }
@@ -216,10 +227,17 @@ int n;
                        case 'O':
                                w->ww_insert = 0;
                                break;
                        case 'O':
                                w->ww_insert = 0;
                                break;
+                       case 'X':
+                               wwupdate();
+                               break;
                        case 'Y':
                                UPDATE();
                                w->ww_wstate = 2;
                                break;
                        case 'Y':
                                UPDATE();
                                w->ww_wstate = 2;
                                break;
+                       case 'Z':
+                               wwupdate();
+                               xxflush(0);
+                               break;
                        case 's':
                                w->ww_wstate = 4;
                                break;
                        case 's':
                                w->ww_wstate = 4;
                                break;