qemacs-commit
[Top][All Lists]
Advanced

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

[Qemacs-commit] qemacs latex-mode.c


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs latex-mode.c
Date: Fri, 23 Dec 2016 04:51:40 -0500 (EST)

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        16/12/23 04:51:40

Modified files:
        .              : latex-mode.c 

Log message:
        latex: simplified do_tex_insert_quote()

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/latex-mode.c?cvsroot=qemacs&r1=1.54&r2=1.55

Patches:
Index: latex-mode.c
===================================================================
RCS file: /sources/qemacs/qemacs/latex-mode.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- latex-mode.c        26 Aug 2015 00:53:23 -0000      1.54
+++ latex-mode.c        23 Dec 2016 09:51:40 -0000      1.55
@@ -168,28 +168,22 @@
 
 static void do_tex_insert_quote(EditState *s)
 {
-    int offset_bol, len, offset1;
-    unsigned int buf[COLORED_MAX_LINE_SIZE];
-    int pos;
-
-    offset_bol = eb_goto_bol2(s->b, s->offset, &pos);
-    offset1 = offset_bol;
-    len = eb_get_line(s->b, buf, countof(buf), &offset1);
-    if (pos > len)
-        return;
-    if (pos >= 1 && buf[pos-1] == '\"') {
-        s->offset += eb_insert_uchar(s->b, s->offset, '\"');
+    EditBuffer *b = s->b;
+    int offset = s->offset;
+    int c1 = eb_prevc(b, offset, &offset);
+    int c2 = eb_prevc(b, offset, &offset);
+
+    if (c1 == '\"') {
+        s->offset += eb_insert_uchar(b, s->offset, '\"');
     } else
-    if (pos >= 2 && (buf[pos-1] == '`' || buf[pos-1] == '\'') &&
-          buf[pos-1] == buf[pos-2])
-    {
-        eb_delete_chars(s->b, s->offset, -2);
-        s->offset += eb_insert_uchar(s->b, s->offset, '\"');
+    if ((c1 == '`' || c1 == '\'') && c1 == c2) {
+        eb_delete_chars(b, s->offset, -2);
+        s->offset += eb_insert_uchar(b, s->offset, '\"');
     } else {
-        if (pos == 0 || buf[pos-1] == ' ') {
-            s->offset += eb_insert_str(s->b, s->offset, "``");
+        if (c1 == '\n' || c1 == ' ') {
+            s->offset += eb_insert_str(b, s->offset, "``");
         } else {
-            s->offset += eb_insert_str(s->b, s->offset, "''");
+            s->offset += eb_insert_str(b, s->offset, "''");
         }
     }
 }



reply via email to

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