]> git.eshelyaron.com Git - emacs.git/commitdiff
(composition_reseat_it): If the current buffer is
authorKenichi Handa <handa@m17n.org>
Fri, 12 Sep 2008 05:38:37 +0000 (05:38 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 12 Sep 2008 05:38:37 +0000 (05:38 +0000)
not associated with a window, ignore the automatic composition.
(find_automatic_composition): Likewise.

src/composite.c

index 92e7a1e44cb9056674083c14b4244e96a55d6a33..b017721de673599867739b52d3fef109d63573a9 100644 (file)
@@ -1093,7 +1093,7 @@ composition_reseat_it (cmp_it, charpos, bytepos, endpos, w, face, string)
       cmp_it->nchars = end - start;
       cmp_it->nglyphs = composition_table[cmp_it->id]->glyph_len;
     }
-  else
+  else if (w)
     {
       Lisp_Object val, elt;
       int i;
@@ -1119,6 +1119,8 @@ composition_reseat_it (cmp_it, charpos, bytepos, endpos, w, face, string)
          break;
       cmp_it->nglyphs = i;
     }
+  else
+    goto no_composition;
   cmp_it->from = 0;
   return 1;
 
@@ -1255,8 +1257,14 @@ find_automatic_composition (pos, limit, start, end, gstring, string)
   Lisp_Object check_val, val, elt;
   int check_lookback;
   int c;
+  Lisp_Object window;
   struct window *w;
 
+  window = Fget_buffer_create (Fcurrent_buffer ());
+  if (NILP (window))
+    return 0;
+  w = XWINDOW (window);
+
   orig.pos = pos;
   if (NILP (string))
     {
@@ -1279,7 +1287,6 @@ find_automatic_composition (pos, limit, start, end, gstring, string)
     {
       tail = min (tail, limit + 3);
     }
-  w = XWINDOW (selected_window);
   cur = orig;
 
  retry: