From: Miles Bader Date: Tue, 2 May 2006 05:51:52 +0000 (+0000) Subject: Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-58 X-Git-Tag: emacs-pretest-23.0.90~8295^2~964 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fe682fb2f05fcbd9fcd2d12c2110719adcfcb58a;p=emacs.git Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-58 Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 239-258) - Update from CVS - (Ffield_beginning, find_field): Undo change of 2006-04-23. - Rcirc patch from Ryan Yeske - Merge from gnus--rel--5.10 - Clean up lisp/gnus/ChangeLog a bit * gnus--rel--5.10 (patch 91-98) - Merge from emacs--devo--0 - Update from CVS --- fe682fb2f05fcbd9fcd2d12c2110719adcfcb58a diff --cc src/frame.c index 914bc5abf65,c08d5a6f84d..3efd04bf110 --- a/src/frame.c +++ b/src/frame.c @@@ -1,5 -1,5 +1,5 @@@ /* Generic frame functions. -- Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, ++ Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, 2006, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Emacs. @@@ -3092,10 -3092,15 +3092,16 @@@ x_set_font (f, arg, oldval if (old_fontset == FRAME_FONTSET (f)) return; } - else if (!NILP (Fequal (result, oldval))) + store_frame_param (f, Qfont, result); ++ + if (!NILP (Fequal (result, oldval))) return; + /* Recalculate toolbar height. */ + f->n_tool_bar_rows = 0; + /* Ensure we redraw it. */ + clear_current_matrices (f); + - store_frame_param (f, Qfont, result); recompute_basic_faces (f); } else diff --cc src/macterm.c index b7a7fadeab2,60b5545d510..8ddd8febd69 --- a/src/macterm.c +++ b/src/macterm.c @@@ -2135,10 -2169,32 +2171,33 @@@ XTreset_terminal_modes ( /* Function prototypes of this page. */ static XCharStruct *x_per_char_metric P_ ((XFontStruct *, XChar2b *)); -static int mac_encode_char P_ ((int, XChar2b *, struct font_info *, int *)); +static int mac_encode_char P_ ((int, XChar2b *, struct font_info *, + struct charset *, int *)); + static void + pcm_init (pcm, count) + XCharStruct *pcm; + int count; + { + bzero (pcm, sizeof (XCharStruct) * count); + while (--count >= 0) + { + pcm->descent = PCM_INVALID; + pcm++; + } + } + + static enum pcm_status + pcm_get_status (pcm) + XCharStruct *pcm; + { + int height = pcm->ascent + pcm->descent; + + /* Negative height means some special status. */ + return height >= 0 ? PCM_VALID : height; + } + /* Get metrics of character CHAR2B in FONT. Value is null if CHAR2B is not contained in the font. */ diff --cc src/syntax.c index f8d50d1e5b4,1c8d0debbf3..3f6058e3b1a --- a/src/syntax.c +++ b/src/syntax.c @@@ -2344,10 -2123,8 +2344,8 @@@ between them, return t; otherwise retur while (1) { DEC_BOTH (from, from_byte); - if (from == stop) - break; UPDATE_SYNTAX_TABLE_BACKWARD (from); - c = FETCH_CHAR (from_byte); + c = FETCH_CHAR_AS_MULTIBYTE (from_byte); if (SYNTAX (c) == Scomment_fence && !char_quoted (from, from_byte)) { diff --cc src/xdisp.c index 1689ec88be5,ecc097343f2..63a1338b2cb --- a/src/xdisp.c +++ b/src/xdisp.c @@@ -19008,10 -18925,10 +19039,10 @@@ get_char_face_and_encoding (f, c, face_ /* Unibyte case. We don't have to encode, but we have to make sure to use a face suitable for unibyte. */ STORE_XCHAR2B (char2b, 0, c); - face_id = FACE_FOR_CHAR (f, face, c); + face_id = FACE_FOR_CHAR (f, face, c, -1, Qnil); face = FACE_FROM_ID (f, face_id); } - else if (c < 128 && face_id < BASIC_FACE_ID_SENTINEL) + else if (c < 128) { /* Case of ASCII in a face known to fit ASCII. */ STORE_XCHAR2B (char2b, 0, c);