aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2010-10-14 11:06:31 +0900
committerKenichi Handa2010-10-14 11:06:31 +0900
commit4505bd02ef18fc8b0c8977a144fbbb28b3701e33 (patch)
tree9e16bb4384e567c90c2dce34ab72b48c1f05547c /src
parent7ca9cfdaabe5c7dcc151f5da19b1fc7fd2b703e6 (diff)
parent9fa828240d621736a61f5938f78cc98805fdcf56 (diff)
downloademacs-4505bd02ef18fc8b0c8977a144fbbb28b3701e33.tar.gz
emacs-4505bd02ef18fc8b0c8977a144fbbb28b3701e33.zip
merge emacs-23
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog24
-rw-r--r--src/ChangeLog.232
-rw-r--r--src/ChangeLog.38
-rw-r--r--src/ChangeLog.56
-rw-r--r--src/ChangeLog.76
-rw-r--r--src/ChangeLog.82
-rw-r--r--src/ChangeLog.916
-rw-r--r--src/ccl.c4
-rw-r--r--src/dispextern.h2
-rw-r--r--src/font.c55
-rw-r--r--src/font.h7
-rw-r--r--src/frame.h2
-rw-r--r--src/ftfont.c43
-rw-r--r--src/nsterm.m10
-rw-r--r--src/print.c2
-rw-r--r--src/regex.c2
-rw-r--r--src/w32font.c23
-rw-r--r--src/w32uniscribe.c2
18 files changed, 152 insertions, 94 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9ce5007d3b3..40c0cb231e4 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,19 @@
12010-10-13 Damyan Pepper <damyanp@gmail.com>
2
3 Fix handling of font properties on Windows (bug#6303).
4 * font.c (font_filter_properties): New function, refactored from
5 ftfont_filter_properties.
6 * font.h (font_filter_properties): Declare.
7 * ftfont.c (ftfont_filter_properties): Use font_filter_properties.
8 * w32font.c (w32font_booleans, w32font_non_booleans): New variables.
9 (w32font_filter_properties): New function.
10 (w32font_driver): Add w32font_filter_properties.
11
122010-10-12 Juanma Barranquero <lekktu@gmail.com>
13
14 * font.c (Ffont_variation_glyphs):
15 * ccl.c (Fccl_execute_on_string): Fix typo in docstring.
16
12010-10-10 Jan Djärv <jan.h.d@swipnet.se> 172010-10-10 Jan Djärv <jan.h.d@swipnet.se>
2 18
3 * nsterm.m (Qleft): Declare. 19 * nsterm.m (Qleft): Declare.
@@ -134,7 +150,7 @@
134 (x_produce_glyphs): Simplify by using the same code for ASCII and 150 (x_produce_glyphs): Simplify by using the same code for ASCII and
135 non-ASCII characters. Don't set it->char_to_display here. 151 non-ASCII characters. Don't set it->char_to_display here.
136 Don't handle unibyte-display-via-language-environment here. For a 152 Don't handle unibyte-display-via-language-environment here. For a
137 charater of no glyph, use font->space_width instead of FONT_WIDTH. 153 character of no glyph, use font->space_width instead of FONT_WIDTH.
138 154
1392010-08-29 Kenichi Handa <handa@m17n.org> 1552010-08-29 Kenichi Handa <handa@m17n.org>
140 156
@@ -171,7 +187,7 @@
171 * charset.c: Include <stdlib.h> 187 * charset.c: Include <stdlib.h>
172 (struct charset_sort_data): New struct. 188 (struct charset_sort_data): New struct.
173 (charset_compare): New function. 189 (charset_compare): New function.
174 (Fsort_charsets): New funciton. 190 (Fsort_charsets): New function.
175 (syms_of_charset): Declare Fsort_charsets as a Lisp function. 191 (syms_of_charset): Declare Fsort_charsets as a Lisp function.
176 192
177 * coding.c (decode_coding_iso_2022): Fix checking of dimension 193 * coding.c (decode_coding_iso_2022): Fix checking of dimension
@@ -13872,7 +13888,7 @@
13872 (Ffont_shape_text): New function. 13888 (Ffont_shape_text): New function.
13873 (Fopen_font): If the font size is not given, use 12-pixel. 13889 (Fopen_font): If the font size is not given, use 12-pixel.
13874 (Ffont_at): New arg STRING. 13890 (Ffont_at): New arg STRING.
13875 (syms_of_font): Initalize font_charset_alist. 13891 (syms_of_font): Initialize font_charset_alist.
13876 Declare Ffont_shape_text as a Lisp function. Call syms_of_XXfont 13892 Declare Ffont_shape_text as a Lisp function. Call syms_of_XXfont
13877 conditionally. 13893 conditionally.
13878 13894
@@ -14869,7 +14885,7 @@
14869 14885
14870 * font.c (font_unparse_fcname): Fix typo (swidth->width). 14886 * font.c (font_unparse_fcname): Fix typo (swidth->width).
14871 (font_list_entities): Check driver_list->on. 14887 (font_list_entities): Check driver_list->on.
14872 (register_font_driver): Initalize `on' member to 0. 14888 (register_font_driver): Initialize `on' member to 0.
14873 (font_update_drivers): New function. 14889 (font_update_drivers): New function.
14874 (Fclear_font_cache): Check driver_list->on. 14890 (Fclear_font_cache): Check driver_list->on.
14875 14891
diff --git a/src/ChangeLog.2 b/src/ChangeLog.2
index 265cc95e60d..d90e326f970 100644
--- a/src/ChangeLog.2
+++ b/src/ChangeLog.2
@@ -683,7 +683,7 @@
683 (That `select' saw something on channel 0 doesn't mean it is 683 (That `select' saw something on channel 0 doesn't mean it is
684 kbd input; it could be an expose event.) 684 kbd input; it could be an expose event.)
685 685
686 * keyboard.c (read_avail_input) [FIONREAD]: Now static. 686 * keyboard.c (read_avail_input) [FIONREAD]: Now static.
687 New arg specifies value of NREAD; 687 New arg specifies value of NREAD;
688 if it is nonzero, don't call get_input_pending to get it. 688 if it is nonzero, don't call get_input_pending to get it.
689 Use kbd_buffer_store_char to put chars into kbd_buffer. 689 Use kbd_buffer_store_char to put chars into kbd_buffer.
@@ -1210,7 +1210,7 @@
1210 Remove #ifndef VMS around the sleep when buffer is full. 1210 Remove #ifndef VMS around the sleep when buffer is full.
1211 * s-vms.h: Define nonstandard PENDING_OUTPUT_COUNT for VMS use. 1211 * s-vms.h: Define nonstandard PENDING_OUTPUT_COUNT for VMS use.
1212 1212
1213 * fileio.c (file_name_as_directory) [VMS]: Fix 3rd arg to strncmp. 1213 * fileio.c (file_name_as_directory) [VMS]: Fix 3rd arg to strncmp.
1214 1214
12151987-07-17 Paul Rubin (phr@prep) 12151987-07-17 Paul Rubin (phr@prep)
1216 1216
@@ -1442,7 +1442,7 @@
1442 Turn on call to vmserrstr. 1442 Turn on call to vmserrstr.
1443 * sysdep.c (vmserrstr) [VMS]: Define this function. 1443 * sysdep.c (vmserrstr) [VMS]: Define this function.
1444 1444
1445 * process.c (create_process) [IRIS]: Don't open the pty's tty 1445 * process.c (create_process) [IRIS]: Don't open the pty's tty
1446 in the parent process. Open only once, in the child. 1446 in the parent process. Open only once, in the child.
1447 1447
1448 * xdisp.c (redisplay_window): If window-start points nowhere, 1448 * xdisp.c (redisplay_window): If window-start points nowhere,
@@ -1544,8 +1544,8 @@
1544 1544
15451987-05-05 Richard Mlynarik (mly@prep) 15451987-05-05 Richard Mlynarik (mly@prep)
1546 1546
1547 * m-irist.h: New version from raible@orville.arpa 1547 * m-irist.h: New version from raible@orville.arpa
1548 * s-iris3-5.h: New file. (s-usg5-2 with additions) 1548 * s-iris3-5.h: New file. (s-usg5-2 with additions)
1549 1549
1550 * keyboard.c: 1550 * keyboard.c:
1551 IRIS, like HPUX, #defines but does not implement FIONREAD. 1551 IRIS, like HPUX, #defines but does not implement FIONREAD.
@@ -1563,10 +1563,10 @@
15631987-04-27 Richard Mlynarik (mly@prep) 15631987-04-27 Richard Mlynarik (mly@prep)
1564 1564
1565 * fileio.c (APOLLO from lnz): 1565 * fileio.c (APOLLO from lnz):
1566 Fcopy_file, Fset_file_modes: Don't use un*x modes if 1566 (Fcopy_file, Fset_file_modes): Don't use un*x modes if
1567 env var USE_DOMAIN_ACLS is set. 1567 env var USE_DOMAIN_ACLS is set.
1568 Fset_file_modes: utimes fix. 1568 (Fset_file_modes): utimes fix.
1569 Finsert_file_contents: Must do fstat after open for Apollo. 1569 (Finsert_file_contents): Must do fstat after open for Apollo.
1570 1570
1571 * emacs.c (main): (APOLLO from lnz): 1571 * emacs.c (main): (APOLLO from lnz):
1572 Don't use un*x modes if env var USE_DOMAIN_ACLS set. 1572 Don't use un*x modes if env var USE_DOMAIN_ACLS set.
@@ -1675,7 +1675,7 @@
1675 1675
16761987-03-20 Richard Mlynarik (mly@prep) 16761987-03-20 Richard Mlynarik (mly@prep)
1677 1677
1678 * filemode.c: Hacks for set-uid/gid but not executable. 1678 * filemode.c: Hacks for set-uid/gid but not executable.
1679 1679
16801987-03-20 Richard M. Stallman (rms@prep) 16801987-03-20 Richard M. Stallman (rms@prep)
1681 1681
@@ -1966,7 +1966,7 @@
1966 1966
19671987-02-22 Richard M. Stallman (rms@prep) 19671987-02-22 Richard M. Stallman (rms@prep)
1968 1968
1969 * dispnew.c (Fopen_termscript): Close existing termscript 1969 * dispnew.c (Fopen_termscript): Close existing termscript
1970 file before trying to open a new one. Report open failure 1970 file before trying to open a new one. Report open failure
1971 with report_file_error. 1971 with report_file_error.
1972 1972
@@ -2071,9 +2071,9 @@
2071 2071
20721987-02-10 Richard Mlynarik (mly@prep) 20721987-02-10 Richard Mlynarik (mly@prep)
2073 2073
2074 * xfns.c (Fx_get_default): Add (unsigned char *) cast. 2074 * xfns.c (Fx_get_default): Add (unsigned char *) cast.
2075 2075
2076 * window.c: typo. 2076 * window.c: Typo.
2077 2077
20781987-02-09 Richard M. Stallman (rms@prep) 20781987-02-09 Richard M. Stallman (rms@prep)
2079 2079
@@ -2853,7 +2853,7 @@
2853 local variables for more register decls. Compute 2853 local variables for more register decls. Compute
2854 and pass `envlen' arg to child_setup. 2854 and pass `envlen' arg to child_setup.
2855 2855
2856 * process.c (create_process): Compute and pass `envlen' arg 2856 * process.c (create_process): Compute and pass `envlen' arg
2857 to child_setup. 2857 to child_setup.
2858 2858
2859 * xterm.c (x_term_init): Don't call XPopUpWindow at all. 2859 * xterm.c (x_term_init): Don't call XPopUpWindow at all.
@@ -3998,7 +3998,7 @@
3998 * editfns.c (Fuser_uid, Fuser_real_uid): 3998 * editfns.c (Fuser_uid, Fuser_real_uid):
3999 New functions that return values of geteuid and getuid system calls. 3999 New functions that return values of geteuid and getuid system calls.
4000 4000
4001 * dired.c (Ffile_attributes): Value has additional element 4001 * dired.c (Ffile_attributes): Value has additional element
4002 t iff file gid would change if Emacs deletes it and recreates it. 4002 t iff file gid would change if Emacs deletes it and recreates it.
4003 4003
4004 * xdisp.c (display_mode_element): 4004 * xdisp.c (display_mode_element):
@@ -4078,7 +4078,7 @@
4078 being unbound. struct catchtag has two new fields, 4078 being unbound. struct catchtag has two new fields,
4079 gcpro and pdlcount. 4079 gcpro and pdlcount.
4080 4080
4081 * eval.c (Fthrow, Fsignal): Use unbind_catch before longjmp. 4081 * eval.c (Fthrow, Fsignal): Use unbind_catch before longjmp.
4082 4082
4083 * eval.c (internal_catch): No need to restore anything 4083 * eval.c (internal_catch): No need to restore anything
4084 from the catchtag after throw, because unbind_catch does it all. 4084 from the catchtag after throw, because unbind_catch does it all.
@@ -4657,7 +4657,7 @@
4657 4657
4658 * fileio.c (Ffile_newer_than_file_p): New Lisp primitive. 4658 * fileio.c (Ffile_newer_than_file_p): New Lisp primitive.
4659 4659
4660 * fileio.c (Ffile_exists_p): this is now distinct from 4660 * fileio.c (Ffile_exists_p): This is now distinct from
4661 Ffile_readable_p; it checks only for existence, not for 4661 Ffile_readable_p; it checks only for existence, not for
4662 readability. 4662 readability.
4663 4663
diff --git a/src/ChangeLog.3 b/src/ChangeLog.3
index fbe3f752aed..11c818f18d9 100644
--- a/src/ChangeLog.3
+++ b/src/ChangeLog.3
@@ -5146,7 +5146,7 @@
5146 Change mouse movement events to be arranged like click events. 5146 Change mouse movement events to be arranged like click events.
5147 (format_modifiers): Note that the click modifier has no 5147 (format_modifiers): Note that the click modifier has no
5148 written representation. 5148 written representation.
5149 (modifier_names, modifer_symbols): New variables, used to 5149 (modifier_names, modifier_symbols): New variables, used to
5150 create the Qevent_symbol_elements property. 5150 create the Qevent_symbol_elements property.
5151 (modify_event_symbol): Change the format of the modified 5151 (modify_event_symbol): Change the format of the modified
5152 symbol cache; there are too many modifier bits now to use a 5152 symbol cache; there are too many modifier bits now to use a
@@ -5154,8 +5154,8 @@
5154 Document the format of the cache. 5154 Document the format of the cache.
5155 Put the Qevent_symbol_elements property on each new symbol, 5155 Put the Qevent_symbol_elements property on each new symbol,
5156 instead of a Qevent_unmodified property. 5156 instead of a Qevent_unmodified property.
5157 (symbols_of_keyboard): Put Qevent_symbol_elements properties on 5157 (symbols_of_keyboard): Put Qevent_symbol_elements properties on the
5158 the symbols specified in head_table, not Qevent_unmodifed properties. 5158 symbols specified in head_table, not Qevent_unmodified properties.
5159 Initialize and staticpro modifier_symbols, and staticpro the 5159 Initialize and staticpro modifier_symbols, and staticpro the
5160 window elements of button_down_location. 5160 window elements of button_down_location.
5161 5161
@@ -11207,7 +11207,7 @@
11207 events to send the function key number instead of a symbol. 11207 events to send the function key number instead of a symbol.
11208 * keyboard.c (modify_event_symbol): Re-arranged to work well 11208 * keyboard.c (modify_event_symbol): Re-arranged to work well
11209 with function key/mouse button numbers instead of symbols. 11209 with function key/mouse button numbers instead of symbols.
11210 And if (MODIFIERS & up_modifer), prepend "U-" to the name of the 11210 And if (MODIFIERS & up_modifier), prepend "U-" to the name of the
11211 symbol being constructed. 11211 symbol being constructed.
11212 (make_lispy_event): Use the new modify_event_symbol. 11212 (make_lispy_event): Use the new modify_event_symbol.
11213 11213
diff --git a/src/ChangeLog.5 b/src/ChangeLog.5
index d30bd1bdb00..89d43526609 100644
--- a/src/ChangeLog.5
+++ b/src/ChangeLog.5
@@ -3107,7 +3107,7 @@
3107 3107
3108 * lisp.h (enum Lisp_Type): Lisp_Process, Lisp_Window, Lisp_Frame, 3108 * lisp.h (enum Lisp_Type): Lisp_Process, Lisp_Window, Lisp_Frame,
3109 Lisp_Subr deleted. 3109 Lisp_Subr deleted.
3110 (PSEUDOVECTORP, GC_PSEUDOVECTORP): Add paren for proper nesting. 3110 (PSEUDOVECTORP, GC_PSEUDOVECTORP): Add paren for proper nesting.
3111 (PROCESSP, GC_PROCESSP, XSETPROCESS): Rewrite to use pseudovectors. 3111 (PROCESSP, GC_PROCESSP, XSETPROCESS): Rewrite to use pseudovectors.
3112 (WINDOWP, GC_WINDOWP, XSETWINDOW): Likewise. 3112 (WINDOWP, GC_WINDOWP, XSETWINDOW): Likewise.
3113 (FRAMEP, GC_FRAMEP): Likewise. 3113 (FRAMEP, GC_FRAMEP): Likewise.
@@ -4093,7 +4093,7 @@
4093 4093
4094 * xterm.h: Delete X10 code. 4094 * xterm.h: Delete X10 code.
4095 4095
4096 * xfns.c (Fx_create_frame): Don't increment refernce_count 4096 * xfns.c (Fx_create_frame): Don't increment reference_count
4097 until the frame is put on the frame list. 4097 until the frame is put on the frame list.
4098 4098
4099 * xterm.c (x_initialize): Init x_noop_count, x_focus_frame 4099 * xterm.c (x_initialize): Init x_noop_count, x_focus_frame
@@ -7039,7 +7039,7 @@
7039 7039
70401994-06-07 Richard Stallman (rms@mole.gnu.ai.mit.edu) 70401994-06-07 Richard Stallman (rms@mole.gnu.ai.mit.edu)
7041 7041
7042 * mips-siemens.h: Include pyramid.h, not mips.h. 7042 * mips-siemens.h: Include pyramid.h, not mips.h.
7043 (LOAD_AVE_TYPE, LOAD_AVE_CVT): Definitions deleted. 7043 (LOAD_AVE_TYPE, LOAD_AVE_CVT): Definitions deleted.
7044 (NO_ARG_ARRAY, HAVE_ALLOCA): Defined. 7044 (NO_ARG_ARRAY, HAVE_ALLOCA): Defined.
7045 (BROKEN_FIONREAD): Add #undef. 7045 (BROKEN_FIONREAD): Add #undef.
diff --git a/src/ChangeLog.7 b/src/ChangeLog.7
index 6cc3d0f9e3e..b5927108808 100644
--- a/src/ChangeLog.7
+++ b/src/ChangeLog.7
@@ -491,7 +491,7 @@
491 491
492 * xselect.c (selection_data_to_lisp_data): Set 492 * xselect.c (selection_data_to_lisp_data): Set
493 Vlast_coding_system_used. 493 Vlast_coding_system_used.
494 (lisp_data_to_selection_data): Likewize. 494 (lisp_data_to_selection_data): Likesize.
495 495
4961998-07-07 Richard Stallman <rms@psilocin.ai.mit.edu> 4961998-07-07 Richard Stallman <rms@psilocin.ai.mit.edu>
497 497
@@ -502,7 +502,7 @@
502 * editfns.c (Fformat): Replace explicit numeric constants with 502 * editfns.c (Fformat): Replace explicit numeric constants with
503 proper macros. 503 proper macros.
504 504
505 * fns.c (concat): Likewize. 505 * fns.c (concat): Likewise.
506 506
5071998-07-06 Kenichi Handa <handa@etl.go.jp> 5071998-07-06 Kenichi Handa <handa@etl.go.jp>
508 508
@@ -1040,7 +1040,7 @@
1040 1040
1041 * lread.c: Remember the last TWO strings skipped with #@. 1041 * lread.c: Remember the last TWO strings skipped with #@.
1042 (prev_saved_doc_string*): New variables. 1042 (prev_saved_doc_string*): New variables.
1043 (Fload): Initalize prev_saved_doc_string. 1043 (Fload): Initialize prev_saved_doc_string.
1044 (read1): Copy saved_doc_string to prev_saved_doc_string 1044 (read1): Copy saved_doc_string to prev_saved_doc_string
1045 before storing a new string in saved_doc_string. 1045 before storing a new string in saved_doc_string.
1046 (read_list): Look in prev_saved_doc_string as well as 1046 (read_list): Look in prev_saved_doc_string as well as
diff --git a/src/ChangeLog.8 b/src/ChangeLog.8
index 6da7b6862a5..eeaae29db52 100644
--- a/src/ChangeLog.8
+++ b/src/ChangeLog.8
@@ -3686,7 +3686,7 @@
3686 * lread.c (read_escape): For Control modifier, pay attention to 3686 * lread.c (read_escape): For Control modifier, pay attention to
3687 multibyte character. 3687 multibyte character.
3688 (read1): Likewise. Signal error or a multibyte character which 3688 (read1): Likewise. Signal error or a multibyte character which
3689 has a modifer bit. Check validity of Shift modifer. 3689 has a modifier bit. Check validity of Shift modifier.
3690 3690
3691 * charset.c (non_ascii_char_to_string): Handle modifier bits as 3691 * charset.c (non_ascii_char_to_string): Handle modifier bits as
3692 the same as Lisp reader. 3692 the same as Lisp reader.
diff --git a/src/ChangeLog.9 b/src/ChangeLog.9
index b161a21eb72..a56c1a2c088 100644
--- a/src/ChangeLog.9
+++ b/src/ChangeLog.9
@@ -3896,7 +3896,7 @@
3896 3896
38972001-01-07 Dave Love <fx@gnu.org> 38972001-01-07 Dave Love <fx@gnu.org>
3898 3898
3899 * keyboard.c (Fread_key_sequence_vector): Avoid newline in 3899 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
3900 arglist, for documentation's sake. 3900 arglist, for documentation's sake.
3901 3901
39022001-01-06 Andrew Innes <andrewi@gnu.org> 39022001-01-06 Andrew Innes <andrewi@gnu.org>
@@ -4180,7 +4180,7 @@
4180 what's displayed in the window. 4180 what's displayed in the window.
4181 4181
4182 * xdisp.c (try_window_reusing_current_matrix) 4182 * xdisp.c (try_window_reusing_current_matrix)
4183 <new start <= old start>: Disable rows in the current matrix 4183 <new start <= old start>: Disable rows in the current matrix
4184 which are below the window after scrolling. 4184 which are below the window after scrolling.
4185 4185
4186 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P 4186 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
@@ -5480,7 +5480,7 @@
5480 * lisp.h (pos_visible_p): Change prototype. 5480 * lisp.h (pos_visible_p): Change prototype.
5481 5481
5482 * dispextern.h (CURRENT_MODE_LINE_HEIGHT) 5482 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
5483 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height 5483 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
5484 and current_header_line_height first. 5484 and current_header_line_height first.
5485 (current_mode_line_height, current_header_line_height): 5485 (current_mode_line_height, current_header_line_height):
5486 Declare extern. 5486 Declare extern.
@@ -6683,7 +6683,7 @@
6683 (create_offscreen_bitmap): New function. 6683 (create_offscreen_bitmap): New function.
6684 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs. 6684 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
6685 6685
6686 * w32term.c (x_produce_glyphs): If the distance from the current 6686 * w32term.c (x_produce_glyphs): If the distance from the current
6687 position to the next tab stop is less than a canonical character 6687 position to the next tab stop is less than a canonical character
6688 width, use the tab stop after that. 6688 width, use the tab stop after that.
6689 (x_draw_glyphs): Handle case START and END are out of bounds more 6689 (x_draw_glyphs): Handle case START and END are out of bounds more
@@ -7536,7 +7536,7 @@
7536 CYCLE_CHECK arguments. 7536 CYCLE_CHECK arguments.
7537 (merge_face_vector_with_property, Finternal_merge_in_global_face) 7537 (merge_face_vector_with_property, Finternal_merge_in_global_face)
7538 (lookup_named_face, lookup_derived_face, realize_named_face) 7538 (lookup_named_face, lookup_derived_face, realize_named_face)
7539 (face_at_string_position, face_at_buffer_position): Supply 7539 (face_at_string_position, face_at_buffer_position): Supply
7540 new F and CYCLE_CHECK arguments to merge_face_vectors. 7540 new F and CYCLE_CHECK arguments to merge_face_vectors.
7541 (merge_face_heights): New function. 7541 (merge_face_heights): New function.
7542 (merge_face_vectors, merge_face_vector_with_property) 7542 (merge_face_vectors, merge_face_vector_with_property)
@@ -7826,7 +7826,7 @@
7826 (x_compute_glyph_string_overhangs): Incomplete body removed, as 7826 (x_compute_glyph_string_overhangs): Incomplete body removed, as
7827 the X way of doing this will not work for W32. 7827 the X way of doing this will not work for W32.
7828 (w32_intersect_rectangles): Removed. Use IntersectRect API call. 7828 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
7829 (x_draw_image_foreground): Avoid drawing outside of the clip area 7829 (x_draw_image_foreground): Avoid drawing outside of the clip area
7830 when image doesn't have a mask. 7830 when image doesn't have a mask.
7831 (note_mouse_highlight): Process overlays in the right order of 7831 (note_mouse_highlight): Process overlays in the right order of
7832 priority. Set help_echo_window. 7832 priority. Set help_echo_window.
@@ -10156,7 +10156,7 @@
10156 (encode_coding_string): Likewise. 10156 (encode_coding_string): Likewise.
10157 10157
10158 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2> 10158 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
10159 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and 10159 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
10160 eight-bit-graphic correctly. 10160 eight-bit-graphic correctly.
10161 10161
101622000-05-24 Kenichi HANDA <handa@etl.go.jp> 101622000-05-24 Kenichi HANDA <handa@etl.go.jp>
@@ -12812,7 +12812,7 @@
12812 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback) 12812 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
12813 (xim_initialize, xim_close) 12813 (xim_initialize, xim_close)
12814 [HAVE_X_I18N && HAVE_X11R6]: New functions. 12814 [HAVE_X_I18N && HAVE_X11R6]: New functions.
12815 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame. 12815 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
12816 (x_term_init) [HAVE_X_I18N]: Call xim_initialize. 12816 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
12817 (x_delete_display) [HAVE_X_I18N]: Call xim_close. 12817 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
12818 12818
diff --git a/src/ccl.c b/src/ccl.c
index c33df9e56de..ac1d7be621c 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -450,7 +450,7 @@ extern int charset_unicode;
450 Therefore, the instruction code range is 0..16384(0x3fff). 450 Therefore, the instruction code range is 0..16384(0x3fff).
451 */ 451 */
452 452
453/* Read a multibyte characeter. 453/* Read a multibyte character.
454 A code point is stored into reg[rrr]. A charset ID is stored into 454 A code point is stored into reg[rrr]. A charset ID is stored into
455 reg[RRR]. */ 455 reg[RRR]. */
456 456
@@ -2058,7 +2058,7 @@ If R0..R7 are nil, they are initialized to 0.
2058If IC is nil, it is initialized to head of the CCL program. 2058If IC is nil, it is initialized to head of the CCL program.
2059 2059
2060If optional 4th arg CONTINUE is non-nil, keep IC on read operation 2060If optional 4th arg CONTINUE is non-nil, keep IC on read operation
2061when read buffer is exausted, else, IC is always set to the end of 2061when read buffer is exhausted, else, IC is always set to the end of
2062CCL-PROGRAM on exit. 2062CCL-PROGRAM on exit.
2063 2063
2064It returns the contents of write buffer as a string, 2064It returns the contents of write buffer as a string,
diff --git a/src/dispextern.h b/src/dispextern.h
index 076d9055859..ca91c5b6812 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1873,7 +1873,7 @@ struct composition_it
1873 are not iterating over a composition now. */ 1873 are not iterating over a composition now. */
1874 int id; 1874 int id;
1875 /* If non-negative, character that triggers the automatic 1875 /* If non-negative, character that triggers the automatic
1876 composition at `stop_pos', and this is an automatic compositoin. 1876 composition at `stop_pos', and this is an automatic composition.
1877 If negative, this is a static composition. This is set to -2 1877 If negative, this is a static composition. This is set to -2
1878 temporarily if searching of composition reach a limit or a 1878 temporarily if searching of composition reach a limit or a
1879 newline. */ 1879 newline. */
diff --git a/src/font.c b/src/font.c
index 765712198fe..77f43c81d71 100644
--- a/src/font.c
+++ b/src/font.c
@@ -3862,6 +3862,59 @@ font_get_frame_data (f, driver)
3862} 3862}
3863 3863
3864 3864
3865/* Sets attributes on a font. Any properties that appear in ALIST and
3866 BOOLEAN_PROPERTIES or NON_BOOLEAN_PROPERTIES are set on the font.
3867 BOOLEAN_PROPERTIES and NON_BOOLEAN_PROPERTIES are NULL-terminated
3868 arrays of strings. This function is intended for use by the font
3869 drivers to implement their specific font_filter_properties. */
3870void
3871font_filter_properties (font, alist, boolean_properties, non_boolean_properties)
3872 Lisp_Object font;
3873 Lisp_Object alist;
3874 const char *boolean_properties[];
3875 const char *non_boolean_properties[];
3876{
3877 Lisp_Object it;
3878 int i;
3879
3880 /* Set boolean values to Qt or Qnil */
3881 for (i = 0; boolean_properties[i] != NULL; ++i)
3882 for (it = alist; ! NILP (it); it = XCDR (it))
3883 {
3884 Lisp_Object key = XCAR (XCAR (it));
3885 Lisp_Object val = XCDR (XCAR (it));
3886 char *keystr = SDATA (SYMBOL_NAME (key));
3887
3888 if (strcmp (boolean_properties[i], keystr) == 0)
3889 {
3890 const char *str = INTEGERP (val) ? (XINT (val) ? "true" : "false")
3891 : SYMBOLP (val) ? (const char *) SDATA (SYMBOL_NAME (val))
3892 : "true";
3893
3894 if (strcmp ("false", str) == 0 || strcmp ("False", str) == 0
3895 || strcmp ("FALSE", str) == 0 || strcmp ("FcFalse", str) == 0
3896 || strcmp ("off", str) == 0 || strcmp ("OFF", str) == 0
3897 || strcmp ("Off", str) == 0)
3898 val = Qnil;
3899 else
3900 val = Qt;
3901
3902 Ffont_put (font, key, val);
3903 }
3904 }
3905
3906 for (i = 0; non_boolean_properties[i] != NULL; ++i)
3907 for (it = alist; ! NILP (it); it = XCDR (it))
3908 {
3909 Lisp_Object key = XCAR (XCAR (it));
3910 Lisp_Object val = XCDR (XCAR (it));
3911 char *keystr = SDATA (SYMBOL_NAME (key));
3912 if (strcmp (non_boolean_properties[i], keystr) == 0)
3913 Ffont_put (font, key, val);
3914 }
3915}
3916
3917
3865/* Return the font used to draw character C by FACE at buffer position 3918/* Return the font used to draw character C by FACE at buffer position
3866 POS in window W. If STRING is non-nil, it is a string containing C 3919 POS in window W. If STRING is non-nil, it is a string containing C
3867 at index POS. If C is negative, get C from the current buffer or 3920 at index POS. If C is negative, get C from the current buffer or
@@ -4634,7 +4687,7 @@ DEFUN ("font-variation-glyphs", Ffont_variation_glyphs, Sfont_variation_glyphs,
4634 doc: /* Return a list of variation glyphs for CHAR in FONT-OBJECT. 4687 doc: /* Return a list of variation glyphs for CHAR in FONT-OBJECT.
4635Each element of the value is a cons (VARIATION-SELECTOR . GLYPH-ID), 4688Each element of the value is a cons (VARIATION-SELECTOR . GLYPH-ID),
4636where 4689where
4637 VARIATION-SELECTOR is a chracter code of variation selection 4690 VARIATION-SELECTOR is a character code of variation selection
4638 (#xFE00..#xFE0F or #xE0100..#xE01EF) 4691 (#xFE00..#xFE0F or #xE0100..#xE01EF)
4639 GLYPH-ID is a glyph code of the corresponding variation glyph. */) 4692 GLYPH-ID is a glyph code of the corresponding variation glyph. */)
4640 (font_object, character) 4693 (font_object, character)
diff --git a/src/font.h b/src/font.h
index 952ea269495..14b1abc4de8 100644
--- a/src/font.h
+++ b/src/font.h
@@ -574,7 +574,7 @@ struct font_driver
574 FONT-ENTITY and it must be opened to check it, return -1. */ 574 FONT-ENTITY and it must be opened to check it, return -1. */
575 int (*has_char) P_ ((Lisp_Object font, int c)); 575 int (*has_char) P_ ((Lisp_Object font, int c));
576 576
577 /* Return a glyph code of FONT for characer C (Unicode code point). 577 /* Return a glyph code of FONT for character C (Unicode code point).
578 If FONT doesn't have such a glyph, return FONT_INVALID_CODE. */ 578 If FONT doesn't have such a glyph, return FONT_INVALID_CODE. */
579 unsigned (*encode_char) P_ ((struct font *font, int c)); 579 unsigned (*encode_char) P_ ((struct font *font, int c));
580 580
@@ -814,6 +814,11 @@ extern int font_put_frame_data P_ ((FRAME_PTR f,
814extern void *font_get_frame_data P_ ((FRAME_PTR f, 814extern void *font_get_frame_data P_ ((FRAME_PTR f,
815 struct font_driver *driver)); 815 struct font_driver *driver));
816 816
817extern void font_filter_properties (Lisp_Object font,
818 Lisp_Object alist,
819 const char *boolean_properties[],
820 const char *non_boolean_properties[]);
821
817#ifdef HAVE_FREETYPE 822#ifdef HAVE_FREETYPE
818extern struct font_driver ftfont_driver; 823extern struct font_driver ftfont_driver;
819#endif /* HAVE_FREETYPE */ 824#endif /* HAVE_FREETYPE */
diff --git a/src/frame.h b/src/frame.h
index 887d47eff21..8f5e47c40a5 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -306,7 +306,7 @@ struct frame
306 /* Canonical X unit. Width of default font, in pixels. */ 306 /* Canonical X unit. Width of default font, in pixels. */
307 int column_width; 307 int column_width;
308 308
309 /* Widht of space glyph of default font, in pixels. */ 309 /* Width of space glyph of default font, in pixels. */
310 int space_width; 310 int space_width;
311 311
312 /* Canonical Y unit. Height of a line, in pixels. */ 312 /* Canonical Y unit. Height of a line, in pixels. */
diff --git a/src/ftfont.c b/src/ftfont.c
index 33a96143fd0..4699c74470f 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -88,7 +88,7 @@ static Lisp_Object ftfont_lookup_cache P_ ((Lisp_Object,
88 enum ftfont_cache_for)); 88 enum ftfont_cache_for));
89 89
90static void ftfont_filter_properties P_ ((Lisp_Object font, Lisp_Object alist)); 90static void ftfont_filter_properties P_ ((Lisp_Object font, Lisp_Object alist));
91 91
92Lisp_Object ftfont_font_format P_ ((FcPattern *, Lisp_Object)); 92Lisp_Object ftfont_font_format P_ ((FcPattern *, Lisp_Object));
93 93
94#define SYMBOL_FcChar8(SYM) (FcChar8 *) SDATA (SYMBOL_NAME (SYM)) 94#define SYMBOL_FcChar8(SYM) (FcChar8 *) SDATA (SYMBOL_NAME (SYM))
@@ -264,7 +264,7 @@ ftfont_pattern_entity (p, extra)
264 else 264 else
265 { 265 {
266 /* As this font is not scalable, parhaps this is a BDF or PCF 266 /* As this font is not scalable, parhaps this is a BDF or PCF
267 font. */ 267 font. */
268 FT_Face ft_face; 268 FT_Face ft_face;
269 269
270 ASET (entity, FONT_ADSTYLE_INDEX, get_adstyle_property (p)); 270 ASET (entity, FONT_ADSTYLE_INDEX, get_adstyle_property (p));
@@ -2113,7 +2113,7 @@ ftfont_drive_otf (font, spec, in, from, to, out, adjustment)
2113 return to; 2113 return to;
2114} 2114}
2115 2115
2116static int 2116static int
2117ftfont_try_otf (MFLTFont *font, MFLTOtfSpec *spec, 2117ftfont_try_otf (MFLTFont *font, MFLTOtfSpec *spec,
2118 MFLTGlyphString *in, int from, int to) 2118 MFLTGlyphString *in, int from, int to)
2119{ 2119{
@@ -2681,42 +2681,7 @@ ftfont_filter_properties (font, alist)
2681 Lisp_Object font; 2681 Lisp_Object font;
2682 Lisp_Object alist; 2682 Lisp_Object alist;
2683{ 2683{
2684 Lisp_Object it; 2684 font_filter_properties (font, alist, ftfont_booleans, ftfont_non_booleans);
2685 int i;
2686
2687 /* Set boolean values to Qt or Qnil */
2688 for (i = 0; ftfont_booleans[i] != NULL; ++i)
2689 for (it = alist; ! NILP (it); it = XCDR (it))
2690 {
2691 Lisp_Object key = XCAR (XCAR (it));
2692 Lisp_Object val = XCDR (XCAR (it));
2693 char *keystr = SDATA (SYMBOL_NAME (key));
2694
2695 if (strcmp (ftfont_booleans[i], keystr) == 0)
2696 {
2697 char *str = SYMBOLP (val) ? SDATA (SYMBOL_NAME (val)) : NULL;
2698 if (INTEGERP (val)) str = XINT (val) != 0 ? "true" : "false";
2699 if (str == NULL) str = "true";
2700
2701 val = Qt;
2702 if (strcmp ("false", str) == 0 || strcmp ("False", str) == 0
2703 || strcmp ("FALSE", str) == 0 || strcmp ("FcFalse", str) == 0
2704 || strcmp ("off", str) == 0 || strcmp ("OFF", str) == 0
2705 || strcmp ("Off", str) == 0)
2706 val = Qnil;
2707 Ffont_put (font, key, val);
2708 }
2709 }
2710
2711 for (i = 0; ftfont_non_booleans[i] != NULL; ++i)
2712 for (it = alist; ! NILP (it); it = XCDR (it))
2713 {
2714 Lisp_Object key = XCAR (XCAR (it));
2715 Lisp_Object val = XCDR (XCAR (it));
2716 char *keystr = SDATA (SYMBOL_NAME (key));
2717 if (strcmp (ftfont_non_booleans[i], keystr) == 0)
2718 Ffont_put (font, key, val);
2719 }
2720} 2685}
2721 2686
2722 2687
diff --git a/src/nsterm.m b/src/nsterm.m
index fc933c099e8..d1b984d5382 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -145,24 +145,24 @@ Lisp_Object Qalt, Qcontrol, Qhyper, Qmeta, Qsuper, Qnone;
145extern Lisp_Object Qcursor_color, Qcursor_type, Qns, Qleft; 145extern Lisp_Object Qcursor_color, Qcursor_type, Qns, Qleft;
146 146
147/* Specifies which emacs modifier should be generated when NS receives 147/* Specifies which emacs modifier should be generated when NS receives
148 the Alternate modifer. May be Qnone or any of the modifier lisp symbols. */ 148 the Alternate modifier. May be Qnone or any of the modifier lisp symbols. */
149Lisp_Object ns_alternate_modifier; 149Lisp_Object ns_alternate_modifier;
150 150
151/* Specifies which emacs modifier should be generated when NS receives 151/* Specifies which emacs modifier should be generated when NS receives
152 the right Alternate modifer. Has same values as ns_alternate_modifier plus 152 the right Alternate modifier. Has same values as ns_alternate_modifier plus
153 the value Qleft which means whatever value ns_alternate_modifier has. */ 153 the value Qleft which means whatever value ns_alternate_modifier has. */
154Lisp_Object ns_right_alternate_modifier; 154Lisp_Object ns_right_alternate_modifier;
155 155
156/* Specifies which emacs modifier should be generated when NS receives 156/* Specifies which emacs modifier should be generated when NS receives
157 the Command modifer. May be any of the modifier lisp symbols. */ 157 the Command modifier. May be any of the modifier lisp symbols. */
158Lisp_Object ns_command_modifier; 158Lisp_Object ns_command_modifier;
159 159
160/* Specifies which emacs modifier should be generated when NS receives 160/* Specifies which emacs modifier should be generated when NS receives
161 the Control modifer. May be any of the modifier lisp symbols. */ 161 the Control modifier. May be any of the modifier lisp symbols. */
162Lisp_Object ns_control_modifier; 162Lisp_Object ns_control_modifier;
163 163
164/* Specifies which emacs modifier should be generated when NS receives 164/* Specifies which emacs modifier should be generated when NS receives
165 the Function modifer (laptops). May be any of the modifier lisp symbols. */ 165 the Function modifier (laptops). May be any of the modifier lisp symbols. */
166Lisp_Object ns_function_modifier; 166Lisp_Object ns_function_modifier;
167 167
168/* Control via default 'GSFontAntiAlias' on OS X and GNUstep. */ 168/* Control via default 'GSFontAntiAlias' on OS X and GNUstep. */
diff --git a/src/print.c b/src/print.c
index ccbf8d8c0c7..43f17a7c15d 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1450,7 +1450,7 @@ static void print_check_string_charset_prop ();
1450#define PRINT_STRING_NON_CHARSET_FOUND 1 1450#define PRINT_STRING_NON_CHARSET_FOUND 1
1451#define PRINT_STRING_UNSAFE_CHARSET_FOUND 2 1451#define PRINT_STRING_UNSAFE_CHARSET_FOUND 2
1452 1452
1453/* Bitwize or of the abobe macros. */ 1453/* Bitwise or of the above macros. */
1454static int print_check_string_result; 1454static int print_check_string_result;
1455 1455
1456static void 1456static void
diff --git a/src/regex.c b/src/regex.c
index 85ff9b99604..7d12089fea2 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -4145,7 +4145,7 @@ analyse_first (p, pend, fastmap, multibyte)
4145 && match_any_multibyte_characters == false) 4145 && match_any_multibyte_characters == false)
4146 { 4146 {
4147 /* Set fastmap[I] to 1 where I is a leading code of each 4147 /* Set fastmap[I] to 1 where I is a leading code of each
4148 multibyte characer in the range table. */ 4148 multibyte character in the range table. */
4149 int c, count; 4149 int c, count;
4150 unsigned char lc1, lc2; 4150 unsigned char lc1, lc2;
4151 4151
diff --git a/src/w32font.c b/src/w32font.c
index e93dbca2ddb..e38e1a56fb8 100644
--- a/src/w32font.c
+++ b/src/w32font.c
@@ -346,7 +346,7 @@ w32font_has_char (entity, c)
346} 346}
347 347
348/* w32 implementation of encode_char for font backend. 348/* w32 implementation of encode_char for font backend.
349 Return a glyph code of FONT for characer C (Unicode code point). 349 Return a glyph code of FONT for character C (Unicode code point).
350 If FONT doesn't have such a glyph, return FONT_INVALID_CODE. 350 If FONT doesn't have such a glyph, return FONT_INVALID_CODE.
351 351
352 For speed, the gdi backend uses unicode (Emacs calls encode_char 352 For speed, the gdi backend uses unicode (Emacs calls encode_char
@@ -2446,6 +2446,25 @@ in the font selection dialog. */)
2446 return DECODE_SYSTEM (build_string (buf)); 2446 return DECODE_SYSTEM (build_string (buf));
2447} 2447}
2448 2448
2449static const char *w32font_booleans [] = {
2450 NULL,
2451};
2452
2453static const char *w32font_non_booleans [] = {
2454 ":script",
2455 ":antialias",
2456 ":style",
2457 NULL,
2458};
2459
2460static void
2461w32font_filter_properties (font, alist)
2462 Lisp_Object font;
2463 Lisp_Object alist;
2464{
2465 font_filter_properties (font, alist, w32font_booleans, w32font_non_booleans);
2466}
2467
2449struct font_driver w32font_driver = 2468struct font_driver w32font_driver =
2450 { 2469 {
2451 0, /* Qgdi */ 2470 0, /* Qgdi */
@@ -2475,7 +2494,7 @@ struct font_driver w32font_driver =
2475 NULL, /* shape */ 2494 NULL, /* shape */
2476 NULL, /* check */ 2495 NULL, /* check */
2477 NULL, /* get_variation_glyphs */ 2496 NULL, /* get_variation_glyphs */
2478 NULL, /* filter_properties */ 2497 w32font_filter_properties,
2479 }; 2498 };
2480 2499
2481 2500
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index cfdf629ceee..9cd1ac6426c 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -448,7 +448,7 @@ uniscribe_shape (lgstring)
448} 448}
449 449
450/* Uniscribe implementation of encode_char for font backend. 450/* Uniscribe implementation of encode_char for font backend.
451 Return a glyph code of FONT for characer C (Unicode code point). 451 Return a glyph code of FONT for character C (Unicode code point).
452 If FONT doesn't have such a glyph, return FONT_INVALID_CODE. */ 452 If FONT doesn't have such a glyph, return FONT_INVALID_CODE. */
453static unsigned 453static unsigned
454uniscribe_encode_char (font, c) 454uniscribe_encode_char (font, c)