invalid, execute CCL_INVALID_CMD.
(ccl_driver): If the CCL program is terminated because of
CCL_STAT_INVALID_CMD, copy the remaining source data to the
destination instead of throwing them away.
multibyte form later. */ \
extra_bytes++; \
} \
- else \
+ else if (CHAR_VALID_P (ch, 0)) \
dst += CHAR_STRING (ch, dst); \
+ else \
+ CCL_INVALID_CMD; \
} \
else \
CCL_SUSPEND (CCL_STAT_SUSPEND_BY_DST); \
bcopy (msg, dst, msglen);
dst += msglen;
}
+ if (ccl->status == CCL_STAT_INVALID_CMD)
+ {
+ /* Copy the remaining source data. */
+ int i = src_end - src;
+ if (dst_bytes && (dst_end - dst) < i)
+ i = dst_end - dst;
+ bcopy (src, dst, i);
+ src += i;
+ dst += i;
+ }
}
ccl_finish: