qemacs-commit
[Top][All Lists]
Advanced

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

[Qemacs-commit] qemacs qe.c qe.h qeconfig.h


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs qe.c qe.h qeconfig.h
Date: Thu, 16 Jan 2014 14:28:29 +0000

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        14/01/16 14:28:29

Modified files:
        .              : qe.c qe.h qeconfig.h 

Log message:
        add do_mark_region, do_mark_paragraph
        
        * add do_mark_region to set hilighted region
        * add command mark-paragraph on M-h
        * make command mark-whole-buffer display hilighted region

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.125&r2=1.126
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.123&r2=1.124
http://cvs.savannah.gnu.org/viewcvs/qemacs/qeconfig.h?cvsroot=qemacs&r1=1.40&r2=1.41

Patches:
Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.125
retrieving revision 1.126
diff -u -b -r1.125 -r1.126
--- qe.c        16 Jan 2014 14:24:04 -0000      1.125
+++ qe.c        16 Jan 2014 14:28:28 -0000      1.126
@@ -472,6 +472,16 @@
     }
 }
 
+void do_mark_region(EditState *s, int mark, int offset)
+{
+    /* CG: Should have local and global mark rings */
+    s->b->mark = clamp(mark, 0, s->b->total_size);
+    s->offset = clamp(offset, 0, s->b->total_size);
+    /* activate region hilite */
+    if (s->qe_state->hilite_region)
+        s->region_style = QE_STYLE_REGION_HILITE;
+}
+
 /* paragraph handling */
 
 int eb_next_paragraph(EditBuffer *b, int offset)
@@ -511,6 +521,14 @@
     return offset;
 }
 
+void do_mark_paragraph(EditState *s)
+{
+    int start = eb_start_paragraph(s->b, s->offset);
+    int end = eb_next_paragraph(s->b, s->offset);
+
+    do_mark_region(s, start, end);
+}
+
 void do_backward_paragraph(EditState *s)
 {
     int offset;
@@ -1413,20 +1431,13 @@
 /* block functions */
 void do_set_mark(EditState *s)
 {
-    /* CG: Should have local and global mark rings */
-    s->b->mark = s->offset;
-
-    /* activate region hilite */
-    if (s->qe_state->hilite_region)
-        s->region_style = QE_STYLE_REGION_HILITE;
-
+    do_mark_region(s, s->offset, s->offset);
     put_status(s, "Mark set");
 }
 
 void do_mark_whole_buffer(EditState *s)
 {
-    s->b->mark = s->b->total_size;
-    s->offset = 0;
+    do_mark_region(s, s->b->total_size, 0);
 }
 
 EditBuffer *new_yank_buffer(QEmacsState *qs, EditBuffer *base)

Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.123
retrieving revision 1.124
diff -u -b -r1.123 -r1.124
--- qe.h        16 Jan 2014 14:24:04 -0000      1.123
+++ qe.h        16 Jan 2014 14:28:28 -0000      1.124
@@ -1693,8 +1693,10 @@
 void do_bol(EditState *s);
 void do_eol(EditState *s);
 void do_word_right(EditState *s, int dir);
+void do_mark_region(EditState *s, int mark, int offset);
 int eb_next_paragraph(EditBuffer *b, int offset);
 int eb_start_paragraph(EditBuffer *b, int offset);
+void do_mark_paragraph(EditState *s);
 void do_backward_paragraph(EditState *s);
 void do_forward_paragraph(EditState *s);
 void do_kill_paragraph(EditState *s, int dir);

Index: qeconfig.h
===================================================================
RCS file: /sources/qemacs/qemacs/qeconfig.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- qeconfig.h  15 Jan 2014 19:44:25 -0000      1.40
+++ qeconfig.h  16 Jan 2014 14:28:28 -0000      1.41
@@ -189,6 +189,8 @@
 
     /*---------------- Paragraph / case handling ----------------*/
 
+    CMD0( KEY_META('h'), KEY_NONE,
+          "mark-paragraph", do_mark_paragraph)
     CMD0( KEY_META('{'), KEY_NONE,
           "backward-paragraph", do_backward_paragraph)
     CMD0( KEY_META('}'), KEY_NONE,



reply via email to

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