From: Miles Bader Date: Thu, 14 Sep 2006 09:24:00 +0000 (+0000) Subject: Merge from emacs--devo--0 X-Git-Tag: emacs-pretest-23.0.90~8295^2~749 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=863153c57b164f79f030f34dba6953a3d0d60097;p=emacs.git Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 427-436) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 134-136) - Merge from emacs--devo--0 - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-110 --- 863153c57b164f79f030f34dba6953a3d0d60097 diff --cc src/casetab.c index 15bf133a869,8c46ab11c60..517f24de014 --- a/src/casetab.c +++ b/src/casetab.c @@@ -283,15 -253,18 +283,18 @@@ init_casetab_once ( up = Fmake_char_table (Qcase_table, Qnil); XCHAR_TABLE (down)->extras[0] = up; - for (i = 0; i < CHAR_TABLE_SINGLE_BYTE_SLOTS; i++) - XSETFASTINT (XCHAR_TABLE (up)->contents[i], - ((i >= 'A' && i <= 'Z') - ? i + ('a' - 'A') - : ((i >= 'a' && i <= 'z') - ? i + ('A' - 'a') - : i))); + for (i = 0; i < 128; i++) + { + int c = ((i >= 'A' && i <= 'Z') ? i + ('a' - 'A') + : ((i >= 'a' && i <= 'z') ? i + ('A' - 'a') + : i));; + CHAR_TABLE_SET (up, i, make_number (c)); + } XCHAR_TABLE (down)->extras[2] = Fcopy_sequence (up); + + /* Fill in what isn't filled in. */ + set_case_table (down, 1); } void diff --cc src/search.c index d826e2e1b05,2063e7d95ba..ce9fa958910 --- a/src/search.c +++ b/src/search.c @@@ -131,9 -134,42 +131,12 @@@ compile_pattern_1 (cp, pattern, transla cp->regexp = Qnil; cp->buf.translate = (! NILP (translate) ? translate : make_number (0)); cp->posix = posix; - cp->buf.multibyte = multibyte; + cp->buf.multibyte = STRING_MULTIBYTE (pattern); + cp->buf.target_multibyte = multibyte; cp->whitespace_regexp = Vsearch_spaces_regexp; + /* Doing BLOCK_INPUT here has the effect that + the debugger won't run if an error occurs. + Why is BLOCK_INPUT needed here? */ BLOCK_INPUT; old = re_set_syntax (RE_SYNTAX_EMACS | (posix ? 0 : RE_NO_POSIX_BACKTRACKING)); diff --cc src/xterm.c index bb87b377d22,9858d55f4d5..a75140fb9e3 --- a/src/xterm.c +++ b/src/xterm.c @@@ -2864,35 -2689,23 +2864,36 @@@ x_draw_glyph_string (s if (!XGetFontProperty (s->font, XA_UNDERLINE_THICKNESS, &h)) h = 1; - y = s->y + s->height - h; - if (!x_underline_at_descent_line) - { - /* Get the underline position. This is the recommended - vertical offset in pixels from the baseline to the top of - the underline. This is a signed value according to the - specs, and its default is - - ROUND ((maximum descent) / 2), with - ROUND(x) = floor (x + 0.5) */ - - if (x_use_underline_position_properties - && XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem)) - y = s->ybase + (long) tem; - else if (s->face->font) - y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2; - } +#ifdef USE_FONT_BACKEND + if (enable_font_backend) + { + if (s->face->font) + /* In the future, we must use information of font. */ + y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2; + else + y = s->y + s->height - h; + } + else +#endif - if (x_underline_at_descent_line) - y = s->y + s->height - h; - else - { - /* Get the underline position. This is the recommended - vertical offset in pixels from the baseline to the top of - the underline. This is a signed value according to the - specs, and its default is - - ROUND ((maximum descent) / 2), with - ROUND(x) = floor (x + 0.5) */ - - if (x_use_underline_position_properties - && XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem)) - y = s->ybase + (long) tem; - else if (s->face->font) - y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2; - } ++ { ++ y = s->y + s->height - h; ++ if (!x_underline_at_descent_line) ++ { ++ /* Get the underline position. This is the recommended ++ vertical offset in pixels from the baseline to the top of ++ the underline. This is a signed value according to the ++ specs, and its default is ++ ++ ROUND ((maximum descent) / 2), with ++ ROUND(x) = floor (x + 0.5) */ ++ ++ if (x_use_underline_position_properties ++ && XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem)) ++ y = s->ybase + (long) tem; ++ else if (s->face->font) ++ y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2; ++ } ++ } if (s->face->underline_defaulted_p) XFillRectangle (s->display, s->window, s->gc,