[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs qe.h bufed.c list.c
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs qe.h bufed.c list.c |
Date: |
Tue, 01 Apr 2014 07:56:42 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 14/04/01 07:56:41
Modified files:
. : qe.h bufed.c list.c
Log message:
improve list-mode
* combine static buffer styles with full line highlight.
* fix list_toggle_selection for read-only buffers and non byte based
charsets
* pass direction flag to list_toggle_selection for bufed-backward-unmark
* add bufed-unmark-backward on DEL
* bufed-next-line and bufed-previous-line on n, C-n, p and C-p
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.158&r2=1.159
http://cvs.savannah.gnu.org/viewcvs/qemacs/bufed.c?cvsroot=qemacs&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/qemacs/list.c?cvsroot=qemacs&r1=1.12&r2=1.13
Patches:
Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -b -r1.158 -r1.159
--- qe.h 24 Mar 2014 10:58:10 -0000 1.158
+++ qe.h 1 Apr 2014 07:55:32 -0000 1.159
@@ -1924,7 +1924,7 @@
extern ModeDef list_mode;
-void list_toggle_selection(EditState *s);
+void list_toggle_selection(EditState *s, int dir);
int list_get_pos(EditState *s);
int list_get_offset(EditState *s);
@@ -1932,7 +1932,7 @@
void do_dired(EditState *s);
-/* c_mode.c */
+/* clang.c */
#define CLANG_C 0x01
#define CLANG_CPP 0x02
Index: bufed.c
===================================================================
RCS file: /sources/qemacs/qemacs/bufed.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- bufed.c 24 Mar 2014 10:58:09 -0000 1.28
+++ bufed.c 1 Apr 2014 07:55:49 -0000 1.29
@@ -377,9 +377,10 @@
/* bufed-abort should restore previous buffer in right-window */
CMD1( KEY_CTRL('g'), KEY_NONE,
"bufed-abort", do_delete_window, 0)
- CMD0( ' ', KEY_CTRL('t'),
- "bufed-toggle-selection", list_toggle_selection)
- /* BS should go back to previous item and unmark it */
+ CMD1( ' ', KEY_CTRL('t'),
+ "bufed-toggle-selection", list_toggle_selection, 1)
+ CMD1( KEY_DEL, KEY_NONE,
+ "bufed-unmark-backward", list_toggle_selection, -1)
//CMD1( 'u', KEY_NONE, "bufed-unmark", bufed_mark, ' ')
CMD0( '~', KEY_NONE,
"bufed-clear-modified", bufed_clear_modified)
@@ -387,10 +388,10 @@
"bufed-toggle-read-only", bufed_toggle_read_only)
CMD1( 'a', KEY_NONE,
"bufed-toggle-all-visible", bufed_refresh, 1)
- CMD1( 'n', KEY_NONE,
- "next-line", do_up_down, 1)
- CMD1( 'p', KEY_NONE,
- "previous-line", do_up_down, -1)
+ CMD1( 'n', KEY_CTRL('n'), /* KEY_DOWN */
+ "bufed-next-line", do_up_down, 1)
+ CMD1( 'p', KEY_CTRL('p'), /* KEY_UP */
+ "bufed-previous-line", do_up_down, -1)
CMD1( 'r', 'g',
"bufed-refresh", bufed_refresh, 0)
CMD0( 'k', 'd',
Index: list.c
===================================================================
RCS file: /sources/qemacs/qemacs/list.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- list.c 10 Feb 2014 21:21:40 -0000 1.12
+++ list.c 1 Apr 2014 07:56:35 -0000 1.13
@@ -31,16 +31,19 @@
int offset, len;
offset = *offsetp;
- len = eb_get_line(s->b, buf, buf_size, offsetp);
+ /* Get line contents including static buffer styles */
+ len = get_non_colorized_line(s, buf, buf_size, offsetp, line_num);
if (((qs->active_window == s) || s->force_highlight) &&
s->offset >= offset && s->offset < *offsetp)
{
/* highlight the line if the cursor is inside */
+ clear_color(buf, len);
set_color(buf, buf + len, QE_STYLE_HIGHLIGHT);
} else
if (buf[0] == '*') {
/* selection */
+ clear_color(buf, len);
set_color(buf, buf + len, QE_STYLE_SELECTION);
}
return len;
@@ -57,25 +60,31 @@
/* get current offset of the line in list */
int list_get_offset(EditState *s)
{
- int line, col;
- eb_get_pos(s->b, &line, &col, s->offset);
- return eb_goto_pos(s->b, line, 0);
+ return eb_goto_bol(s->b, s->offset);
}
-void list_toggle_selection(EditState *s)
+void list_toggle_selection(EditState *s, int dir)
{
- int offset;
- unsigned char ch;
+ int offset, offset1;
+ int ch, flags;
+
+ if (dir < 0)
+ text_move_up_down(s, -1);
offset = list_get_offset(s);
- eb_read(s->b, offset , &ch, 1);
+ ch = eb_nextc(s->b, offset, &offset1);
if (ch == ' ')
ch = '*';
else
ch = ' ';
- eb_write(s->b, offset , &ch, 1);
+ flags = s->b->flags & BF_READONLY;
+ s->b->flags ^= flags;
+ eb_delete_uchar(s->b, offset);
+ eb_insert_uchar(s->b, offset, ch);
+ s->b->flags ^= flags;
+ if (dir > 0)
text_move_up_down(s, 1);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs qe.h bufed.c list.c,
Charlie Gordon <=