Mercurial > emacs
view etc/future-bug @ 89061:9a9b54d06f3d
* regex.c (RE_TARGET_MULTIBYTE_P): New macro.
(GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte. If
that is zero, convert an eight-bit char to multibyte.
(MAKE_CHAR_MULTIBYTE, CHAR_LEADING_CODE): New dummy new macros for
non-emacs case.
(PATFETCH): Convert an eight-bit char to multibyte.
(HANDLE_UNIBYTE_RANGE): New macro.
(regex_compile): Setup the compiled pattern for multibyte chars
even if the given regex string is unibyte. Use PATFETCH_RAW
instead of PATFETCH in many places. To handle `charset'
specification of unibyte, call HANDLE_UNIBYTE_RANGE. Use bitmap
only for ASCII chars.
(analyse_first) <exactn>: Simplified because the compiled pattern
is multibyte.
<charset_not>: Setup fastmap from bitmap only for ASCII chars.
<charset>: Use CHAR_LEADING_CODE to get leading codes.
<categoryspec>: If multibyte, setup fastmap only for ASCII chars
here.
(re_compile_fastmap) [emacs]: Call analyse_first with the arg
multibyte always 1.
(re_search_2) In emacs, set the locale variable multibyte to 1,
otherwise to 0. New local variable target_multibyte. Check it
to decide the multibyteness of STR1 and STR2. If
target_multibyte is zero, convert unibyte chars to multibyte
before translating and checking fastmap.
(TARGET_CHAR_AND_LENGTH): New macro.
(re_match_2_internal): In emacs, set the locale variable multibyte
to 1, otherwise to 0. New local variable target_multibyte. Check
it to decide the multibyteness of STR1 and STR2. Use
TARGET_CHAR_AND_LENGTH to fetch a character from D.
<charset, charset_not>: If multibyte is nonzero, check fastmap
only for ASCII chars. Call bcmp_translate with
target_multibyte, not with multibyte.
<begline>: Declare the local variable C as `unsigned'.
(bcmp_translate): Change the last arg name to target_multibyte.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Tue, 03 Sep 2002 04:09:40 +0000 |
parents | 03ddf0b96330 |
children | 23a1cea22d13 |
line wrap: on
line source
Date: Tue, 23 Feb 2199 21:03:50 -0600 From: Karl Fogel <kfogel@floss.cyclic.com> To: bug-gnu-emacs@prep.ai.mit.edu Subject: M-x search-backward-in-time broken... X-Windows: you'll envy the dead. In GNU Emacs 51.70.4 (i9986-unknown-linux-gnu, X toolkit) of Sat Feb 20 2199 on floss configured using `configure --with-x-toolkit=yes' The `search-backward-in-time' function appears to be broken in Emacs 51.70. Unfortunately, I can never seem to start the debugger early enough to catch the error as it happens. However I have traced the problem through source by eye, and it looks like `time-forward' can't handle negative arguments anymore. This is consistent with other symptoms: for example, `undo' (which since 51.25 has worked by passing a negative arg to `time-forward') is also broken. However, `do' still works -- it seems that `time-forward' continues to handle positive arguments just fine. No one here-and-now can figure out how to fix the problem, because the code for `time-forward' is so hairy. We're using M-x report-future-emacs-bug to request that you folks include more comments when you write it (sometime in 2198 as I recall). Thanks! -Karl Fogel <kfogel@red-bean.com> P.S. You'll be pleased to know that since (time-forward N) still works for N >= 0, we've used it to pre-emptively update configure.in. Emacs now configures and builds on every platform that will ever be made. It wasn't easy, but at least that's one problem out of the way for good. If you'd like the patch, just ask.