qemacs-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemacs-commit] qemacs qe.c


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs qe.c
Date: Sat, 19 Apr 2008 09:03:58 +0000

CVSROOT:        /cvsroot/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        08/04/19 09:03:58

Modified files:
        .              : qe.c 

Log message:
        fixed delete-char and backward-delete-char to append to kill buffer 
after a kill command

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.85&r2=1.86

Patches:
Index: qe.c
===================================================================
RCS file: /cvsroot/qemacs/qemacs/qe.c,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -b -r1.85 -r1.86
--- qe.c        18 Apr 2008 14:39:08 -0000      1.85
+++ qe.c        19 Apr 2008 09:03:58 -0000      1.86
@@ -699,10 +699,14 @@
         return;
 
     if (argval == NO_ARG) {
+        if (s->qe_state->last_cmd_func != do_append_next_kill) {
         eb_nextc(s->b, s->offset, &offset1);
         eb_delete(s->b, s->offset, offset1 - s->offset);
-    } else
-    if (argval) {
+            return;
+        }
+        argval = 1;
+    }
+
         /* save kill if universal argument given */
         endpos = s->offset;
         for (i = argval; i > 0 && endpos < s->b->total_size; i--) {
@@ -712,7 +716,6 @@
             eb_prevc(s->b, endpos, &endpos);
         }
         do_kill(s, s->offset, endpos, argval);
-    }
 }
 
 void do_backspace(EditState *s, int argval)
@@ -730,6 +733,7 @@
     s->region_style = 0;
 
     if (argval == NO_ARG) {
+        if (s->qe_state->last_cmd_func != do_append_next_kill) {
         eb_prevc(s->b, s->offset, &offset1);
         if (offset1 < s->offset) {
             s->offset = eb_delete_range(s->b, offset1, s->offset);
@@ -737,10 +741,12 @@
             if (s->compose_len > 0)
                 s->compose_len--;
         }
-    } else {
+            return;
+        }
+        argval = 1;
+    }
         /* save kill if universal argument given */
         do_delete_char(s, -argval);
-    }
 }
 
 /* return the cursor position relative to the screen. Note that xc is




reply via email to

[Prev in Thread] Current Thread [Next in Thread]