summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/fns.c10
2 files changed, 9 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 100cfd83f06..9d52344d5b3 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-29 Kenichi Handa <handa@m17n.org>
+
+ * fns.c (string_char_to_byte): Optimize for ASCII only string.
+ (string_byte_to_char): Likewise.
+
2004-01-28 Peter Runestig <peter@runestig.com>
* makefile.w32-in, w32fns.c: Add `default-printer-name' function.
diff --git a/src/fns.c b/src/fns.c
index 6383e09302b..493d7ba2897 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -884,12 +884,11 @@ string_char_to_byte (string, char_index)
int best_below, best_below_byte;
int best_above, best_above_byte;
- if (! STRING_MULTIBYTE (string))
- return char_index;
-
best_below = best_below_byte = 0;
best_above = SCHARS (string);
best_above_byte = SBYTES (string);
+ if (best_above == best_above_byte)
+ return char_index;
if (EQ (string, string_char_byte_cache_string))
{
@@ -957,12 +956,11 @@ string_byte_to_char (string, byte_index)
int best_below, best_below_byte;
int best_above, best_above_byte;
- if (! STRING_MULTIBYTE (string))
- return byte_index;
-
best_below = best_below_byte = 0;
best_above = SCHARS (string);
best_above_byte = SBYTES (string);
+ if (best_above == best_above_byte)
+ return byte_index;
if (EQ (string, string_char_byte_cache_string))
{