- if (mt->format == format)
- return 0;
- if (mt->format == MTEXT_FORMAT_US_ASCII)
- {
- if (format == MTEXT_FORMAT_UTF_8)
- mt->format = MTEXT_FORMAT_UTF_8;
- MERROR (MERROR_MTEXT, -1);
- }
- else if (mt->format == MTEXT_FORMAT_UTF_8)
- {
- MERROR (MERROR_MTEXT, -1);
- }
- else if (mt->format <= MTEXT_FORMAT_UTF_16BE)
- {
- MERROR (MERROR_MTEXT, -1);
- }
- else
- {
- MERROR (MERROR_MTEXT, -1);
- }
- return 0;
-}
-
-
-int
-mtext__replace (MText *mt, int from, int to, char *from_str, char *to_str)
-{
- int from_byte = POS_CHAR_TO_BYTE (mt, from);
- int to_byte = POS_CHAR_TO_BYTE (mt, to);
- unsigned char *p = MTEXT_DATA (mt) + from_byte;
- unsigned char *endp = MTEXT_DATA (mt) + to_byte;
- int from_str_len = strlen (from_str);
- int to_str_len = strlen (to_str);
- int diff = to_str_len - from_str_len;
- unsigned char saved_byte;
- int pos, pos_byte;
-
- if (mtext_nchars (mt) == 0
- || from_str_len == 0)
- return 0;
- M_CHECK_READONLY (mt, -1);
- M_CHECK_RANGE (mt, from, to, -1, 0);