[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs clang.c qe.c qe.h qeconfig.h
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs clang.c qe.c qe.h qeconfig.h |
Date: |
Fri, 12 Jan 2007 15:06:16 +0000 |
CVSROOT: /cvsroot/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 07/01/12 15:06:16
Modified files:
. : clang.c qe.c qe.h qeconfig.h
Log message:
renamed do_less_quit() to do_less_exit() for consistency with command
name
fixed crash in do_less_exit() when invoking "less-exit" with A-x
fixed c auto-indenter to not move point unless within the indent space
fixed the electric-c mode
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/clang.c?cvsroot=qemacs&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/qemacs/qeconfig.h?cvsroot=qemacs&r1=1.12&r2=1.13
Patches:
Index: clang.c
===================================================================
RCS file: /cvsroot/qemacs/qemacs/clang.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- clang.c 31 Dec 2006 19:34:01 -0000 1.7
+++ clang.c 12 Jan 2007 15:06:16 -0000 1.8
@@ -461,6 +461,8 @@
/* the number of needed spaces is in 'pos' */
+ /* CG: should not modify buffer is indentation in correct */
+
/* suppress leading spaces */
offset1 = offset;
for (;;) {
@@ -472,33 +474,40 @@
size = offset1 - offset;
if (size > 0) {
eb_delete(s->b, offset, size);
- s->offset -= size;
- if (s->offset < offset)
- s->offset = offset;
}
/* insert needed spaces */
- insert_spaces(s, &offset, pos);
- s->offset = offset;
+ offset1 = offset;
+ insert_spaces(s, &offset1, pos);
+ if (s->offset == offset) {
+ /* move to the inddentation if point was in indent space */
+ s->offset = offset1;
+ }
}
static void do_c_indent_region(EditState *s)
{
- int col_num, p1, p2, tmp;
+ int col_num, line1, line2, begin;
- /* we do it with lines to avoid offset variations during indenting */
- eb_get_pos(s->b, &p1, &col_num, s->offset);
- eb_get_pos(s->b, &p2, &col_num, s->b->mark);
-
- if (p1 > p2) {
- tmp = p1;
- p1 = p2;
- p2 = tmp;
+ /* Swap point and mark so point <= mark */
+ if (s->offset > s->b->mark) {
+ int tmp = s->b->mark;
+ s->b->mark = s->offset;
+ s->offset = tmp;
}
+ /* We do it with lines to avoid offset variations during indenting */
+ eb_get_pos(s->b, &line1, &col_num, s->offset);
+ eb_get_pos(s->b, &line2, &col_num, s->b->mark);
+
+ /* Remember start of first line of region to later set mark */
+ begin = eb_goto_pos(s->b, line1, 0);
- for (;p1 <= p2; p1++) {
- s->offset = eb_goto_pos(s->b, p1, 0);
+ for (; line1 <= line2; line1++) {
+ s->offset = eb_goto_pos(s->b, line1, 0);
do_c_indent(s);
}
+ /* move point to end of region, and mark to begin of first row */
+ s->offset = s->b->mark;
+ s->b->mark = begin;
}
static void do_c_electric(EditState *s, int key)
@@ -534,7 +543,8 @@
/* specific C commands */
static CmdDef c_commands[] = {
CMD_( KEY_CTRL('i'), KEY_NONE, "c-indent-command", do_c_indent, "*")
- CMD_( KEY_NONE, KEY_NONE, "c-indent-region", do_c_indent_region, "*")
+ CMD_( KEY_META(KEY_CTRL('\\')), KEY_NONE, "c-indent-region",
+ do_c_indent_region, "*")
/* CG: should use 'k' intrinsic argument */
CMDV( ';', KEY_NONE, "c-electric-semi&comma", do_c_electric, ';', "*v")
CMDV( ':', KEY_NONE, "c-electric-colon", do_c_electric, ':', "*v")
Index: qe.c
===================================================================
RCS file: /cvsroot/qemacs/qemacs/qe.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- qe.c 31 Dec 2006 19:34:01 -0000 1.30
+++ qe.c 12 Jan 2007 15:06:16 -0000 1.31
@@ -1354,6 +1354,7 @@
{
/* well, currently nothing needs to be aborted in global context */
/* CG: Should remove popups, sidepanes, helppanes... */
+ put_status(s, "Canceled.");
}
/* block functions */
@@ -4496,8 +4497,11 @@
qs->active_window = minibuffer_saved_active;
/* force status update */
- strcpy(qs->status_shadow, " ");
- put_status(NULL, " ");
+ //strcpy(qs->status_shadow, " ");
+ if (do_abort)
+ put_status(NULL, "Canceled.");
+ else
+ put_status(NULL, "");
/* call the callback */
cb = minibuffer_cb;
@@ -4588,17 +4592,20 @@
static EditState *popup_saved_active;
/* less like mode */
-void do_less_quit(EditState *s)
+void do_less_exit(EditState *s)
{
QEmacsState *qs = s->qe_state;
EditBuffer *b;
/* CG: should verify that popup_saved_active still exists */
+ /* CG: This command crashes if not invoked from less popup mode */
+ if (popup_saved_active) {
qs->active_window = popup_saved_active;
b = s->b;
edit_close(s);
eb_free(b);
do_refresh(qs->active_window);
+ }
}
/* show a popup on a readonly buffer */
Index: qe.h
===================================================================
RCS file: /cvsroot/qemacs/qemacs/qe.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- qe.h 31 Dec 2006 19:34:01 -0000 1.26
+++ qe.h 12 Jan 2007 15:06:16 -0000 1.27
@@ -681,10 +681,8 @@
int save_buffer(EditBuffer *b);
void set_buffer_name(EditBuffer *b, const char *name1);
void set_filename(EditBuffer *b, const char *filename);
-int eb_add_callback(EditBuffer *b, EditBufferCallback cb,
- void *opaque);
-void eb_free_callback(EditBuffer *b, EditBufferCallback cb,
- void *opaque);
+int eb_add_callback(EditBuffer *b, EditBufferCallback cb, void *opaque);
+void eb_free_callback(EditBuffer *b, EditBufferCallback cb, void *opaque);
void eb_offset_callback(EditBuffer *b,
void *opaque,
enum LogOperation op,
@@ -1366,7 +1364,7 @@
void do_history(EditState *s, int dir);
void do_minibuffer_get_binary(EditState *s);
void do_minibuffer_exit(EditState *s, int abort);
-void do_less_quit(EditState *s);
+void do_less_exit(EditState *s);
void do_toggle_read_only(EditState *s);
void do_not_modified(EditState *s);
void do_find_alternate_file(EditState *s, const char *filename);
Index: qeconfig.h
===================================================================
RCS file: /cvsroot/qemacs/qemacs/qeconfig.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- qeconfig.h 11 Dec 2006 23:11:31 -0000 1.12
+++ qeconfig.h 12 Jan 2007 15:06:16 -0000 1.13
@@ -205,7 +205,7 @@
};
CmdDef less_commands[] = {
- CMD0( 'q', KEY_CTRL('g'), "less-exit", do_less_quit)
+ CMD0( 'q', KEY_CTRL('g'), "less-exit", do_less_exit)
CMD1( '/', KEY_NONE, "less-isearch", do_isearch, 1)
CMD_DEF_END,
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs clang.c qe.c qe.h qeconfig.h,
Charlie Gordon <=