qemacs-commit
[Top][All Lists]
Advanced

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

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


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs qe.h qe.c buffer.c
Date: Fri, 31 Jan 2014 12:14:13 +0000

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        14/01/31 12:14:13

Modified files:
        .              : qe.h qe.c buffer.c 

Log message:
        cosmetic changes in buffer API
        
        * make eb_insert return number of bytes inserted
        * make eb_printf return number of bytes inserted (was length of utf8 
string)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.131&r2=1.132
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.137&r2=1.138
http://cvs.savannah.gnu.org/viewcvs/qemacs/buffer.c?cvsroot=qemacs&r1=1.67&r2=1.68

Patches:
Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.131
retrieving revision 1.132
diff -u -b -r1.131 -r1.132
--- qe.h        24 Jan 2014 01:30:54 -0000      1.131
+++ qe.h        31 Jan 2014 12:14:13 -0000      1.132
@@ -848,7 +848,7 @@
 int eb_insert_buffer(EditBuffer *dest, int dest_offset,
                      EditBuffer *src, int src_offset,
                      int size);
-void eb_insert(EditBuffer *b, int offset, const void *buf, int size);
+int eb_insert(EditBuffer *b, int offset, const void *buf, int size);
 void eb_delete(EditBuffer *b, int offset, int size);
 void eb_replace(EditBuffer *b, int offset, int size,
                 const void *buf, int size1);

Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.137
retrieving revision 1.138
diff -u -b -r1.137 -r1.138
--- qe.c        29 Jan 2014 23:28:38 -0000      1.137
+++ qe.c        31 Jan 2014 12:14:13 -0000      1.138
@@ -636,10 +636,8 @@
                 chunk_start += eb_insert_uchar(s->b, chunk_start, '\n');
                 if (offset < par_end) {
                     /* indent */
-                    buf[0] = ' ';
                     for (n = indent_size; n > 0; n--)
-                        eb_insert(s->b, chunk_start, buf, 1);
-                    chunk_start += indent_size;
+                        chunk_start += eb_insert_uchar(s->b, chunk_start, ' ');
 
                     word_start += indent_size;
                     offset += indent_size;
@@ -648,6 +646,7 @@
                 col = word_size + indent_size;
             } else {
                 buf[0] = ' ';
+                /* XXX: incorrect for wide character buffers */
                 eb_write(s->b, chunk_start, buf, 1);
                 chunk_start++;
                 col += 1 + word_size;

Index: buffer.c
===================================================================
RCS file: /sources/qemacs/qemacs/buffer.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -b -r1.67 -r1.68
--- buffer.c    25 Jan 2014 09:21:48 -0000      1.67
+++ buffer.c    31 Jan 2014 12:14:13 -0000      1.68
@@ -348,17 +348,18 @@
 
 /* Insert 'size' bytes from 'buf' into 'b' at offset 'offset'. We must
    have : 0 <= offset <= b->total_size */
-void eb_insert(EditBuffer *b, int offset, const void *buf, int size)
+/* Return number of bytes inserted */
+int eb_insert(EditBuffer *b, int offset, const void *buf, int size)
 {
     if (b->flags & BF_READONLY)
-        return;
+        return 0;
 
     /* sanity checks */
     if (offset > b->total_size)
         offset = b->total_size;
 
     if (offset < 0 || size <= 0)
-        return;
+        return 0;
 
     eb_addlog(b, LOGOP_INSERT, offset, size);
 
@@ -366,6 +367,7 @@
 
     /* the page cache is no longer valid */
     b->cur_page = NULL;
+    return size;
 }
 
 /* We must have : 0 <= offset <= b->total_size */
@@ -1704,22 +1706,22 @@
 }
 
 /* Insert unicode character according to buffer encoding */
+/* Return number of bytes inserted */
 int eb_insert_uchar(EditBuffer *b, int offset, int c)
 {
     char buf[MAX_CHAR_BYTES];
     int len;
 
     len = unicode_to_charset(buf, c, b->charset);
-    eb_insert(b, offset, buf, len);
-    return len;
+    return eb_insert(b, offset, buf, len);
 }
 
 /* Insert buffer with utf8 chars according to buffer encoding */
+/* Return number of bytes inserted */
 int eb_insert_utf8_buf(EditBuffer *b, int offset, const char *buf, int len)
 {
     if (b->charset == &charset_utf8) {
-        eb_insert(b, offset, buf, len);
-        return len;
+        return eb_insert(b, offset, buf, len);
     } else {
         char buf1[1024];
         int size, size1;
@@ -1731,8 +1733,7 @@
             int clen = unicode_to_charset(buf1 + size1, c, b->charset);
             size1 += clen;
             if (size1 > ssizeof(buf) - MAX_CHAR_BYTES || buf >= bufend) {
-                eb_insert(b, offset + size, buf1, size1);
-                size += size1;
+                size += eb_insert(b, offset + size, buf1, size1);
                 size1 = 0;
             }
         }
@@ -1786,7 +1787,7 @@
 {
     char buf0[1024];
     char *buf;
-    int len, size;
+    int len, size, written;
     va_list ap;
 
     va_start(ap, fmt);
@@ -1809,12 +1810,12 @@
      * buf may contain \0 characters via the %c modifer.
      * XXX: %c does not encode non ASCII characters as utf8.
      */
-    eb_insert_utf8_buf(b, b->total_size, buf, len);
+    written = eb_insert_utf8_buf(b, b->total_size, buf, len);
 #ifdef CONFIG_WIN32
     if (buf != buf0)
         qe_free(&buf);
 #endif
-    return len;
+    return written;
 }
 
 #if 0
@@ -1864,6 +1865,7 @@
  * buffer 'dest' at offset 'dest_offset'. 'src' MUST BE DIFFERENT from
  * 'dest'. Charset converson between source and destination buffer is
  * performed.
+ * Return the number of bytes inserted.
  */
 int eb_insert_buffer_convert(EditBuffer *dest, int dest_offset,
                              EditBuffer *src, int src_offset,
@@ -1894,8 +1896,7 @@
             int c = eb_nextc(src, offset, &offset);
             int len = unicode_to_charset(buf, c, b->charset);
             b->cur_style = src->cur_style;
-            eb_insert(b, offset1 + size, buf, len);
-            size += len;
+            size += eb_insert(b, offset1 + size, buf, len);
         }
 
         if (b != dest) {



reply via email to

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