* src/compose.c
Fix wrapping with accentued chars.
+2005-02-14 [colin] 1.0.1cvs5.3
+
+ * src/compose.c
+ Fix wrapping with accentued chars.
+
2005-02-13 [colin] 1.0.1cvs5.2
* src/textview.c
2005-02-13 [colin] 1.0.1cvs5.2
* src/textview.c
( cvs diff -u -r 1.96.2.45 -r 1.96.2.46 src/textview.c; ) > 1.0.1cvs4.5.patchset
( cvs diff -u -r 1.60.2.4 -r 1.60.2.5 src/filtering.c; ) > 1.0.1cvs5.1.patchset
( cvs diff -u -r 1.96.2.46 -r 1.96.2.47 src/textview.c; ) > 1.0.1cvs5.2.patchset
( cvs diff -u -r 1.96.2.45 -r 1.96.2.46 src/textview.c; ) > 1.0.1cvs4.5.patchset
( cvs diff -u -r 1.60.2.4 -r 1.60.2.5 src/filtering.c; ) > 1.0.1cvs5.1.patchset
( cvs diff -u -r 1.96.2.46 -r 1.96.2.47 src/textview.c; ) > 1.0.1cvs5.2.patchset
+( cvs diff -u -r 1.382.2.99 -r 1.382.2.100 src/compose.c; ) > 1.0.1cvs5.3.patchset
BINARY_AGE=0
EXTRA_VERSION=5
EXTRA_RELEASE=
BINARY_AGE=0
EXTRA_VERSION=5
EXTRA_RELEASE=
if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}${EXTRA_RELEASE}${EXTRA_GTK2_VERSION}
if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}${EXTRA_RELEASE}${EXTRA_GTK2_VERSION}
gint redo_state,
gpointer data);
gint redo_state,
gpointer data);
-static gint calc_cursor_xpos (GtkTextView *text,
- gint extra,
- gint char_width);
-
static void compose_create_header_entry (Compose *compose);
static void compose_add_header_entry (Compose *compose, gchar *header, gchar *text);
static void compose_update_priority_menu_item(Compose * compose);
static void compose_create_header_entry (Compose *compose);
static void compose_add_header_entry (Compose *compose, gchar *header, gchar *text);
static void compose_update_priority_menu_item(Compose * compose);
gunichar uc; \
\
uc = gtk_text_iter_get_char(iter_p); \
gunichar uc; \
\
uc = gtk_text_iter_get_char(iter_p); \
len = g_unichar_to_utf8(uc, buf) > 1 ? 2 : 1; \
len = g_unichar_to_utf8(uc, buf) > 1 ? 2 : 1; \
+ buf[len]='\0'; \
+ } else { \
buf[0] = '\0'; \
len = 1; \
} \
}
#define DISP_WIDTH(len) \
buf[0] = '\0'; \
len = 1; \
} \
}
#define DISP_WIDTH(len) \
- ((len > 2 && conv_get_locale_charset() == C_UTF_8) ? 2 : \
- (len == 2 && conv_get_locale_charset() == C_UTF_8) ? 1 : len)
+ ((len > 2) ? 2 : \
+ (len == 2) ? 1 : len)
#define SPACE_CHARS " \t"
#define SPACE_CHARS " \t"
if (space) {
line_pos = cur_pos + 1;
if (space) {
line_pos = cur_pos + 1;
- line_len = cur_len + ch_len;
+ line_len = cur_len + DISP_WIDTH(ch_len);
}
gtk_text_buffer_get_iter_at_offset(textbuf, &iter, line_pos);
}
gtk_text_buffer_get_iter_at_offset(textbuf, &iter, line_pos);
p_end++;
cur_pos++;
line_pos++;
p_end++;
cur_pos++;
line_pos++;
- cur_len = cur_len - line_len + ch_len;
+ cur_len = cur_len - line_len + DISP_WIDTH(ch_len);
line_len = 0;
continue;
}
line_len = 0;
continue;
}
- if (ch_len > 1) {
- line_pos = cur_pos + 1;
- line_len = cur_len + ch_len;
- }
- cur_len += ch_len;
+ cur_len += DISP_WIDTH(ch_len);
/* possible line break */
if (ch_len == 1 && isspace(*(guchar *)cbuf)) {
line_pos = cur_pos + 1;
/* possible line break */
if (ch_len == 1 && isspace(*(guchar *)cbuf)) {
line_pos = cur_pos + 1;
- line_len = cur_len + ch_len;
+ line_len = cur_len + DISP_WIDTH(ch_len);
}
/* are we over wrapping length set in preferences ? */
}
/* are we over wrapping length set in preferences ? */
- if (ch_len > 1) {
- line_pos = cur_pos + 1;
- line_len = cur_len + ch_len;
- }
/* advance to next character in buffer */
/* advance to next character in buffer */
+ cur_len += DISP_WIDTH(ch_len);
}
if (set_editable_pos && editable_pos <= tlen) {
}
if (set_editable_pos && editable_pos <= tlen) {
-static gint calc_cursor_xpos(GtkTextView *text, gint extra, gint char_width)
-{
-#warning FIXME_GTK2
- return 0;
-}
-
/* callback functions */
/* compose_edit_size_alloc() - called when resized. don't know whether Gtk
/* callback functions */
/* compose_edit_size_alloc() - called when resized. don't know whether Gtk
/* got the maximum */
gtk_ruler_set_range(GTK_RULER(shruler),
/* got the maximum */
gtk_ruler_set_range(GTK_RULER(shruler),
- 0.0, line_width_in_chars,
- calc_cursor_xpos(GTK_TEXT_VIEW(widget),
- allocation->x,
- char_width),
+ 0.0, line_width_in_chars, 0,
/*line_width_in_chars*/ char_width);
}
/*line_width_in_chars*/ char_width);
}
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
mark = gtk_text_buffer_get_insert(buffer);
gtk_text_buffer_get_iter_at_mark(buffer, &ins, mark);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
mark = gtk_text_buffer_get_insert(buffer);
gtk_text_buffer_get_iter_at_mark(buffer, &ins, mark);
-#warning FIXME_GTK2 /* should regist current line offset */
offset = gtk_text_iter_get_line_offset(&ins);
if (gtk_text_iter_forward_line(&ins)) {
gtk_text_iter_set_line_offset(&ins, offset);
offset = gtk_text_iter_get_line_offset(&ins);
if (gtk_text_iter_forward_line(&ins)) {
gtk_text_iter_set_line_offset(&ins, offset);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
mark = gtk_text_buffer_get_insert(buffer);
gtk_text_buffer_get_iter_at_mark(buffer, &ins, mark);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
mark = gtk_text_buffer_get_insert(buffer);
gtk_text_buffer_get_iter_at_mark(buffer, &ins, mark);
-#warning FIXME_GTK2 /* should regist current line offset */
offset = gtk_text_iter_get_line_offset(&ins);
if (gtk_text_iter_backward_line(&ins)) {
gtk_text_iter_set_line_offset(&ins, offset);
offset = gtk_text_iter_get_line_offset(&ins);
if (gtk_text_iter_backward_line(&ins)) {
gtk_text_iter_set_line_offset(&ins, offset);