summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/coding.c11
2 files changed, 16 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 20fd021a376..221ba913a80 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2011-12-11 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (Funencodable_char_position): Pay attention to the
+ buffer text relocation (Bug#9389).
+
2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
* xterm.c (x_term_init): Move call to gdk_window_add_filter before
diff --git a/src/coding.c b/src/coding.c
index 50268099413..e15d725af3a 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -8756,6 +8756,7 @@ to the string. */)
}
positions = Qnil;
+ charset_map_loaded = 0;
while (1)
{
int c;
@@ -8783,6 +8784,16 @@ to the string. */)
}
from++;
+ if (charset_map_loaded && NILP (string))
+ {
+ p = CHAR_POS_ADDR (from);
+ pend = CHAR_POS_ADDR (to);
+ if (from < GPT && to >= GPT)
+ stop = GPT_ADDR;
+ else
+ stop = pend;
+ charset_map_loaded = 0;
+ }
}
return (NILP (count) ? Fcar (positions) : Fnreverse (positions));