[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) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs qe.h qe.c buffer.c,
Charlie Gordon <=