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.