summaryrefslogtreecommitdiff
path: root/app-editors/emacs/files
diff options
context:
space:
mode:
Diffstat (limited to 'app-editors/emacs/files')
-rw-r--r--app-editors/emacs/files/emacs-23.3-wide-chars-fix.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/app-editors/emacs/files/emacs-23.3-wide-chars-fix.patch b/app-editors/emacs/files/emacs-23.3-wide-chars-fix.patch
new file mode 100644
index 0000000..0a4825e
--- /dev/null
+++ b/app-editors/emacs/files/emacs-23.3-wide-chars-fix.patch
@@ -0,0 +1,28 @@
+diff --git a/src/xdisp.c b/src/xdisp.c
+index 1f4c829..0f21c82 100644
+--- a/src/xdisp.c
++++ b/src/xdisp.c
+@@ -5922,9 +5922,21 @@ get_next_display_element (it)
+ int pos = (it->s ? -1
+ : STRINGP (it->string) ? IT_STRING_CHARPOS (*it)
+ : IT_CHARPOS (*it));
++ int c;
++
++ if (it->what == IT_CHARACTER)
++ c = it->char_to_display;
++ else
++ {
++ struct composition *cmp = composition_table[it->cmp_it.id];
++ int i;
+
+- it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display, pos,
+- it->string);
++ c = ' ';
++ for (i = 0; i < cmp->glyph_len; i++)
++ if ((c = COMPOSITION_GLYPH (cmp, i)) != '\t')
++ break;
++ }
++ it->face_id = FACE_FOR_CHAR (it->f, face, c, pos, it->string);
+ }
+ }
+ #endif