[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs qe.c qe.h x11.c
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs qe.c qe.h x11.c |
Date: |
Mon, 13 Jan 2014 11:28:01 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 14/01/13 11:28:01
Modified files:
. : qe.c qe.h x11.c
Log message:
improve kill / yank functions
* fix bug in do_kill that caused M-w to fail on read-only buffers
* pass base buffer to new_yank_buffer to initialize charset correctly
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.118&r2=1.119
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.118&r2=1.119
http://cvs.savannah.gnu.org/viewcvs/qemacs/x11.c?cvsroot=qemacs&r1=1.29&r2=1.30
Patches:
Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -b -r1.118 -r1.119
--- qe.c 13 Jan 2014 11:00:43 -0000 1.118
+++ qe.c 13 Jan 2014 11:28:00 -0000 1.119
@@ -1423,7 +1423,7 @@
s->offset = 0;
}
-EditBuffer *new_yank_buffer(QEmacsState *qs)
+EditBuffer *new_yank_buffer(QEmacsState *qs, EditBuffer *base)
{
char bufname[32];
EditBuffer *b;
@@ -1439,7 +1439,8 @@
}
}
snprintf(bufname, sizeof(bufname), "*kill-%d*", qs->yank_current + 1);
- b = eb_new(bufname, BF_UTF8);
+ b = eb_new(bufname, base->flags & BF_UTF8);
+ eb_set_charset(b, base->charset);
qs->yank_buffers[qs->yank_current] = b;
return b;
}
@@ -1458,7 +1459,7 @@
/* deactivate region hilite */
s->region_style = 0;
- if (s->b->flags & BF_READONLY)
+ if (dir && (s->b->flags & BF_READONLY))
return;
if (p1 > p2) {
@@ -1470,8 +1471,7 @@
b = qs->yank_buffers[qs->yank_current];
if (!b || !dir || qs->last_cmd_func != (CmdFunc)do_append_next_kill) {
/* append kill if last command was kill already */
- b = new_yank_buffer(qs);
- eb_set_charset(b, s->b->charset);
+ b = new_yank_buffer(qs, s->b);
}
/* insert at beginning or end depending on kill direction */
eb_insert_buffer_convert(b, dir < 0 ? 0 : b->total_size, s->b, p1, len);
@@ -1815,11 +1815,11 @@
if (!charset)
return;
+ b = s->b;
+
b1 = eb_new("*tmp*", 0);
eb_set_charset(b1, charset);
- b = s->b;
-
/* preserve positions */
cb = b->first_callback;
for (i = 0; i < countof(pos) && cb; cb = cb->next) {
Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -b -r1.118 -r1.119
--- qe.h 13 Jan 2014 11:00:44 -0000 1.118
+++ qe.h 13 Jan 2014 11:28:00 -0000 1.119
@@ -1629,7 +1629,7 @@
void do_backspace(EditState *s, int argval);
void do_delete_char(EditState *s, int argval);
void do_tab(EditState *s, int argval);
-EditBuffer *new_yank_buffer(QEmacsState *qs);
+EditBuffer *new_yank_buffer(QEmacsState *qs, EditBuffer *base);
void do_append_next_kill(EditState *s);
void do_kill(EditState *s, int p1, int p2, int dir);
void do_kill_region(EditState *s, int killtype);
Index: x11.c
===================================================================
RCS file: /sources/qemacs/qemacs/x11.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- x11.c 17 Dec 2013 16:06:36 -0000 1.29
+++ x11.c 13 Jan 2014 11:28:01 -0000 1.30
@@ -1093,7 +1093,7 @@
prop = xev.xselection.property;
/* copy GUI selection a new yank buffer */
- b = new_yank_buffer(qs);
+ b = new_yank_buffer(qs, NULL);
nread = 0;
for (;;) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs qe.c qe.h x11.c,
Charlie Gordon <=