+2002-08-21
+
+ * src/compose.c: improved line wrapping.
+ join_next_line()
+ compose_wrap_line_all(): also join lines that are not indented.
+ dump_text(): handle multi-byte strings correctly.
+
2002-08-21
* src/compose.c: compose_wrap_line_all(): fix for auto-wrapping
+2002-08-21
+
+ * src/compose.c: ¹ÔÀÞ¤êÊÖ¤·¤ò²þÎÉ¡£
+ join_next_line()
+ compose_wrap_line_all(): ¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¹Ô¤â·ë¹ç¡£
+ dump_text(): ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤âÀµ¤·¤¯°·¤¦¤è¤¦¤Ë¤·¤¿¡£
+
2002-08-21
* src/compose.c: compose_wrap_line_all(): ¼«Æ°²þ¹Ô¤Î¤¿¤á¤Î½¤Àµ
/* Darko: used when I debug wrapping */
void dump_text(GtkSText *text, int pos, int tlen, int breakoncr)
{
- gint i;
- gchar ch;
+ gint i, clen;
+ gchar cbuf[MB_LEN_MAX];
printf("%d [", pos);
for (i = pos; i < tlen; i++) {
- ch = GTK_STEXT_INDEX(text, i);
- if (breakoncr && ch == '\n')
+ GET_CHAR(i, cbuf, clen);
+ if (clen < 0) break;
+ if (breakoncr && clen == 1 && cbuf[0] == '\n')
break;
- printf("%c", ch);
+ fwrite(cbuf, clen, 1, stdout);
}
printf("]\n");
}
indent_len = get_indent_length(text, start_pos, tlen);
- if ((indent_len > 0) && (indent_len == prev_ilen)) {
+ if (indent_len == prev_ilen) {
GET_CHAR(start_pos + indent_len, cbuf, ch_len);
if (ch_len > 0 && (cbuf[0] != '\n'))
do_join = TRUE;
gchar cb[MB_LEN_MAX];
/* should we join the next line */
- if ((i_len != cur_len) && do_delete &&
+ if (do_delete &&
join_next_line(text, cur_pos + 1, tlen, i_len))
do_delete = TRUE;
else
is_new_line = TRUE;
line_len = 0;
cur_len = 0;
- if (i_len)
- do_delete = TRUE;
- else
- do_delete = FALSE;
+ do_delete = TRUE;
#ifdef WRAP_DEBUG
g_print("after CR insert ");
dump_text(text, line_pos, tlen, 1);