comparison src/ChangeLog @ 91376:0e2ade584fbb merge-unicode-to-trunk

Merge ChangeLog.unicode files into ChangeLogs Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1038
author Miles Bader <miles@gnu.org>
date Fri, 01 Feb 2008 16:05:01 +0000
parents 8feaae3c4e31
children 1225d81ff93b
comparison
equal deleted inserted replaced
91375:4bb19b57806d 91376:0e2ade584fbb
1 2008-02-02 Jason Rumney <jasonr@gnu.org>
2
3 * w32term.c (w32_read_socket) <WM_CHAR>: Decode non-Unicode
4 input in the default locale. Handle non-Unicode multibyte input.
5
6 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
7
8 * fontset.c (reorder_font_vector): Exclude nil elements from the
9 font group. Don't try multiple fonts.
10 (fontset_font): Adjusted for the above change.
11 (Finternal_char_font): Return nil if the found font doesn't
12 contain the character ch.
13
14 * Makefile.in (lisp): Add cham.el.
15 (shortlisp): Likewise.
16
17 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
18
19 * font.h (FONTP): Make it return 1 also for a font-object.
20
21 * .gdbinit (xfontset): New function.
22
23 * font.c (font_find_for_lface): Check if the character C is
24 supported or not only for the first font.
25
26 * fontset.c (reorder_font_vector): Fix typo.
27 (fontset_find_font): Don't add a font-spec specifying a script.
28 Use 0 (not Qt) for the indication of empty font-group. Change the
29 format of RFONT-DEF. Return Qt if no font in the font-group
30 support the character.
31 (fontset_font): Adjusted for the above change. If no font was
32 found the character, remember that.
33 (face_for_char): Adjusted for the change of RFONT-DEF.
34 (Fset_fontset_font): Allow nil for FONT-SPEC to explicitly specify
35 no font for the target.
36 (Finternal_char_font): Adjusted for the change of RFONT-DEF.
37
38 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
39
40 * font.c (font_load_for_face): Handle the case that the font in
41 face->lface is a string.
42
43 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
44
45 * xfaces.c (set_lface_from_font_and_fontset): Set the fontname in
46 lface.
47
48 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
49
50 * xfaces.c (Finternal_set_lisp_face_attribute) [USE_FONT_BACKEND]:
51 Fix previous change. If the frame is not on a window system,
52 signal an error.
53
54 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
55
56 * coding.c (decode_coding_object): Adjuste marker positions after
57 conversion.
58 (encode_coding_object): Likewise.
59
60 * lisp.h (struct Lisp_Marker): New member need_adjustment.
61
62 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
63
64 * font.c (font_find_for_lface): Fix the handling of the return
65 value of font_has_char.
66 (Ffont_shape_text): Fix previous change.
67
68 * fontset.c (FONTSET_REF_AND_RANGE): Delete it.
69 (fontset_ref_and_range): Delete it.
70 (fontset_find_font): Call char_table_ref_and_range instead of
71 FONTSET_REF_AND_RANGE.
72 (make_fontset): Don't setup font groups of Latin here.
73 (Fset_fontset_font): Don't overwrite the setting of FONTSET_ASCII.
74 (new_fontset_from_font): Make the specified font the default for
75 all Latin characters.
76
77 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
78
79 * xfaces.c (Finternal_set_lisp_face_attribute): Check if the frame
80 is on a window system before accessing the fontset of the frame.
81
82 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
83
84 * Makefile.in (lisp): Add kherm.el and myanmar.el.
85 (shortlisp): Likewise.
86
87 * ftfont.c (ftfont_driver): Set ftfont_shape in ftfont_driver only
88 when both HAVE_M17N_FLT and HAVE_LIBOTF are defined.
89
90 * font.c (Ffont_shape_text): If the font driver doesn't have a
91 shaper function, make zero-width glyphs to have at least one-pixel
92 width. Fix setting of `to' field of glyphs.
93
94 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
95
96 * ftfont.c (ftfont_drive_otf): Fix setting of FROM and TO slots of
97 glyphs.
98
99 * font.h (struct font_driver): Docstring of member `shape' is
100 improved.
101
102 2008-02-02 Kenichi Handa <handa@m17n.org>
103
104 * composite.c (syms_of_composite): Fix docstring of
105 auto-composition-function.
106
107 * font.h (LGLYPH_SIZE): New macro.
108
109 * font.c (Ffont_fill_gstring): Stop filling when a character not
110 supported by the font is found.
111 (Ffont_shape_text): When a shape callback function returns nil,
112 try at most two more times with larger gstring.
113 (Ffont_at): Fix getting of w. Call font_at with correct 5th
114 argument.
115
116 * xdisp.c (handle_auto_composed_prop): Change the argument to
117 auto-composition-function.
118
119 * ftfont.c (ftfont_encode_char): Use the macro FONT_INVALID_CODE.
120 (ftfont_shape_by_flt): If an element of lgstring is nil, make a
121 Lispy glyph and store it in the lgstring.
122
123 * xfont.c (xfont_encode_char): Use the macro FONT_INVALID_CODE.
124
125 * xftfont.c (xftfont_encode_char): Use the macro FONT_INVALID_CODE.
126
127 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
128
129 * font.c (Ffont_shape_text): Avoid unnecessary composition.
130
131 * fontset.c (Vfont_encoding_charset_alist): New variable.
132 (syms_of_fontset): DEFVAR it.
133 (reorder_font_vector): Optimize for the case of no need of
134 reordring.
135 (fontset_find_font): Likewise.
136 (face_for_char): Map the charset property by
137 Vfont_encoding_charset_alist.
138
139 2008-02-02 Jason Rumney <jasonr@gnu.org>
140
141 * w32font.c (logfonts_match): Don't check adstyle here.
142 (font_matches_spec): Check here against physical font instead.
143 (add_font_entity_to_list): Avoid some substitutions.
144
145 * font.c (font_parse_fcname): Default weight and slant to normal.
146 (font_score): Prefer normal fonts if weight or slant unspecified.
147 (font_score) [WINDOWSNT]: Scale weight difference down to closer
148 match freetype scores.
149
150 2008-02-02 Jason Rumney <jasonr@gnu.org>
151
152 * w32font.c (w32font_text_extents): Don't use the frame stored in the
153 font, as it may have been deleted.
154 (w32_enumfont_pattern_entity): Map generic family to adstyle using
155 most common hyphenless variation.
156 (logfonts_match): Check generic family.
157 (font_matches_spec): Don't check generic family here.
158 (fill_in_logfont): Set generic family based on adstyle.
159
160 * w32font.h (w32font_get_cache): Update declaration.
161
162 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
163
164 * ftfont.c (ftfont_get_cache): Adjust the argument type.
165
166 * frame.c (x_set_font_backend): Don't call Fclear_font_cache. If
167 none of the new drivers are available, call font_update_drviers
168 with the old drivers.
169
170 * w32font.c (w32font_get_cache): Adjust the argument type.
171
172 * xfont.c (xfont_get_cache): Adjust the argument type.
173
174 * font.h (struct font_driver): Change argument type of get_cache.
175
176 * xftfont.c (xftfont_start_for_frame): Delete prototype.
177
178 * font.c (Ffont_get): Fix arguments to Fassoc.
179 (font_prepare_cache, font_finish_cache, font_get_cache): New
180 functions.
181 (font_clear_cache): New function.
182 (font_list_entities): Use font_get_cache.
183 (font_matching_entity): Likewise.
184 (font_update_drivers): Call font_clear_cache when finishing a
185 driver.
186
187 * fontset.c (fontset_find_font): Fix previous change.
188
189 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
190
191 * xterm.c (x_check_font) [USE_FONT_BACKEND]: Don't access
192 dpyinfo->font_table.
193 (x_delete_display) [USE_FONT_BACKEND]: Likewise.
194 (x_delete_terminal) [USE_FONT_BACKEND]: Likewise
195
196 * font.c (font_at): Handle the case that the arg C is negative.
197 Handle the unibyte case.
198 (Ffont_at): Call font_at with the arg C -1.
199
200 * xdisp.c (handle_auto_composed_prop): Don't get a character at
201 the position here, and call font_at with the arg C -1. Don't
202 check the range of the existing composition at the point.
203
204 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
205
206 * fontset.c (fontset_add): New args charset_id and famliy. Caller
207 changed.
208 (load_font_get_repertory): Assume that font_spec is always a
209 font-spec object.
210 (fontset_find_font): Likewise.
211 (Fset_fontset_font): Always store a font-spec object in a fontset.
212
213 * xdisp.c (handle_auto_composed_prop): Use Fget_text_property
214 instead of get_property_and_range.
215
216 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
217
218 * xftfont.c (struct xftfont_info): Delete the member ft_face.
219 (xftfont_open): Don't keep locking face.
220 (xftfont_close): Don't unlock face.
221 (xftfont_anchor_point): Lock and unlock face.
222 (xftfont_shape): Likewise.
223
224 * fontset.c (fontset_find_font): Don't prefer a font of
225 supplementary charset.
226
227 2008-02-02 Kenichi Handa <handa@m17n.org>
228
229 * ftfont.c (struct OpenTypeSpec): Members script_tag renamed to
230 script, langsys_tag renamed to langsys, new member script.
231 (OTF_TAG_STR): Terminate by '\0'.
232 (ftfont_get_open_type_spec): If :otf prop is is spec, Limit the
233 listing to the script specified in that property. Fix arg to
234 OTF_check_features.
235
236 2008-02-02 Jason Rumney <jasonr@gnu.org>
237
238 * w32font.h: New file.
239
240 * w32font.c: Include it.
241 (struct w32font_info): Add owning_frame field. Move to w32font.h.
242 (w32font_open): Set owning_frame.
243 (w32font_text_extents): Use owning_frame.
244 (struct font_callback_data): Add opentype_only field.
245 (add_font_entity_to_list): Use it to filter fonts.
246 Don't check against full name.
247 (w32font_list_internal): New function.
248 (w32font_list): Use it.
249 (w32font_match_internal): New function.
250 (w32font_match): Use it.
251 (w32font_open_internal): New function.
252 (w32font_open): Use it.
253 (w32font_get_cache, w32font_close, w32font_has_char)
254 (w32font_encode_char, w32font_text_extents, w32font_draw):
255 Make non-static.
256
257 * makefile.w32-in (w32font.o): Depend on w32font.h.
258
259 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
260
261 * charset.c (Fdefine_charset_internal): Record a supplementary
262 charset at the tail of Vcharset_order_list.
263
264 * font.c (Ffont_shape_text): Fix the return value.
265
266 * ftfont.c (OTF_SYM_TAG, OTF_TAG_STR): Fix argument names.
267
268 * xdisp.c (handle_auto_composed_prop): Fix previous change.
269
270 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
271
272 * ftfont.c (struct OpenTypeSpec): New struct.
273 (OTF_SYM_TAG, OTF_TAG_STR): New macros.
274 (ftfont_get_open_type_spec): New function.
275 (ftfont_list) [HAVE_LIBOTF]: Check otf-spec property.
276
277 * lread.c (read1): Redo the previous change with checking
278 Vpurify_flag.
279
280 2008-02-02 Jason Rumney <jasonr@gnu.org>
281
282 * w32font.c (add_font_entity_to_list): Compare only the beginning
283 of full name.
284
285 2008-02-02 Kenichi Handa <handa@m17n.org>
286
287 * xdisp.c (handle_auto_composed_prop): Simplify the code. Never
288 return HANDLED_RECOMPUTE_PROPS.
289
290 2008-02-02 Kenichi Handa <handa@m17n.org>
291
292 * font.c (font_gstring_produce): Delete it.
293
294 * composite.h (COMPOSITION_METHOD): Handle
295 COMPOSITION_WITH_GLYPH_STRING.
296
297 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
298
299 * xfont.c (Qx): Deleted.
300 (syms_of_xfont): Don't initialize Qx.
301
302 * composite.h (enum composition_method): Define
303 COMPOSITION_WITH_GLYPH_STRING unconditionally.
304
305 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
306
307 * xfaces.c [HAVE_WINDOW_SYSTEM]: Include "font.h" unconditionally.
308 (choose_face_font): Accept new form of font-spec.
309
310 * frame.h (font_driver_list): Declare it unconditionally.
311 (struct frame): Define members font_driver_list and font_data_list
312 unconditionally.
313
314 * fontset.c: Include "font.h" unconditionally.
315 (generate_ascii_font_name): Use font_parse_xlfd and
316 font_unparse_xlfd.
317 (Fset_fontset_font): Accept a font-spec object.
318
319 * font.c (font_unparse_xlfd): If pixel_size is zero, make the
320 PIXEL_SIZE part a wild card.
321
322 * dispextern.h (struct glyph_string): Define members clip and
323 num_clips unconditionally.
324 (struct face): Define members font_info and extra unconditionally.
325
326 * ftfont.c (ftfont_open): Set members maybe_otf and otf of
327 ftfont_info only when HAVE_LIBOTF is defined.
328
329 >>>>>>> 1.1.2.202
330 2008-02-02 Andreas Schwab <schwab@suse.de>
331
332 * xdisp.c (back_to_previous_visible_line_start): Fix type of beg
333 and end.
334
335 2008-02-02 Jason Rumney <jasonr@gnu.org>
336
337 * w32font.c (w32font_driver): Add new fields.
338
339 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
340
341 * config.in: Re-generated.
342
343 * Makefile.in (ALL_CFLAGS): Add @M17N_FLT_CFLAGS@.
344 (FONTSRC, FONTOBJ) [HAVE_WINDOW_SYSTEM]: Set them unconditionally.
345 (LIBES): Add @M17N_FLT_CFLAGS@.
346
347 * composite.c (compose_text): Don't treat the new style
348 composition specially.
349
350 * emacs.c (main): Call syms_of_font unconditionally.
351
352 * font.h (FONT_ENTITY_NOT_LOADABLE)
353 (FONT_ENTITY_SET_NOT_LOADABLE): New macros.
354 (LGSTRING_XXXX, LGLYPH_XXX): Adjusted for the change of lispy
355 gstring.
356 (struct font_driver): New member shape.
357 (font_registry_charsets): Extern. it.
358 (font_find_for_lface): Prototype adjusted.
359 (font_prepare_composition): Likewise.
360 (font_otf_capability, font_drive_otf): Delete their externs.
361
362 * font.c [HAVE_M17N_FLT]: Include <m17n-flt.h>.
363 (font_charset_alist): Moved from xfont.c and renamed.
364 (font_registry_charsets): Likewise.
365 (font_prop_validate_otf): New function.
366 (font_property_table): Register it for QCotf.
367 (DEVICE_DELTA, adjust_anchor, REPLACEMENT_CHARACTER)
368 (font_drive_otf): Deleted.
369 (font_prepare_composition): New arg F. Adjusted for the change of
370 lispy gstring.
371 (font_find_for_lface): New arg C.
372 (font_load_for_face): Adjusted for the change of
373 font_find_for_lface.
374 (Ffont_make_gstring): Adjusted for the change of lispy gstring.
375 (Ffont_fill_gstring): Likewise.
376 (Ffont_shape_text): New function.
377 (Fopen_font): If the font size is not given, use 12-pixel.
378 (Ffont_at): New arg STRING.
379 (syms_of_font): Initalize font_charset_alist. Declare
380 Ffont_shape_text as a Lisp function. Call syms_of_XXfont
381 conditionally.
382
383 * fontset.c (fontset_find_font) [USE_FONT_BACKEND]: Try multiple
384 fonts of the same font-spec. Change the format of RFONT-DEF.
385 (face_for_char): Adjusted for the change of RFONT-DEF.
386 (make_fontset_for_ascii_face): Likewise.
387 (Finternal_char_font): Likewise.
388 (Fset_fontset_font) [USE_FONT_BACKEND]: Handle new format of
389 font-spec.
390
391 * ftfont.h: New file.
392
393 * ftfont.c: Don't include Freetype headers. Include "ftfont.h".
394 (struct ftfont_info) [HAVE_LIBOTF]: New members maybe_otf and otf.
395 (ftfont_open) [HAVE_LIBOTF]: Initialize the above members.
396 (ftfont_driver) [HAVE_LIBOTF, HAVE_M17N_FLT]: Don't set
397 font_otf_capability and font_drive_otf, set ftfont_shape.
398 (ftfont_list): Adjusted for the change of :otf property value.
399 (struct MFLTFontFT) [HAVE_LIBOTF, HAVE_M17N_FLT]: New struct.
400 (ftfont_get_glyph_id, ftfont_get_metrics, ftfont_check_otf)
401 (adjust_anchor, ftfont_drive_otf, ftfont_shape_by_flt)
402 (ftfont_shape) [HAVE_LIBOTF, HAVE_M17N_FLT]: New function.s
403 (DEVICE_DELTA) [HAVE_LIBOTF, HAVE_M17N_FLT]: New macro.
404 (otf_gstring, gstring, m17n_flt_initialized): New variables.
405
406 * w32term.c (x_draw_composite_glyph_string_foreground): Adjusted
407 for the change of lispy gstring.
408
409 * xdisp.c (handle_composition_prop): Adjusted for the change of
410 lispy gstring. Call a function for auto-composition with the
411 third arg it->window.
412 (fill_composite_glyph_string): Adjusted for the change of lispy
413 string.
414 (x_produce_glyphs): Adjusted for the change of
415 font_prepare_compositionl.
416
417 * xfaces.c (set_font_frame_param): Adjusted for the change of
418 font_find_for_lface.
419
420 * xfont.c (x_font_charset_alist): Moved to font.c and renamed.
421 (xfont_registry_charsets): Likewise. Caller changed.
422 (syms_of_xfont): Don't handle x_font_charset_alist.
423
424 * xftfont.c: Include "ftfont.h".
425 (struct xftfont_info) [HAVE_LIBOTF]: New members maybe_otf and
426 otf.
427 (xftfont_open) [HAVE_LIBOTF]: Initialize the above members.
428 (xftfont_close) [HAVE_LIBOTF]: Close otf.
429 (xftfont_shape) [HAVE_LIBOTF, HAVE_M17N_FLT]: New function.
430 (syms_of_xftfont) [HAVE_LIBOTF, HAVE_M17N_FLT]: Set
431 xftfont_driver.shape to xftfont_shape.
432
433 * xterm.c (x_draw_composite_glyph_string_foreground): Adjusted for
434 the change of lispy gstring.
435
436 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
437
438 * ftxfont.c (ftxfont_end_for_frame): Fix array indexing error.
439
440 2008-02-02 Jason Rumney <jasonr@gnu.org>
441
442 * w32font.c (w32font_draw): Fill background manually.
443
444 2008-02-02 Jason Rumney <jasonr@gnu.org>
445
446 * font.c (Qfontp): Remove unused symbol.
447 (QCantialias): New symbol.
448 (syms_of_font): Define it.
449 (font_property_table): Set a validator for QCantialias.
450
451 * w32font.c (CLEARTYPE_QUALITY, CLEARTYPE_NATURAL_QUALITY): Define
452 if not already.
453 (QCfamily): Share with xfaces.c.
454 (Qstandard, Qsubpixel, Qnatural): New symbols.
455 (syms_of_w32font): Define them. Don't define QCfamily here.
456 (w32_antialias_type, lispy_antialias_type): New functions.
457 (w32_enumfont_pattern_entity): New arg requested_font.
458 Set antialias parameter if non-default was requested.
459 (fill_in_logfont): Fill in lfQuality if :antialias specified.
460
461 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
462
463 * lread.c (read1): Undo the previous change.
464
465 2008-02-02 CHENG Gao <chenggao@gmail.com> (tiny change)
466
467 * frame.c (Fdelete_frame): Call font_update_drivers only when
468 USE_FONT_BACKEND is defined..
469
470 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
471
472 * font.h (struct font_bitmap): New member bits_per_pixel.
473 (struct font_driver): New members start_for_frame and end_for_frame.
474 (struct font_data_list): New struct.
475 (font_put_frame_data, font_get_frame_data): Extern them.
476
477 * frame.h (struct frame): New member font_data_list.
478
479 * font.c (font_update_drivers): Call driver->start_for_frame and
480 driver->end_for_frame at proper timings.
481 (font_put_frame_data, font_get_frame_data): New functions.
482 (Ffont_spec): Add usage in the docstring.
483
484 * frame.c (make_frame): Initialize f->font_data_list to NULL.
485 (Fdelete_frame): Call font_update_drivers.
486
487 * xftfont.c (struct xftface_info): Delete the member xft_draw.
488 (xftfont_prepare_face): Adjusted for the above change.
489 (xftfont_done_face): Likewise.
490 (xftfont_get_xft_draw): New function.
491 (xftfont_draw): Get XftDraw by xftfont_get_xft_draw.
492 (xftfont_end_for_frame): New function.
493 (syms_of_xftfont): Set xftfont_driver.end_for_frame.
494
495 * ftxfont.c (ftxfont_get_gcs): Renamed from ftxfont_create_gcs.
496 Argument changed. Cache GCs in the per-frame data.
497 (struct ftxfont_frame_data): New struct.
498 (ftxfont_draw_bitmap): New arg gc_fore and flush.
499 (ftxfont_prepare_face, ftxfont_done_face): Delete them.
500 (ftxfont_draw): Get GCs by ftxfont_get_gcs. Reflect s->clip in
501 GCs.
502 (ftxfont_end_for_frame): New function.
503 (syms_of_ftxfont): Set ftxfont_driver.end_for_frame.
504
505 * ftfont.c (ftfont_get_bitmap): Set bitmap->bits_per_pixel.
506
507 2008-02-02 Kenichi Handa <handa@m17n.org>
508
509 * xselect.c (Vselection_coding_system)
510 (Vnext_selection_coding_system): Delete them.
511 (syms_of_xselect): Don't declare selection-coding-system and
512 next-selection-coding-system. They are declared in select.el.
513
514 2008-02-02 Jason Rumney <jasonr@gnu.org>
515
516 * w32term.h (WM_UNICHAR, UNICODE_NOCHAR): Define if not already.
517
518 * w32fns.c: Include imm.h.
519 (get_composition_string_fn, get_ime_context_fn): New optional
520 system functions.
521 (globals_of_w32fns): Load them from imm32.dll.
522 (ignore_ime_char): New flag.
523 (w32_wnd_proc): Handle WM_UNICHAR, WM_IME_CHAR and
524 WM_IME_ENDCOMPOSITION messages.
525
526 * w32term.c (w32_read_socket) [WM_UNICHAR]: Handle as
527 MULTIBYTE_CHAR_KEYSTROKE_EVENT.
528
529 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
530
531 * lread.c (READCHAR): Call readchar with the 2nd arg NULL.
532 (READCHAR_REPORT_MULTIBYTE): New macro.
533 (readchar): New 2nd arg MULTIBYTE.
534 (read1): Use READCHAR_REPORT_MULTIBYTE for the first read. Make
535 symbol's name multibyte according to the multibyteness of the
536 source.
537
538 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
539
540 * xfaces.c (face_for_overlay_string): Call lookup_face with
541 correct arguments (fix of synching with the trunk).
542
543 2008-02-02 Kenichi Handa <handa@m17n.org>
544
545 * font.c (font_prop_validate_symbol): The argument prop_index is
546 deleted.
547 (font_prop_validate_style, font_prop_validate_non_neg)
548 (font_prop_validate_spacing): Likewise.
549 (font_property_table): Arguments to validater changed. Callers
550 changed.
551 (font_lispy_object): Deleted.
552 (font_at): Use font_find_object instead fo font_lispy_object.
553
554 2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
555
556 * fileio.c (Fexpand_file_name): Adjust multibyteness of directory
557 and file names.
558
559 2008-02-02 Jason Rumney <jasonr@gnu.org>
560
561 * w32font.c (add_font_name_to_list): Avoid vertical fonts.
562 (font_matches_spec): Remove debug output.
563 (add_font_entity_to_list): Avoid using substituted fonts.
564
565 2008-02-02 Jason Rumney <jasonr@gnu.org>
566
567 * doc.c (Fsnarf_documentation):
568 * Makefile.in (temacs${EXEEXT}, mostlyclean): Undo last change.
569
570 2008-02-02 Miles Bader <miles@gnu.org>
571
572 * src/dispextern.h (struct glyph_row): Only define "clip" field if
573 HAVE_WINDOW_SYSTEM is defined.
574
575 2008-02-02 Stefan Monnier <monnier@iro.umontreal.ca>
576
577 Fix up multi-tty merge.
578
579 * xterm.c (handle_one_xevent): Remove duplicate code and fix up nesting
580 and indentation.
581
582 * xfaces.c (free_realized_face, clear_face_gcs):
583 Include font_done_for_face in the input_blocked section, just in case.
584
585 * xdisp.c (decode_mode_spec): Use terminal-local coding systems.
586 (get_char_face_and_encoding): Undo last change and remove the *other*
587 duplicate definition (i.e. keep the one that's better scoped and that
588 includes code for the font-backend).
589
590 * terminal.c (create_terminal): Default keyboard_coding to
591 `no-conversion' and terminal_coding to `undecided'.
592
593 * lread.c (read1): Use XSETPVECTYPE to set a pseudovector's tag.
594
595 * fontset.c (free_realized_fontsets): Check that the table entry does
596 contain a fontset before trying to compare it to `base'.
597
598 * emacs.c (main): Move syms_of_data, syms_of_fileio, syms_of_alloc,
599 syms_of_charset, and syms_of_coding earlier because init_window_once
600 now needs Vcoding_system_hash_table to be setup.
601
602 * coding.h (default_buffer_file_coding): Remove.
603
604 * coding.c (default_buffer_file_coding): Remove.
605 (Fterminal_coding_system, Fkeyboard_coding_system): Use ->id rather
606 than ->symbol, and use the terminal-local coding system.
607 (syms_of_coding): Don't setup the coding-systems that are not
608 terminal-local.
609 (Fdefine_coding_system_internal): Use XCAR/XCDR.
610
611 * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
612 Use XSETPVECTYPE now that XSETCHAR_TABLE doesn't set the tag anymore.
613
614 * alloc.c (Fmake_char_table, make_sub_char_table): Remove. They're now
615 in chartab.c and were re-added here by mistake.
616 (Fpurecopy): Use XSETPVECTYPE after copying a COMPILED pseudovector.
617
618 * doc.c (Fsnarf_documentation):
619 * Makefile.in (temacs${EXEEXT}, mostlyclean): Move buildobj.lst from
620 src to etc.
621
622 * ChangeLog.10: Add mistakenly removed entry.
623
624 2008-02-02 Dan Nicolaescu <dann@ics.uci.edu>
625
626 * Makefile.in (fringe.o, minibuf.o): Fix dependencies.
627
628 2008-02-02 Miles Bader <miles@gnu.org>
629
630 * xdisp.c (get_char_face_and_encoding): Remove extraneous definition.
631 Add extra args to FACE_FOR_CHAR.
632
633 2008-02-02 Kenichi Handa <handa@m17n.org>
634
635 * keymap.c (where_is_internal_1): If key is a cons, store the copy
636 in sequence.
637
638 * chartab.c (map_sub_char_table): If the range contains just one
639 character, call the function with that character even if the depth
640 is not 3.
641 (map_char_table): Likewise.
642
643 2008-02-02 Jason Rumney <jasonr@gnu.org>
644
645 * w32font.c (w32font_text_extents): Calculate metrics for the
646 whole string.
647
648 2008-02-02 Jason Rumney <jasonr@gnu.org>
649
650 * w32xfns.c (get_next_msg): Consolidate WM_PAINT messages.
651
652 2008-02-02 Jason Rumney <jasonr@gnu.org>
653
654 * w32term.c (x_set_glyph_string_clipping): Use
655 get_glyph_string_clip_rects.
656 (x_set_glyph_string_clipping_exactly): Adjusted for the change of
657 struct glyph_string.
658 (x_draw_glyph_string): Likewise.
659
660 * w32font.c (w32font_draw): Do clipping here.
661
662 2008-02-02 Kenichi Handa <handa@m17n.org>
663
664 * xftfont.c (xftfont_draw): Adjusted for the change of struct
665 glyph_string.
666
667 * xterm.c (x_set_glyph_string_clipping): Use
668 get_glyph_string_clip_rects.
669 (x_set_glyph_string_clipping_exactly): Adjusted for the change of
670 struct glyph_string.
671 (x_draw_glyph_string): Likewise.
672
673 * xdisp.c (get_glyph_string_clip_rects): Reflect s->row->clip to
674 the resulting clip(s}.
675 (expose_overlaps): Add arg r. Callers changed. Set it ot
676 row->clip temporarily.
677 (expose_window): Redraw rows overlapping the exposed area.
678
679 * dispextern.h (struct glyph_row): New member clip.
680 (struct glyph_string): Delete members clip_x, clip_y, clip_width,
681 clip_height, new member clip, and num_clips.
682
683 2008-02-02 Kenichi Handa <handa@m17n.org>
684
685 * data.c (Fchar_or_string_p): Fix docstring.
686
687 2008-02-02 Kenichi Handa <handa@m17n.org>
688
689 * xftfont.c (xftfont_draw): If s->font_info != s->face->font_info,
690 create a temporal XftDraw object.
691
692 2008-02-02 Kenichi Handa <handa@m17n.org>
693
694 * font.c (Ffontp): Fix docstring.
695
696 * coding.c (detect_coding_iso_2022): Don't treat SI/SO codes as a
697 strong evidence of ISO-2022.
698
699 2008-02-02 Kenichi Handa <handa@m17n.org>
700
701 * abbrev.c (abbrev_check_chars): Use CHAR_TABLE_REF, not
702 SYNTAX_ENTRY_FOLLOW_PARENT.
703
704 2008-02-02 Stefan Monnier <monnier@iro.umontreal.ca>
705
706 * fns.c (weak_hash_tables): Rename from Vweak_hash_tables and change
707 its type.
708 (make_hash_table, copy_hash_table, sweep_weak_hash_tables, init_fns):
709 Update to the new type of weak_hash_tables and next_weak.
710
711 * lisp.h (struct Lisp_Hash_Table): Change next_weak from Lisp_Object to
712 a plain C pointer to Lisp_Hash_Table.
713
714 * lisp.h (XGCTYPE, GC_HASH_TABLE_P, GC_NILP, GC_NUMBERP, GC_NATNUMP)
715 (GC_INTEGERP, GC_SYMBOLP, GC_MISCP, GC_VECTORLIKEP, GC_STRINGP)
716 (GC_CONSP, GC_FLOATP, GC_VECTORP, GC_OVERLAYP, GC_MARKERP)
717 (GC_INTFWDP, GC_BOOLFWDP, GC_OBJFWDP, GC_BUFFER_OBJFWDP)
718 (GC_BUFFER_LOCAL_VALUEP, GC_SOME_BUFFER_LOCAL_VALUEP)
719 (GC_KBOARD_OBJFWDP, GC_PSEUDOVECTORP, GC_WINDOW_CONFIGURATIONP)
720 (GC_PROCESSP, GC_WINDOWP, GC_SUBRP, GC_COMPILEDP, GC_BUFFERP)
721 (GC_SUB_CHAR_TABLE_P, GC_CHAR_TABLE_P, GC_BOOL_VECTOR_P, GC_FRAMEP)
722 (GC_EQ): Remove since they've been identical to their non-GC_
723 alter-egos ever since the markbit was eradicated.
724
725 * src/alloc.c:
726 * src/buffer.c:
727 * src/buffer.h:
728 * src/data.c:
729 * src/fileio.c:
730 * src/filelock.c:
731 * src/fns.c:
732 * src/frame.h:
733 * src/lisp.h:
734 * src/macterm.c:
735 * src/print.c:
736 * src/process.c:
737 * src/w32fns.c:
738 * src/w32menu.c:
739 * src/w32term.c:
740 * src/xfns.c:
741 * src/xmenu.c:
742 * src/xterm.c: Replace uses of GC_* macros with the non-GC_ versions.
743
744 2008-02-02 Kenichi Handa <handa@m17n.org>
745
746 * chartab.c (map_sub_char_table): Make it work for the top-level
747 char-table. Fix handling of parent char-table.
748 (map_char_table): Adjust for the above change.
749
750 2008-02-02 Jason Rumney <jasonr@gnu.org>
751
752 * w32font.c (Qgdi): Rename from Qw32.
753
754 2008-02-02 Jason Rumney <jasonr@gnu.org>
755
756 * w32bdf.c (get_quoted_string): Make function static.
757
758 2008-02-02 Kenichi Handa <handa@m17n.org>
759
760 * xftfont.c (xftfont_open): If one of font's ASCII glyph has
761 bigger ascent and descent than those of the font, use them as
762 font's ascent and descent.
763
764 2008-02-02 Kenichi Handa <handa@m17n.org>
765
766 * Makefile.in (${lispsource}international/charprop.el): Move this
767 target within "#ifdef HAVE_UNIDATA" and "#endif".
768
769 2008-02-02 Kenichi Handa <handa@m17n.org>
770
771 * Makefile.in (lisp): Add ${lispsource}language/tai-viet.el.
772 (shortlisp): Add ../lisp/language/tai-viet.el.
773
774 2008-02-02 Ulrich Mueller <ulm@gentoo.org> (tiny change)
775
776 * Makefile.in (${lispsource}international/charprop.el): Depend on
777 temacs${EXEEXT}.
778
779 2008-02-02 Jason Rumney <jasonr@gnu.org>
780
781 * w32font.c (w32font_close): Delete the GDI font object.
782
783 * w32menu.c: Include character.h
784
785 * w32proc.c: Likewise.
786
787 * w32select.c: Likewise.
788
789 * makefile.w32-in (w32proc.o): Depend on character.h
790
791 2008-02-02 Jason Rumney <jasonr@gnu.org>
792
793 * w32fns.c (syms_of_w32fns): Use DEFSYM macro.
794
795 * w32menu.c (syms_of_w32menu): Likewise.
796
797 * w32proc.c (syms_of_ntproc): Likewise.
798
799 * w32select.c (syms_of_w32select): Likewise.
800
801 * w32term.c (syms_of_w32term): Likewise.
802
803 2008-02-02 Jason Rumney <jasonr@gnu.org>
804
805 * w32font.c (w32font_draw): Delete brush after using it.
806
807 2008-02-02 Jason Rumney <jasonr@gnu.org>
808
809 * w32font.c (w32font_open): Don't set font_idx.
810 (w32font_text_extents): Try GetTextExtentPoint32W before defaulting
811 to font settings.
812 (w32font_draw): Fill background explicitly.
813
814 2008-02-02 Jason Rumney <jasonr@gnu.org>
815
816 * w32term.c (w32_initialize): Don't call w32font_initialize.
817
818 * w32font.c (w32font_info): Remove subranges.
819 (QCsubranges, Qmodern, Qswiss, Qroman): Remove.
820 (QCfamily, Qmonospace, Qsans_serif, Qmono, Qsans, Qsans__serif)
821 (Qraster, Qoutline, Qlatin, Qgreek, Qcoptic, Qcyrillic, Qarmenian)
822 (Qhebrew, Qarabic, Qsyriac, Qnko, Qthaana, Qdevanagari, Qbengali)
823 (Qgurmukhi, Qgujarati, Qoriya, Qtamil, Qtelugu, Qkannada)
824 (Qmalayalam, Qsinhala, Qthai, Qlao, Qtibetan, Qmyanmar, Qgeorgian)
825 (Qhangul, Qethiopic, Qcherokee, Qcanadian_aboriginal, Qogham)
826 (Qrunic, Qkhmer, Qmongolian, Qsymbol, Qbraille, Qhan)
827 (Qideographic_description, Qcjk_misc, Qkana, Qbopomofo, Qkanbun)
828 (Qyi, Qbyzantine_musical_symbol, Qmusical_symbol, Qmathematical):
829 New symbols.
830 (font_callback_data): New struct.
831 (w32font_list, w32font_match): Use it.
832 (w32font_open): Don't populate subranges.
833 (w32font_has_char): Use script Lisp symbols, not subrange bitmask.
834 (w32font_encode_char): Always return unicode code-point as-is.
835 (w32font_text_extents): Supply a tranformation matrix to
836 GetGlyphOutline. Never look up by glyph index. Avoid looping
837 twice. Use unicode version of GetTexExtentPoint32 instead of
838 glyph index version.
839 (set_fonts_frame): Remove
840 (w32_enumfont_pattern_entity): Add frame parameter, use it to
841 set frame parameter. Use backward compatible fake foundries.
842 Save generic family in extra slot under QCfamily. Make width slot
843 constant. Save QCspacing value. Save list of scripts instead of
844 binary subranges.
845 (w32_generic_family, logfonts_match, font_matches_spec): New functions.
846 (add_font_entity_to_list): Use font_callback_data struct. Filter
847 unwanted fonts.
848 (add_one_font_entity_to_list): Use font_callback_data struct.
849 (w32_registry): Default to iso10646_1;
850 (fill_in_logfont): Use dpi from extra slot. Don't bother with
851 string font registries. Don't fill in font name if it is a generic
852 family name, fill family instead. Use spacing, family and script
853 extra info to fill pitch, family and charset fields.
854 (list_all_matching_fonts): Use font_callback_data struct.
855 (unicode_range_for_char): Remove.
856 (font_supported_scripts): New function.
857 (w32font_initialize): Remove.
858 (syms_of_w32font): Update which symbols are defined.
859
860 2008-02-02 Jason Rumney <jasonr@gnu.org>
861
862 * font.c (font_pixel_size): Reverse assq_no_quit args.
863
864 * w32term.h (FONT_WIDTH): Report max width, not average.
865 (FONT_MAX_WIDTH): Remove.
866 (FONT_AVG_WIDTH): New macro.
867
868 * xfaces.c (Fx_list_fonts) [WINDOWSNT]: Remove Windows only
869 redefinition of FONT_WIDTH.
870
871 * w32term.c (x_font_min_bounds): Use FONT_AVG_WIDTH.
872 (w32_cache_char_metrics): Use FONT_WIDTH.
873
874 * w32fns.c (w32_load_system_font, w32_list_fonts): Use FONT_AVG_WIDTH.
875
876 2008-02-02 Jason Rumney <jasonr@gnu.org>
877
878 * w32font.c (w32font_open): Make lfHeight negative.
879
880 * w32fns.c (x_default_font_parameter): Use new style font name.
881 (Fx_create_frame, x_create_tip_frame): Initialize resx and resy.
882
883 2008-02-02 Jason Rumney <jasonr@gnu.org>
884
885 * w32font.c (QCsubranges): New symbol.
886 (w32font_open, w32font_has_char): Get subranges from subproperty
887 of extra.
888 (w32_enumfont_pattern_entity): Set subranges as subproperty of extra.
889 (syms_of_w32font): Define :subranges symbol.
890
891 * font.c (font_put_extra): Expose externally.
892
893 * font.h (font_put_extra): Moved declaration from font.c.
894
895 * font.c (Ffont_get): Use font driver to determine otf capability.
896 (adjust_anchor): Check if driver defines anchor_point before using.
897
898 * w32font.c (w32font_open): Handle size, height and pixel_size better.
899 (w32font_draw): Use options.
900 (w32_enumfont_pattern_entity): Set size to 0 for scalable fonts.
901 Fix detection of truetype fonts.
902 (registry_to_w32_charset): Handle charsets other than iso8859-1
903 expressed as lisp symbols.
904 (w32_registry): Express charset as lisp symbol.
905 (fill_in_logfont): Reverse pixel and point height logic.
906 Don't set width here. Set quality to default.
907
908 * w32fns.c (w32_load_system_font): Fix detecting FIXED_PITCH fonts.
909 (x_to_w32_font): Fill in lfPitchAndFamily correctly.
910
911 * xterm.c (x_draw_glyph_string_foreground) [USE_FONT_BACKEND]:
912 Remove redundant loop and allocation.
913
914 * makefile.w32-in (font.o, w32font.o): New objects.
915 (fontset.o, xdisp.o, xfaces.o, w32fns.o, w32term.o): Depend on font.h
916 (FONTOBJ): New group of objects conditioned on USE_FONT_BACKEND.
917
918 * xdisp.c (fill_composite_glyph_string): Make the first arg to
919 STORE_XCHARB a valid l-value.
920
921 * w32term.c (w32_native_per_char_metric): Swap width and rbearing
922 calculations for non-Truetype fonts.
923 (x_draw_glyph_string): Sync with xterm.c.
924 (x_draw_glyph_string_foreground) [USE_FONT_BACKEND]: Remove
925 redundant code.
926 (w32_initialize) [USE_FONT_BACKEND]: Call w32font_initialize.
927
928 * w32term.h (w32_output_data) [USE_FONT_BACKEND]: Add fontp member.
929 (FRAME_FONT_OBJECT) [USE_FONT_BACKEND]: New macro from xterm.h.
930
931 * w32fns.c [USE_FONT_BACKEND]: Port font backend changes from xfns.c.
932 (x_to_w32_charset, w32_to_x_charset): Expose externally.
933
934 * w32font.c: New file for w32 font backend.
935
936 2008-02-02 Kenichi Handa <handa@m17n.org>
937
938 * term.c: Don't include "buffer.h" twice.
939
940 2008-02-02 Kenichi Handa <handa@m17n.org>
941
942 * syntax.c (skip_syntaxes): Synch with the trunk.
943
944 2008-02-02 Kenichi Handa <handa@m17n.org>
945
946 * character.c (Funibyte_string): New function.
947 (syms_of_character): Defsubr it.
948
949 2008-02-02 Jason Rumney <jasonr@gnu.org>
950
951 * w32term.c [USE_FONT_BACKEND]:
952 (x_get_font_repertory, note_mouse_movement, x_set_mouse_face_gc):
953 (x_set_glyph_string_clipping, x_set_glyph_string_clipping_exactly):
954 (x_draw_glyph_string, x_draw_glyph_string_foreground):
955 (x_draw_composite_glyph_string_foreground, x_new_fontset2):
956 (x_free_frame_resources): Sync with xterm.c.
957
958 2008-02-02 Andreas Schwab <schwab@suse.de>
959
960 * lread.c (read1): Use CHAR_TABLE_STANDARD_SLOTS to validate
961 char-table size.
962
963 2008-02-02 Kenichi Handa <handa@m17n.org>
964
965 * font.c (check_otf_features): Define it regardless of
966 HAVE_LIBOTF.
967
968 2008-02-02 Kenichi Handa <handa@m17n.org>
969
970 * ftfont.c (ftfont_driver): Delete font_otf_gsub and
971 font_otf_gpos, add font_drive_otf.
972
973 * fontset.c (fontset_find_font): Pay attention to font size
974 specified for a font.
975 (reorder_font_vector): Check contents of font_def.
976
977 * font.c (struct otf_list): Delete it.
978 (otf_list): Make it a lisp variable..
979 (otf_open): Use lispy otf_list.
980 (generate_otf_features): Renamed from parse_gsub_gpos_spec.
981 (check_otf_features): New function.
982 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor): New
983 functinos.
984 (font_drive_otf): New function merging font_otf_gsub and
985 font_otf_gpos.
986 (font_open_for_lface): New arg spec. Change argument order.
987 (font_load_for_face): Adjusted for the change of
988 font_open_for_lface.
989 (Ffont_drive_otf): New function merging Ffont_otf_gsub and
990 Ffont_otf_gpos.
991 (syms_of_font): Staticpro otf_list. Delete defsubr of
992 Sfont_otf_gsub and Sfont_otf_gpos. Defsubr Sfont_drive_otf.
993
994 * xfaces.c (set_font_frame_param): Adjusted for the change of
995 font_open_for_lface.
996
997 * font.h (font_open_for_lface): Adjust prototype.
998 (struct font_driver): Delete members otf_gsub and otf_gpos, add
999 member otf_drive.
1000 (font_otf_gsub, font_otf_gpos): Delete externs.
1001 (font_drive_otf): Extern it.
1002
1003 2008-02-02 Kenichi Handa <handa@m17n.org>
1004
1005 * font.c (font_at): If the window W is not on a window system,
1006 return Qnil.
1007
1008 * coding.c (produce_chars): Don't call insert_from_gap if no
1009 characters to produce.
1010 (encode_coding): Likewise.
1011
1012 2008-02-02 Kenichi Handa <handa@m17n.org>
1013
1014 * fontset.c (free_realized_fontsets): Avoid unnecessary call of
1015 Fclear_face_cache.
1016
1017 * xfaces.c (face_for_font): Check also face->font==font->font.font.
1018
1019 2008-02-02 Miles Bader <miles@gnu.org>
1020
1021 * emacs.c (main): Change default value of `enable_font_backend' to 1.
1022 Parse "--disable-font-backend" option.
1023 (standard_args): Add "--disable-font-backend" option.
1024
1025 2008-02-02 Kenichi Handa <handa@m17n.org>
1026
1027 * fontset.c (fontset_find_font): New function.
1028 (fontset_font): Use fontset_find_font.
1029 (make_fontset_for_ascii_face): Don't set face ID in rfont_def.
1030 Register the specified font for all Latin characters.
1031 (new_fontset_from_font): Register the specified font for all Latin
1032 characters.
1033 (dump_fontset): For a realized fontset, include the base fontset
1034 name in the returned vector.
1035
1036 2008-02-02 Kenichi Handa <handa@m17n.org>
1037
1038 * character.h (CHAR_STRING): Cast C to unsigned on calling
1039 char_string.
1040
1041 * character.c (char_string): Type of arg C changed to unsigned.
1042 Signal an error if C is an invalid character code.
1043
1044 * editfns.c (general_insert_function): Use CHARACTERP, not INTEGERP.
1045 (Fchar_to_string): Likewise.
1046
1047 2008-02-02 Kenichi Handa <handa@m17n.org>
1048
1049 * character.h (MIN_MULTIBYTE_LEADING_CODE)
1050 (MAX_MULTIBYTE_LEADING_CODE): New macros.
1051
1052 * regex.c (analyse_first): Fix for multibyte characters in "case
1053 charset:" and "case categoryspec:".
1054
1055 2008-02-02 Andreas Schwab <schwab@suse.de>
1056
1057 * Makefile.in (LIBES): Move standard libraries to the end.
1058
1059 2008-02-02 Kenichi Handa <handa@m17n.org>
1060
1061 * process.c: Cancel the change done by sync with HEAD.
1062
1063 2008-02-02 Kenichi Handa <handa@m17n.org>
1064
1065 * alloc.c (Fgarbage_collect): If nextb->text->inhibit_shrinking is
1066 nonzero, don't shrink the buffer nextb.
1067
1068 * buffer.h (struct buffer_text): New member inhibit_shrinking.
1069
1070 * coding.c (coding_alloc_by_making_gap): New arg offset.
1071 (alloc_destination): Call coding_alloc_by_making_gap with the arg
1072 offset.
1073 (decode_coding_iso_2022): Update coding->safe_charsets.
1074 (decode_coding_gap): Temporarily set
1075 current_buffer->text->inhibit_shrinking to 1.
1076
1077 2008-02-02 Kenichi Handa <handa@m17n.org>
1078
1079 * xterm.c (x_draw_composite_glyph_string_foreground): Fix
1080 indexing into elements of s->cmp and s->char2b.
1081
1082 2008-02-02 Juanma Barranquero <lekktu@gmail.com>
1083
1084 * regex.c (RE_STRING_CHAR_AND_LENGTH) [! emacs]: Add missing arg `len'.
1085
1086 2008-02-02 Kenichi Handa <handa@m17n.org>
1087
1088 * regex.c (GET_CHAR_BEFORE_2, GET_CHAR_AFTER): Check the variable
1089 target_multibyte instead of multibyte.
1090 (re_match_2_internal): Call bcmp_translate with target_multibyte.
1091 (bcmp_translate): Change the argument name from multibyte to
1092 target_multibyte.
1093
1094 2008-02-02 Kenichi Handa <handa@m17n.org>
1095
1096 These changes are to compile a regexp into a pattern that can be
1097 used both for multibyte and unibyte targets.
1098
1099 * Makefile.in (search.o): Depend on charset.h.
1100
1101 * character.c (multibyte_char_to_unibyte_safe): New function.
1102
1103 * search.c: Include "charset.h".
1104 (compile_pattern_1): Delete argument multibyte. Don't set
1105 cp->buf.target_multibyte here. Set cp->buf.charset_unibyte.
1106 (compile_pattern): Don't compare cp->buf.target_multibyte.
1107 Compare cp->buf.charset_unibyte.
1108 (compile_pattern): Set cp->buf.target_multibyte.
1109
1110 * lisp.h (multibyte_char_to_unibyte_safe): Extern it.
1111
1112 * regex.h (struct re_pattern_buffer): New member charset_unibyte.
1113
1114 * regex.c (RE_STRING_CHAR, RE_STRING_CHAR_AND_LENGTH): New arg
1115 multibyte. Callers changed.
1116 (RE_CHAR_TO_MULTIBYTE, RE_CHAR_TO_UNIBYTE): New macros.
1117 (MAKE_CHAR_MULTIBYTE, MAKE_CHAR_UNIBYTE): Deleted. Callers
1118 changed to use RE_CHAR_TO_MULTIBYTE and RE_CHAR_TO_UNIBYTE
1119 respectively.
1120 (SETUP_ASCII_RANGE, SETUP_UNIBYTE_RANGE): New macros.
1121 (SETUP_MULTIBYTE_RANGE): Generate a more compact range_table.
1122 (regex_compile): Make the compiled pattern usable both for
1123 multibyte and unibyte targets.
1124 (analyse_first): Make the fastmap usable both for multibyte and
1125 unibyte targets.
1126 (TRANSLATE_VIA_MULTIBYTE): Deleted.
1127 (re_match_2_internal): Pay attention to the case that the
1128 multibyteness of bufp and target may be different.
1129
1130 2008-02-02 Kenichi Handa <handa@m17n.org>
1131
1132 * xdisp.c (x_produce_glyphs): When a font is not found, make the
1133 empty box occupy at least one column width.
1134
1135 2008-02-02 Miles Bader <miles@gnu.org>
1136
1137 * Makefile.in: Remove redundant HAVE_XFT clause.
1138
1139 2008-02-02 Kenichi Handa <handa@m17n.org>
1140
1141 * xrdb.c (x_load_resources): Setup the default fontSet X reource.
1142
1143 2008-02-02 Kenichi Handa <handa@m17n.org>
1144
1145 * regex.c (regex_compile): Synch with HEAD.
1146
1147 2008-02-02 Kenichi Handa <handa@m17n.org>
1148
1149 * fontset.c (Finternal_char_font): Fix previous change.
1150
1151 2008-02-02 Kenichi Handa <handa@m17n.org>
1152
1153 * fontset.c (Finternal_char_font): Fix for the case of POSITION
1154 being nil.
1155
1156 2008-02-02 Kenichi Handa <handa@m17n.org>
1157
1158 * xftfont.c (xftfont_open): Call FcConfigSubstitute.
1159
1160 2008-02-02 Kenichi Handa <handa@m17n.org>
1161
1162 * xftfont.c (xftfont_open): Don't enable antialias explicitly.
1163
1164 2008-02-02 Kenichi Handa <handa@m17n.org>
1165
1166 * search.c (simple_search): Fix previous change.
1167
1168 2008-02-02 Kenichi Handa <handa@m17n.org>
1169
1170 * xftfont.c (ftfont_font_format): Extern declaration.
1171
1172 * frame.c (x_set_font): Fix the second arg to fs_query_fontset.
1173
1174 * xfont.c (xfont_driver): Initialize ftfont_driver.type by 0.
1175 (xfont_list): Don't directly use Lisp_Object as an operand of &&.
1176
1177 * ftfont.c (ftfont_driver): Initialize ftfont_driver.type by 0.
1178 (ftfont_font_format): Fix previous change.
1179
1180 * font.h (Ffont_xlfd_name): EXFUN it.
1181
1182 * font.c (font_parse_xlfd): Fix the array size of `f'.
1183 (register_font_driver): Use EQ to compare driver->type.
1184
1185 * xfns.c (xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
1186 (create_frame_xic) [USE_FONT_BACKEND]: Call xic_create_xfontset2.
1187 (xic_set_xfontset) [USE_FONT_BACKEND]: Likewise.
1188
1189 2008-02-02 Kenichi Handa <handa@m17n.org>
1190
1191 * ftfont.c (ftfont_pattern_entity): Check if FC_FONTFORMAT is
1192 defined.
1193 (ftfont_list_generic_family, ftfont_list, ftfont_font_format):
1194 Likewise.
1195
1196 2008-02-02 Kenichi Handa <handa@m17n.org>
1197
1198 * xfont.c (xfont_open): Set font->format.
1199
1200 * xftfont.c (xftfont_open): Set font->format.
1201
1202 * ftfont.c (ftfont_pattern_entity): Add fontformat in a pattern.
1203 (ftfont_list): Include FC_FONTFORMAT in FcObject.
1204 (ftfont_open): Set font->format.
1205 (ftfont_font_format): New function.
1206
1207 * font.h (struct font): New memeber format.
1208
1209 * font.c (Qopentype): New variable.
1210 (syms_of_font): Defsym it.
1211 (Fquery_font): Change the format of the last element of the return
1212 value.
1213
1214 2008-02-02 Kenichi Handa <handa@m17n.org>
1215
1216 * search.c (simple_search): Fix sync with HEAD.
1217
1218 2008-02-02 Kenichi Handa <handa@m17n.org>
1219
1220 * xfns.c (xic_create_xfontset): Try the default fontset name as a
1221 last resort.
1222
1223 2008-02-02 Kenichi Handa <handa@m17n.org>
1224
1225 * coding.c (detect_coding_charset): Fix detection of multi-byte
1226 charset.
1227
1228 2008-02-02 Bob Halley <halley@play-bow.org> (tiny change)
1229
1230 * ccl.c (ccl_driver): If DST is NULL, set ccl->produced to 0.
1231
1232 2008-02-02 Kenichi Handa <handa@m17n.org>
1233
1234 * xdisp.c (get_next_display_element): Set it->face_id for the
1235 first component of a composition.
1236 (x_produce_glyphs): Check if the font is changed or not for
1237 composition.
1238
1239 2008-02-02 Kenichi Handa <handa@m17n.org>
1240
1241 (get_next_display_element): Set it->face_id for the
1242 first component of a composition.
1243 (x_produce_glyphs): Check if the font is changed or not for
1244 composition.
1245
1246 2008-02-02 Kenichi Handa <handa@m17n.org>
1247
1248 * fontset.c (Qlatin): New variable.
1249 (syms_of_fontset): Define it as a lisp symbol.
1250 (Fset_fontset_font): If TARGET is `latin', use FONT_SPEC for
1251 ASCII.
1252
1253 2008-02-02 Kenichi Handa <handa@m17n.org>
1254
1255 * font.c (font_unparse_fcname): Pay attention to the case that
1256 some of font property is a null string.
1257
1258 2008-02-02 Kenichi Handa <handa@m17n.org>
1259
1260 * term.c: Include "composite.h".
1261 (encode_terminal_code): Output all components of composition.
1262 Check the size of encode_terminal_src.
1263 (produce_glyphs): For compostion, call produce_composite_glyph.
1264 (append_composite_glyph, produce_composite_glyph): New functions.
1265
1266 * xdisp.c (x_produce_glyphs): In handling composition, if a font
1267 is not found, get font_info from the current ascii face.
1268
1269 2008-02-02 Kenichi Handa <handa@m17n.org>
1270
1271 * fileio.c (Finsert_file_contents): On replacing, temporarily bind
1272 buffer-file-name to Qnil before calling insert_from_buffer.
1273
1274 * font.c (font_unparse_fcname): Pay attention to the case that
1275 foundry is a null string.
1276
1277 2008-02-02 Kenichi Handa <handa@m17n.org>
1278
1279 * ftfont.c (ftfont_list): Allow registry "unicode-sip".
1280
1281 * font.c (Qunicode_sip): New variable.
1282 (syms_of_font): Declare it as a Lisp symbol.
1283
1284 * font.h (Qunicode_sip): Extern it.
1285
1286 2008-02-02 Kenichi Handa <handa@m17n.org>
1287
1288 * composite.c (get_composition_id): Pay attention to TAB
1289 component.
1290
1291 * xterm.c (x_draw_composite_glyph_string_foreground): Don't draw
1292 TAB. Adjusted for the change of s->char2b which always points to
1293 the first elememnt of allocated memory.
1294
1295 * xftfont.c (xftfont_text_extents): Fix calculation of descent
1296 value.
1297
1298 * xdisp.c (handle_composition_prop): Set it->c to the first
1299 non-TAB component.
1300 (fill_composite_glyph_string): Argument changed.
1301 (BUILD_COMPOSITE_GLYPH_STRING): Adjusted for the above change.
1302 (x_produce_glyphs): Fix handling of left/right padding.
1303
1304 2008-02-02 Kenichi Handa <handa@m17n.org>
1305
1306 * regex.c (analyse_first): Cancel the change for synching with
1307 HEAD.
1308
1309 2008-02-02 Kenichi Handa <handa@m17n.org>
1310
1311 * coding.c (detect_coding_system): Fix for handling off
1312 inhibit_iso_escape_detection. Fix for the case that no coding
1313 system is defined for a specific coding category.
1314
1315 2008-02-02 Kenichi Handa <handa@m17n.org>
1316
1317 * font.c (font_matching_entity): Dolete unused local var.
1318
1319 * xftfont.c (xftfont_open): Call XftDefaultSubstitute before
1320 opening a font.
1321
1322 * fileio.c (Finsert_file_contents): On recovering a file, assume
1323 Unix-like eol.
1324 (choose_write_coding_system): On auto-saving a file, force
1325 Unix-like eol.
1326
1327 * coding.c (setup_coding_system): Fix setting of
1328 coding->common_flags based on eol_type.
1329 (coding_inherit_eol_type): If PARENT is not nil, be sure to
1330 inherit from it.
1331
1332 2008-02-02 Kenichi Handa <handa@m17n.org>
1333
1334 * alloc.c (NSTATICS): Increased to 0x600.
1335
1336 2008-02-02 Kenichi Handa <handa@m17n.org>
1337
1338 * ftfont.c (ftfont_driver): Set ftfont_driver.match to
1339 ftfont_match.
1340 (ftfont_list): Don't check :name property.
1341 (ftfont_match): New function.
1342 (ftfont_pattern_entity): If the pattern doesn't contain
1343 FC_SPACING, don't assuce FC_MONO.
1344
1345 * font.h (struct font_driver): New member `match'.
1346 (font_update_drivers): Prototype adjusted.
1347
1348 * font.c (font_parse_fcname): Don't change :name property of FONT.
1349 (font_parse_name): Likewise.
1350 (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE, check_gstring): Define
1351 them unconditionally.
1352 (font_matching_entity): New function.
1353 (font_open_by_name): Try font_matching_entity if exact match is
1354 not found.
1355 (font_update_drivers): Delete the arg FONT. Return a list of
1356 actually used backends. Don't free faces, font caches here.
1357 Don't store data in frame parameters. Don't call x_set_font.
1358 (Ffont_spec): Store :name property as is.
1359 (Ffont_get): Check HAVE_LIBOTF before calling font_otf_capability.
1360 (Ffont_otf_gsub): Call font->driver->otf_gsub instead of
1361 font_otf_gsub.
1362 (Ffont_otf_gpos): Call font->driver->otf_gpos instead of
1363 font_otf_gpos.
1364 (Ffont_otf_alternates): Check if the driver has otf_gsub function.
1365 Call font->driver->otf_gsub instead of font_otf_gsub.
1366
1367 * frame.c (x_set_font_backend): Do more works that were done in
1368 font_update_drivers before.
1369
1370 * xfont.c (xfont_match): New function.
1371 (xfont_driver): Set xfont_driver.match to xfont_match.
1372 (xfont_draw): Set font in GC if necessary.
1373
1374 * ftxfont.c (ftxfont_match): New function.
1375 (syms_of_ftxfont): Set ftxfont_driver.match to ftxfont_match.
1376
1377 * xftfont.c (xftfont_match): New function.
1378 (syms_of_xftfont): Set xftfont_driver.match to xftfont_match.
1379
1380 2008-02-02 Kenichi Handa <handa@m17n.org>
1381
1382 * font.h (struct font): New member scalable.
1383 (struct font_driver): New arg ALTERANTE_SUBST to otf_gsub.
1384 (font_otf_gsub): Prototype adjusted.
1385
1386 * font.c (font_otf_capability): Fix handling of the default
1387 langsys.
1388 (parse_gsub_gpos_spec): Type changed to void. New arg nbytes.
1389 Check the contents of SPEC.
1390 (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE): New macros.
1391 (check_gstring): New function.
1392 (REPLACEMENT_CHARACTER): New macro.
1393 (font_otf_gsub): New arg alternate_subst. Be sure to set all
1394 glyph codes of GSTRING.
1395 (font_otf_gpos): Be sure to set all glyph codes of GSTRING.
1396 (font_prepare_composition): Set cmp->glyph_len.
1397 (font_open_entity): Set font->scalable.
1398 (Ffont_get): Handle :otf property.
1399 (Ffont_otf_gsub, Ffont_otf_gpos, Ffont_otf_alternates): New
1400 functions.
1401 (Fquery_font): Use font->font.full_name.
1402 (syms_of_font): Defsubr Sfont_otf_gsub, Sfont_otf_gpos, and
1403 Sfont_otf_alternates.
1404
1405 * ftfont.c (ftfont_open): Set font->font.full_name and
1406 font->font.name properly. Fix calculation of font->font.height
1407 and font->min_width.
1408
1409 * ftxfont.c (ftxfont_create_gcs): New function.
1410 (ftxfont_draw_bitmap): Fix arg to ftfont_driver.get_bitmap.
1411 (ftxfont_draw_backgrond): Fix filling region.
1412 (ftxfont_default_fid): New function.
1413 (ftxfont_open): Set xfotn->fid to the return value of
1414 ftxfont_default_fid.
1415 (ftxfont_prepare_face): Use ftxfont_create_gcs to create GCs.
1416 (ftxfont_done_face): Free only GCs that are created by
1417 ftxfont_create_gcs.
1418 (ftxfont_draw): If face->gc != s->gc, create proper GCs.
1419
1420 * xterm.c (x_set_glyph_string_clipping_exactly) [USE_FONT_BACKEND]:
1421 Clip to src->width, etc (not src->clip_XXX).
1422
1423 * xfns.c (x_create_tip_frame) [USE_FONT_BACKEND]: Handle
1424 FontBackend frame parameter.
1425
1426 2008-02-02 Kenichi Handa <handa@m17n.org>
1427
1428 * font.h (struct font_driver_list): New member `on'.
1429 (Fclear_font_cache): EXFUN it.
1430 (font_update_drivers): Extern it.
1431
1432 * font.c (font_unparse_fcname): Fix typo (swidth->width).
1433 (font_list_entities): Check driver_list->on.
1434 (register_font_driver): Initalize `on' member to 0.
1435 (font_update_drivers): New function.
1436 (Fclear_font_cache): Check driver_list->on.
1437
1438 * frame.h (Qfont_backend): Extern it.
1439 (x_set_font_backend): Extern it.
1440
1441 * frame.c (Qfont_backend): New variable.
1442 (frame_parms): New element for font-backend.
1443 (x_set_font_backend): New function.
1444
1445 * xfns.c (Fx_create_frame) [USE_FONT_BACKEND]: Handle
1446 FontBackend frame parameter.
1447 (x_frame_parm_handlers) [USE_FONT_BACKEND]: New element
1448 x_set_font_backend.
1449
1450 * xfont.c (xfont_list): Don't try listing by :name property if the
1451 name is not for XLFD.
1452
1453 2008-02-02 Kenichi Handa <handa@m17n.org>
1454
1455 * font.h (LGLYPH_FROM, LGLYPH_TO, LGLYPH_SET_FROM)
1456 (LGLYPH_SET_TO): New macros.
1457 (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WADJUST): Check if adjustment
1458 element of G is vector or not.
1459 (font_at): Extern it.
1460
1461 * font.c: Include window.h.
1462 (font_lispy_object): New function.
1463 (font_prepare_composition): Check LGLYPH_FORM (g) to detect the
1464 end of valid glyph.
1465 (font_close_object): Fix getting (struct font *).
1466 (font_at): New function.
1467 (Ffont_get): If FONT is a font-object, get entity from it.
1468 (Ffont_make_gstring): Initialize elements of glyphs with nil.
1469 (Ffont_fill_gstring): Use macro LGSTRING_XXX and LGLYPH_XXX. Fix
1470 range check.
1471 (Ffont_at): New function.
1472 (syms_of_font): Defsubr Sfont_at.
1473
1474 * xdisp.c (it_props): Move the entry for Qauto_composed to just
1475 before the entry for Qcompostion.
1476 (handle_auto_composed_prop): Call auto-composition-function with 4
1477 args.
1478 (handle_composition_prop) [USE_FONT_BACKEND]: Set it->face_id from
1479 the font in gstring.
1480 (fill_composite_glyph_string) [USE_FONT_BACKEND]: Check
1481 LGLYPH_FORM (g) to detect the end of valid glyph.
1482 (x_produce_glyphs) [USE_FONT_BACKEND]: Don't update it->face_id if
1483 we are composing with gstring.
1484
1485 * xterm.c (x_draw_composite_glyph_string_foreground) [USE_FONT_BACKEND]:
1486 Check if adjustment is vector or not.
1487
1488 * Makefile.in (font.o): Make it depends on window.h.
1489
1490 2008-02-02 Kenichi Handa <handa@m17n.org>
1491
1492 * xterm.c (x_draw_composite_glyph_string_foreground): Check if
1493 adjustment is vector or not.
1494
1495 2008-02-02 Kenichi Handa <handa@m17n.org>
1496
1497 * casefiddle.c (casify_object): Sync with HEAD.
1498
1499 2008-02-02 Miles Bader <miles@gnu.org>
1500
1501 * character.h (CHECK_CHARACTER): Redefine in terms of CHECK_TYPE.
1502
1503 2008-02-02 Kenichi Handa <handa@m17n.org>
1504
1505 * font.h (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WIDTH, LGLYPH_WADJUST)
1506 (LGLYPH_SET_WIDTH): Adjusted for the change of LGLYPH format.
1507 (LGLYPH_ADJUSTMENT, LGLYPH_SET_ADJUSTMENT): New macros.
1508
1509 * font.c (font_merge_old_spec): Treat '*' in foundry as a wild
1510 card.
1511 (DEVICE_DELTA): Fix typo.
1512 (font_otf_gpos): Adjusted for the change of LGLYPH format.
1513 (font_prepare_composition): Likewise.
1514
1515 * xterm.c (x_draw_composite_glyph_string_foreground): Adjusted for
1516 the change of LGLYPH format.
1517
1518 2008-02-02 Kenichi Handa <handa@m17n.org>
1519
1520 * ftfont.c (ftfont_list): Fix typo.
1521 (ftfont_build_basic_charsets): Don't include letters with
1522 diactrics.
1523
1524 2008-02-02 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
1525
1526 * xfaces.c (realize_non_ascii_face): Set face->extra to NULL.
1527
1528 * xftfont.c (xftfont_done_face): Call XftDrawDestroy only if
1529 xftface_info is non-NULL.
1530
1531 2008-02-02 Kenichi Handa <handa@m17n.org>
1532
1533 * ftfont.c (ftfont_list): Fix typo.
1534 (ftfont_build_basic_charsets): Don't include letters with
1535 diactrics.
1536
1537 2008-02-02 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
1538
1539 * ftfont.c (ftfont_list): Move misplaced #endif
1540
1541 2008-02-02 Kenichi Handa <handa@m17n.org>
1542
1543 * ftfont.c (ftfont_list): Pay attention to the case that
1544 FC_CAPABILITY is not defined.
1545
1546 2008-02-02 Kenichi Handa <handa@m17n.org>
1547
1548 * xftfont.c (xftfont_open): Set charset related members to -1.
1549
1550 * ftfont.c (ftfont_list): Handle QCotf property. Handling of
1551 QCname fixed.
1552 (ftfont_open): Set charset related members to -1.
1553
1554 * fontset.c (Votf_script_alist): New variable.
1555 (syms_of_fontset): Initialize it.
1556 (fontset_font): Delete unused variable.
1557
1558 * fontset.h (Votf_script_alist): Extern it.
1559
1560 * font.c (font_find_for_lface): Code optimized.
1561
1562 * font.h (font_close_object, font_merge_old_spec): Extern them.
1563
1564 2008-02-02 Kenichi Handa <handa@m17n.org>
1565
1566 * font.c (QCscalable, Qc, Qm, Qp, Qd): New variables.
1567 (syms_of_font): Initialize them.
1568 (font_pixel_size): Allow float value in dpi.
1569 (font_prop_validate_type): Deleted.
1570 (font_prop_validate_symbol, font_prop_validate_style): Argument
1571 changed. Caller changed.
1572 (font_prop_validate_non_neg): Renamed from
1573 font_prop_validate_size.
1574 (font_prop_validate_extra): Deleted.
1575 (font_prop_validate_spacing): New function.
1576 (font_property_table): Add elements for all known properties.
1577 (get_font_prop_index): Renamed from check_font_prop_name. New
1578 argument FROM. Caller changed.
1579 (font_prop_validate): Validate all known properties.
1580 (font_put_extra): Argument force deleted. Caller changed.
1581 (font_expand_wildcards): Make it static. Fix the way of shrinking
1582 the possible range.
1583 (font_parse_xlfd): Arguemnt merge deleted. Fix handling of RESX,
1584 RESY, SPACING, and AVGWIDTH. Don't validate property values here.
1585 Caller changed.
1586 (font_unparse_xlfd): Handle dpi, spacing, and scalable properties.
1587 (font_parse_fcname): Arguemnt merge deleted. Fix parsing of point
1588 size. Don't validate properties values here. Caller changed.
1589 (font_unparse_fcname): Handle dpi, spacing, and scalable
1590 properties.
1591 (font_open_by_name): Delete unused variable.
1592 (Ffont_spec): Likewise. Validate property values.
1593 (Ffont_match_p): New function.
1594
1595 * font.h (QCscalable): Extern it.
1596 (font_parse_xlfd, font_parse_fcname): Prototype adjusted.
1597
1598 * ftfont.c (ftfont_list): Handle properties dpi, spacing, and
1599 scalable.
1600
1601 * xfont.c (xfont_query_font): Adjusted for the change of
1602 font_parse_xlfd.
1603 (xfont_list_pattern): New function.
1604 (xfont_list): Use xfont_list_pattern.
1605
1606 * xftfont.c (xftfont_prepare_face): Cancel previous change.
1607 (xftfont_done_face): Likewise.
1608
1609 2008-02-02 Kenichi Handa <handa@m17n.org>
1610
1611 * font.h (Flist_fonts): EXFUN it.
1612
1613 2008-02-02 Jason Rumney <jasonr@gnu.org>
1614
1615 * w32term.c (w32_initialize): Add back smoothing_type and
1616 smoothing_enabled definitions.
1617
1618 2008-02-02 Kenichi Handa <handa@m17n.org>
1619
1620 * xterm.c (x_draw_glyph_string) [USE_FONT_BACKEND]: Check
1621 s->face->font on determining underline position.
1622
1623 2008-02-02 Kenichi Handa <handa@m17n.org>
1624
1625 * font.c (font_parse_xlfd): Fix generating of CHARSET_REGISTRY field.
1626 (font_has_char): Accept font-object too.
1627 (font_find_for_lface): Try at first with a size specified in face.
1628
1629 * xftfont.c (xftfont_prepare_face): Make non-ascii face share
1630 face->extra with ascii face.
1631 (xftfont_done_face): Don't free face->extra of non-ascii face.
1632
1633 2008-02-02 Kenichi Handa <handa@m17n.org>
1634
1635 * frame.c (x_set_font) [USE_FONT_BACKEND]: Fix argument to
1636 font_open_by_name.
1637
1638 2008-02-02 Kenichi Handa <handa@m17n.org>
1639
1640 * font.h (QCspacing, QCdpi): Extern them.
1641 (enum font_spacing): New enum.
1642 (FONT_PIXEL_SIZE_QUANTUM): New macro.
1643
1644 * font.c (POINT_TO_PIXEL): Don't divice POINT by 10.
1645 (QCspacing, QCdpi): New variables.
1646 (syms_of_font): Initialize them.
1647 (font_pixel_size): New function.
1648 (font_put_extra): New function.
1649 (font_parse_xlfd): Fix handling of font size. Add QCdpi property
1650 in FONT_EXTRA.
1651 (font_parse_fcname): Handle enumenrated values (e.g. bold). Fix
1652 handling font size. Add QCname property that contains only
1653 unknown properties.
1654 (font_score): Change argument. Caller changed. Pay attention to
1655 FONT_PIXEL_SIZE_QUANTUM.
1656 (font_sort_entites): Fix handling of font size.
1657 (font_list_entities): Likewise.
1658 (font_find_for_lface): Likewise.
1659 (font_open_for_lface): Likewise.
1660 (font_open_by_name): Likewise.
1661 (Ffont_spec): Add QCname property that contains only unknown
1662 properties.
1663
1664 * ftfont.c (ftfont_list): Use assq_no_quit, not Fassq. Don't
1665 include weight in listing pattern, instead check weight of each
1666 listed font. Don't include scalable in pattern. Pay attention to
1667 FONT_PIXEL_SIZE_QUANTUM.
1668
1669 2008-02-02 Kenichi Handa <handa@m17n.org>
1670
1671 * lread.c (read_escape): Fix the code synched with HEAD.
1672
1673 * font.c (font_parse_fcname): Fix parsing of point-size.
1674 (font_unparse_fcname): Produce symbolic names for style
1675 properties.
1676 (font_list_entities): Handle float size correctly.
1677 (font_open_by_name): Prefer `normal' property values if the name
1678 doesn't specify them.
1679
1680 * fontset.c (Finternal_char_font): Use font_get_name, not
1681 Ffont_xlfd_name.
1682
1683 * ftfont.c (ftfont_pattern_entity): Use the numeric value 100 for
1684 FC_WEIGHT_REGULAR. Exclude FC_SIZE and FC_PIXEL_SIZE from listing
1685 pattern. Don't force scalable.
1686
1687 * xftfont.c (xftfont_open): For generating a name, start from
1688 96-byte buffer.
1689
1690 2008-02-02 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
1691
1692 * frame.h (x_new_fontset2): Fix prototype.
1693
1694 2008-02-02 Kenichi Handa <handa@m17n.org>
1695
1696 * font.h (struct font_driver): Member parse_name deleted.
1697 (font_match_p, font_get_spec, font_parse_fcname)
1698 (font_unparse_fcname): Extern them.
1699 (font_get_name): Prototype adjusted.
1700
1701 * font.c (XLFD_SMALLNUM_MASK): Delete this macro.
1702 (XLFD_LARGENUM_MASK): Delete XLFD_ENCODING_MASK from it.
1703 (font_expand_wildcards): Fix handling ENCODING field. Avoid
1704 unnecessary checks for weight, slant, and swidth.
1705 (font_parse_fcname): New function.
1706 (font_unparse_fcname): New function.
1707 (font_parse_name): New function.
1708 (font_match_p): New function.
1709 (font_get_name): Return value changed to Lisp string.
1710 (font_get_spec): New function.
1711 (Qunspecified, Qignore_defface): Don't extern them.
1712 (font_find_for_lface): Assume that LFACE is fully specified.
1713 (font_load_for_face): If lface[LFACE_FONT_INDEX] is an font
1714 object, use it for FACE.
1715 (font_open_by_name): Call Ffont_spec with QCname prop. Don't call
1716 driver->parse_name.
1717 (Ffont_spec): Call font_parse_name, not font_parse_xlfd.
1718
1719 * fontset.h (new_fontset_from_font) [USE_FONT_BACKEND]: Prototype
1720 adjusted.
1721
1722 * fontset.c (new_fontset_from_font) [USE_FONT_BACKEND]: Argument F
1723 deleted. Don't call Fnew_fontset. Instead, directly call
1724 make_fontset.
1725
1726 * frame.h (x_new_fontset2) [USE_FONT_BACKEND]: Prototype adjusted.
1727
1728 * frame.c (x_set_font) [USE_FONT_BACKEND]: Adjusted for the change
1729 of x_new_fontset2.
1730
1731 * ftfont.c (Qmonospace, Qsans_serif, Qserif, Qmono, Qsans)
1732 (Qsans__serif): New variables.
1733 (ftfont_generic_family_list): New variable.
1734 (syms_of_ftfont): Initialize the above variables.
1735 (ftfont_pattern_entity): Argument NAME deleted.
1736 (ftfont_list_generic_family): New function.
1737 (ftfont_parse_name): Delete this function.
1738 (ftfont_list): Try generic family only when FcFontList found no
1739 font.
1740 (ftfont_list_family): Fix args to FcObjectSetBuild.
1741
1742 * xfaces.c (check_lface_attrs) [USE_FONT_BACKEND]: Accept font
1743 object in attrs[LFACE_FONT_INDEX].
1744 (set_lface_from_font_name): Cancel all changes for font-backend.
1745 (set_lface_from_font_and_fontset) [USE_FONT_BACKEND]: New
1746 function.
1747 (Finternal_set_lisp_face_attribute) [USE_FONT_BACKEND]: Accept a
1748 font object in QCfont attribute.
1749 (set_font_frame_param) [USE_FONT_BACKEND]: Likewise.
1750 (realize_default_face) [USE_FONT_BACKEND]: Call
1751 set_lface_from_font_and_fontset.
1752
1753 * xfns.c (x_default_font_parameter) [USE_FONT_BACKEND]: Try also
1754 "fixed", and signal error here if no suitable font was found.
1755
1756 * xfont.c (xfont_parse_name): Delete this function.
1757
1758 * xftfont.c (xftfont_open): Change coding style of error
1759 handling. Generate fontconfig's fontname pattern.
1760
1761 * xterm.h (struct x_output) [USE_FONT_BACKEND]: New member fontp.
1762 (FRAME_FONT_OBJECT) [USE_FONT_BACKEND]: New macro.
1763
1764 * xterm.c (x_new_fontset2) [USE_FONT_BACKEND]: Change arguments.
1765 Both args FONTSET and FONT_OBJECT must be existing ones.
1766
1767 2008-02-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1768
1769 * macterm.c (mac_set_unicode_keystroke_event): Don't use MAKE_CHAR.
1770
1771 2008-02-02 Kenichi Handa <handa@m17n.org>
1772
1773 * xfont.c (xfont_open, xfont_encode_char): Fix typo.
1774
1775 * font.h (struct font): Fix typo.
1776
1777 * font.c (enum xlfd_field_index): Rename XLFD_XXX_SIZE_INDEX to
1778 XLFD_XXX_INDEX.
1779 (enum xlfd_field_mask): New enum.
1780 (intern_font_field): Argument changed. Caller changed. If digits
1781 are followed by non-digits, return a symbol.
1782 (font_expand_wildcards): New function.
1783 (font_parse_xlfd): Fix wildcard handling.
1784 (Ffont_spec): If :name is specified, reflect the info in the other
1785 properties.
1786
1787 * ftfont.c (ftfont_pattern_entity): Fix typo.
1788 (ftfont_list): Enforce FC_LANG in PATTERN to cancel the effect of
1789 locale.
1790
1791 2008-02-02 Kenichi Handa <handa@m17n.org>
1792
1793 * font.h (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Extern them.
1794
1795 * font.c (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Moved from
1796 ftfont.c.
1797 (font_unparse_xlfd): Fix argument type declaration. Append "*" if
1798 registry doesn't specify encoding part.
1799 (font_find_for_lface): Pay attention to LFACE_FONT_INDEX.
1800 (font_open_by_name): At first try parsing the name.
1801 (syms_of_font): Declare Qiso8859_1, Qiso10646_1, and Qunicode_bmp
1802 as Lisp symbols.
1803
1804 * fontset.c (reorder_font_vector): Pay attention to the case that
1805 the 3rd element of font_def is nil.
1806 (fontset_font): For the default fontset, append one more fontset
1807 elements for a script-based font specification. Don't add script
1808 attribute on finding a font.
1809 (new_fontset_from_font): Unconditionally set FONTSET_ASCII to the
1810 font name.
1811 (fontset_ascii_font): If a font can't be opened, return nil.
1812
1813 * ftfont.c (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Moved to
1814 font.c.
1815 (ftfont_pattern_entity): New function.
1816 (ftfont_get_cache): Assume that freetype_font_cache is already
1817 initialized.
1818 (ftfont_list): Handle the case that a file is specified in font
1819 name. Use ftfont_pattern_entity to generate entities.
1820 (ftfont_has_char): Check if the pattern contains FC_CHARSET.
1821 (syms_of_ftfont): Initialize freetype_font_cache.
1822
1823 * xftfont.c (xftfont_open): Make the font name fontconfig's
1824 style. Add BLOCK_INPUT and UNBLOCK_INPUT.
1825 (xftfont_close): Free font->font.name if not NULL.
1826
1827 * xfont.c (xfont_list): If script is specified for a font, return
1828 null_vector.
1829 (xfont_list_family): Declare argument type.
1830
1831 * xfaces.c (set_lface_from_font_name): If a font doesn't have a
1832 name, set LFACE_FONT (lface) to nil.
1833
1834 * xterm.c (x_new_fontset2): If an ASCII font couldn't be loaded,
1835 return Qnil.
1836
1837 2008-02-02 Jason Rumney <jasonr@gnu.org>
1838
1839 * w32term.c (w32_initialize): Manually sync 2008-02-02 change from
1840 HEAD.
1841
1842 2008-02-02 Kenichi Handa <handa@m17n.org>
1843
1844 * emacs.c (main): Check -enable-font-backend arg after the check
1845 of -nl.
1846 (standard_args): Add "-enable-font-backend".
1847
1848 * coding.c (Ffind_operation_coding_system): Sync with HEAD.
1849
1850 * callproc.c (Fcall_process): Sync with HEAD.
1851
1852 * coding.h (CODING_REQUIRE_ENCODING): Comment sync with HEAD.
1853
1854 2008-02-02 Kenichi Handa <handa@m17n.org>
1855
1856 * xftfont.c (xftfont_default_fid): Set fid_known to 1.
1857 (struct xftdraw_list, xftdraw_list): Delete them.
1858 (register_xftdraw, check_xftdraw): Delete them.
1859 (xftfont_prepare_face): Don't call register_xftdraw.
1860 (xftfont_done_face): Don't call check_xftdraw.
1861 (xftfont_draw): Get backroudn color only when with_background is
1862 nonzero.
1863
1864 * xfont.c (xfont_encode_char): Fix calculation of char2b.
1865
1866 2008-02-02 Kenichi Handa <handa@m17n.org>
1867
1868 These changes are for the new font handling codes.
1869
1870 * Makefile.in (ALL_CFLAGS): Add @FREETYPE_CFLAGS@,
1871 @FONTCONFIG_CFLAGS@, and @LIBOTF_CFLAGS@.
1872 (LIB_X11_LIB): If HAVE_XFT is defined, set to @XFT_LIBS@.
1873 (FONTSRC, FONTOBJ): New variables.
1874 (obj): Add $(FONTOBJ).
1875 (SOME_MACHINE_OBJECTS): Lib_X11_Lib.
1876 (LIBES): Add @FREETYPE_LIBS@, @FONTCONFIG_LIBS@, and
1877 @LIBOTF_LIBS@.
1878 (font.o, ftfont.o, xfont.o, xftfont.o, ftxfont.o): New targets.
1879 (fontset.o, xdisp.o, xfaces.o, xfns.o, xterm.o): Depends on
1880 $(FONTSRC).
1881
1882 * font.h, font.c, xfont.c, ftfont.c, xftfont.c, ftxfont.c: New
1883 files.
1884
1885 * character.h (Vscript_representative_chars): Extern it.
1886
1887 * character.c (Vscript_representative_chars): New variable.
1888 (syms_of_character): Declare it as a Lisp variable.
1889
1890 * composite.c (get_composition_id) [USE_FONT_BACKEND]: If
1891 enable_font_backend is nonzero, accept the composition method
1892 COMPOSITION_WITH_GLYPH_STRING.
1893
1894 * composite.h (enum composition_method) [USE_FONT_BACKEND]: New
1895 enumeration COMPOSITION_WITH_GLYPH_STRING.
1896
1897 * config.in: Re-generated.
1898
1899 * dispextern.h (struct glyph_string) [USE_FONT_BACKEND]: New
1900 members clip_x, clip_y, clip_width, and clip_height.
1901 (struct face) [USE_FONT_BACKEND]: New members font_info and extra.
1902
1903 * emacs.c (main) [USE_FONT_BACKEND]: Handle arg
1904 --enable-font-backend. Call syms_of_font.
1905
1906 * fns.c (assoc_no_quit): New function.
1907
1908 * fontset.h (FONT_INFO_FROM_FACE): New macro.
1909 (face_for_font, new_fontset_from_font)
1910 (fontset_ascii_font) [USE_FONT_BACKEND]: Extern them.
1911
1912 * fontset.c [USE_FONT_BACKEND]: Include "font.h".
1913 (fontset_font, fontset_ascii, face_for_char)
1914 (make_fontset_for_ascii_face, Ffont_info)
1915 (Finternal_char_font) [USE_FONT_BACKEND]: If enable_font_backend
1916 is nonzero, use font-backend mechanism.
1917 (find_font_encoding): Make it non-static.
1918 (new_fontset_from_font, fontset_ascii_font) [USE_FONT_BACKEND]:
1919 New functions.
1920
1921 * frame.h (struct frame): New members resx and resy.
1922 (struct frame) [USE_FONT_BACKEND]: New member font_driver_list.
1923 (x_new_fontset2) [USE_FONT_BACKEND]: Extern it.
1924
1925 * frame.c [USE_FONT_BACKEND]: Include "font.h".
1926 (make_frame, x_set_font) [USE_FONT_BACKEND]: Use font-backend
1927 mechanism.
1928
1929 * lisp.h (assoc_no_quit): Extern it.
1930
1931 * xdisp.c: If USE_FONT_BACKEND is defined, include "font.h".
1932 Through out the file, use FONT_INFO_FROM_FACE instead of
1933 FONT_INFO_FROM_ID, use get_per_char_metric instead of
1934 rif->per_char_metric.
1935 (handle_composition_prop) [USE_FONT_BACKEND]: If the composition
1936 method is COMPOSITION_WITH_GLYPH_STRING, just set it->c to ' '.
1937 (get_glyph_face_and_encoding, fill_composite_glyph_string)
1938 (get_char_face_and_encoding, BUILD_COMPOSITE_GLYPH_STRING)
1939 (x_produce_glyphs) [USE_FONT_BACKEND]: If enable_font_backend is
1940 nonzero, use font-backend mechanism.
1941 (get_per_char_metric): New function.
1942
1943 * xfaces.c [USE_FONT_BACKEND]: Include "font.h".
1944 (set_lface_from_font_name)
1945 (set_font_frame_param, free_realized_face)
1946 (prepare_face_for_display, clear_face_gcs)
1947 (Finternal_set_font_selection_order, realize_x_face)
1948 [USE_FONT_BACKEND]: If enable_font_backend is nonzero, use
1949 font-backend mechanism.
1950 (clear_face_cache) [USE_FONT_BACKEND]: Don't call
1951 clear_font_table.
1952 (load_face_font) [USE_FONT_BACKEND]: Abort.
1953 (face_symbolic_value, face_symbolic_weight, face_symbolic_slant)
1954 (face_symbolic_swidth, face_for_font) [USE_FONT_BACKEND]: New
1955 functions.
1956
1957 * xfns.c [USE_FONT_BACKEND]: Include "font.h".
1958 (x_default_font_parameter) [USE_FONT_BACKEND]: New function.
1959 (Fx_create_frame) [USE_FONT_BACKEND]: If enable_font_backend is
1960 nonzero, register all available font drivers. Call
1961 x_default_font_parameter for deciding a font.
1962 (x_create_tip_frame) [USE_FONT_BACKEND]: Likewise.
1963
1964 * xterm.c [USE_FONT_BACKEND]: Include "font.h".
1965 (x_set_mouse_face_gc, x_set_glyph_string_clipping)
1966 (x_set_glyph_string_clipping_exactly)
1967 (x_compute_glyph_string_overhangs)
1968 (x_draw_glyph_string_foreground)
1969 (x_draw_composite_glyph_string_foreground, x_draw_glyph_string)
1970 (x_free_frame_resources) [USE_FONT_BACKEND]: If
1971 enable_font_backend is nonzero, use font-backend mechanism.
1972 (x_new_fontset2) [USE_FONT_BACKEND]: New function.
1973
1974 2008-02-02 Kenichi Handa <handa@m17n.org>
1975
1976 * coding.h (system_eol_type): Fix synching with HEAD.
1977
1978 * coding.c (system_eol_type): Sync with HEAD.
1979 (coding_inherit_eol_type): If PARENT is nil, inherit from
1980 system_eol_type.
1981 (syms_of_coding): Initialize system_eol_type.
1982
1983 * callproc.c (Fcall_process): Sync with HEAD.
1984
1985 * process.c (setup_process_coding_systems): Fix synching with
1986 HEAD.
1987 (read_process_output): Likewise.
1988 (Fset_process_coding_system): Inherit system's eol format if
1989 necessary.
1990
1991 * fileio.c (choose_write_coding_system): Fix synching with HEAD.
1992
1993 * keymap.c (push_key_description): Fix synching with HEAD.
1994
1995 2008-02-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1996
1997 * macgui.h (USE_ATSUI): Don't enable on emacs-unicode-2 branch.
1998
1999 2008-02-02 Kenichi Handa <handa@m17n.org>
2000
2001 * coding.c (decode_eol): Pay attention to buffer relocation in
2002 del_range_2.
2003 (decode_coding): Call decode_eol before restoring undo_list.
2004
2005 2008-02-02 Kenichi Handa <handa@m17n.org>
2006
2007 * charset.c (Fdefine_charset_internal): Fix setting of
2008 emacs_mule_bytes.
2009
2010 2008-02-02 Kenichi Handa <handa@m17n.org>
2011
2012 * keyboard.c (read_char): Check if C is a character or not before
2013 looking up Vkeyboard_translate_table.
2014
2015 2008-02-02 Kenichi Handa <handa@m17n.org>
2016
2017 * coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION): Fix
2018 condition to terminate the loop.
2019
2020 2008-02-02 Kenichi Handa <handa@m17n.org>
2021
2022 * coding.c (produce_composition): Compare charbuf[i] instead of
2023 args[i] against 0.
2024 (Fterminal_coding_system): Use EQ to compare Lisp objects.
2025
2026 2008-02-02 Kenichi Handa <handa@m17n.org>
2027
2028 * coding.c (DECODE_COMPOSITION_START): If the source is short, set
2029 coding->result to CODING_RESULT_INSUFFICIENT_SRC.
2030 (decode_coding_gap): Set CODING_MODE_LAST_BLOCK after the call of
2031 detect_coding.
2032 (emacs_mule_char): Handle old style (Emacs 20) component character
2033 of a composition.
2034 (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Fix parsing a composition
2035 rule.
2036 (DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION): Likewise.
2037 (decode_coding_emacs_mule): Handle invalid bytes correctly.
2038
2039 2008-02-02 Kenichi Handa <handa@m17n.org>
2040
2041 * coding.c (encode_coding_ccl): Allocate destination dynamically
2042 when necessary.
2043
2044 2008-02-02 Kenichi Handa <handa@m17n.org>
2045
2046 * ccl.c (Fccl_execute_on_string): Fix the condition of terminating
2047 the loop. When quitted, show a proper error message.
2048
2049 2008-02-02 Kenichi Handa <handa@m17n.org>
2050
2051 * coding.c (decode_coding): Fix previous change.
2052
2053 * xterm.c (x_set_glyph_string_clipping_exactly): Set
2054 src->clip_head and src->clip_tail temporarily instead of src->hl.
2055
2056 * ccl.c (CCL_WRITE_STRING): Handle a flag bit for multibyte
2057 character sequence.
2058 (Fccl_execute_on_string): Use ASET, not XSET.
2059
2060 2008-02-02 Kenichi Handa <handa@m17n.org>
2061
2062 * search.c (search_buffer): Fix handling of "\\" in a trivial
2063 regexp.
2064
2065 2008-02-02 Kenichi Handa <handa@m17n.org>
2066
2067 * coding.c (decode_coding): Fix the condition of terminating the
2068 decoding loop.
2069
2070 2008-02-02 Kenichi Handa <handa@m17n.org>
2071
2072 * data.c (Faset): On setting a character bigger than 255 in a
2073 unibyte string, signal an error instead of make the string
2074 multibyte.
2075
2076 2008-02-02 Kenichi Handa <handa@m17n.org>
2077
2078 * charset.c (map_charset_chars): Fix for ascii-compatible charset
2079 made by a mapping table.
2080
2081 2008-02-02 Kenichi Handa <handa@m17n.org>
2082
2083 * xdisp.c (fill_composite_glyph_string): Check s->face is NULL or
2084 not.
2085 (BUILD_COMPOSITE_GLYPH_STRING): If C is TAB, set s->face to NULL.
2086 (x_produce_glyphs): If CH is TAB, set cmp->offsets properly.
2087
2088 * xterm.c (x_draw_composite_glyph_string_foreground): Check
2089 s->face is NULL or not.
2090
2091 2008-02-02 Kenichi Handa <handa@m17n.org>
2092
2093 * xterm.c (x_set_glyph_string_clipping_exactly): New function.
2094 (x_draw_glyph_string): Fix drawing of right_overhang and
2095 left_overhang around/on cursor.
2096
2097 * xdisp.c (draw_glyphs): Fix inclusion of right_overwriting
2098 glyphs.
2099
2100 * term.c (produce_glyphs): Sync to HEAD.
2101
2102 2008-02-02 Kenichi Handa <handa@m17n.org>
2103
2104 * xdisp.c (x_produce_glyphs): Handle composition with TAB.
2105
2106 2008-02-02 Kenichi Handa <handa@m17n.org>
2107
2108 * coding.c: Cancel incorrect synching with HEAD.
2109
2110 2008-02-02 Kenichi Handa <handa@m17n.org>
2111
2112 * coding.c (Fdefine_coding_system_internal): Avoid a duplicated
2113 element in Vcoding_system_alist.
2114 (Fdefine_coding_system_alias): Likewise.
2115
2116 2008-02-02 Kenichi Handa <handa@m17n.org>
2117
2118 * xterm.c (handle_one_xevent): Handle keysyms 0x1000000..0x10000FF.
2119
2120 * coding.c: Sync to HEAD for handling autoload-coding-system.
2121 (Qcoding_system_define_form): New variable.
2122 (syms_of_coding): Intern and staticpro it.
2123 (Fcoding_system_p): Check Qcoding_system_define_form.
2124 (Fcheck_coding_system): Try to autoload the definition of
2125 CODING-SYSTEM.
2126
2127 * coding.h (CODING_SYSTEM_P): If ID is not available, call
2128 Fcoding_system_p.
2129 (CHECK_CODING_SYSTEM): If ID is not available, call
2130 Fcheck_coding_system.
2131 (CHECK_CODING_SYSTEM_GET_SPEC): Try also Fcheck_coding_system.
2132 (CHECK_CODING_SYSTEM_GET_ID): Likewise.
2133
2134 2008-02-02 Kenichi Handa <handa@m17n.org>
2135
2136 * xterm.c (handle_one_xevent): Delete unnecessary code inserted by
2137 sync with HEAD.
2138
2139 * coding.c (code_conversion_restore): GCPRO arg.
2140
2141 2008-02-02 Kenichi Handa <handa@m17n.org>
2142
2143 * character.c (lisp_string_width): Check multibyteness of STRING.
2144
2145 2008-02-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2146
2147 * macterm.c (mac_encode_char): Call ccl_driver with the last arg
2148 Qnil. Use JIS_TO_SJIS instead of ENCODE_SJIS.
2149 (decode_mac_font_name): Use decode_coding_c_string instead of
2150 decode_coding.
2151 (x_load_font): Initialize fontp->fontset to -1. Set
2152 fontp->encoding_type.
2153
2154 2008-02-02 Kenichi Handa <handa@m17n.org>
2155
2156 * search.c (search_buffer): Give up BM search on case-fold-search
2157 if one of a target character has a case-equivalence of different
2158 byte length even if that target charcter is an ASCII.
2159 (simple_search): Fix culculation of byte length of matched text.
2160 (boyer_moore): Fix handling of case-equivalent multibyte
2161 characters.
2162
2163 2008-02-02 Kenichi Handa <handa@m17n.org>
2164
2165 * coding.c (decode_coding): Fix handling of invalid bytes.
2166
2167 2008-02-02 Kenichi Handa <handa@m17n.org>
2168
2169 * xterm.c (handle_one_xevent): Handle keysyms directly mapped to
2170 Unicode characters.
2171
2172 2008-02-02 Kenichi Handa <handa@m17n.org>
2173
2174 * coding.c (encode_coding_object): If a pre-write-conversion
2175 function makes a new buffer, kill it.
2176
2177 2008-02-02 Kenichi Handa <handa@m17n.org>
2178
2179 * coding.c (QCascii_compatible_p): New variable.
2180 (syms_of_coding): Initialize it.
2181 (ONE_MORE_BYTE): Decrement `src' before calling string_char.
2182 (ONE_MORE_BYTE_NO_CHECK): Likewise.
2183 (record_conversion_result): Add `default:' case.
2184 (coding_charset_list): Delete unused variable `coding_type'.
2185 (Fdefine_coding_system_internal): Add `ascii-compatible-p'
2186 property in the plist of the coding system.
2187 (Fcoding_system_put): Check QCascii_compatible_p.
2188
2189 2008-02-02 Kenichi Handa <handa@m17n.org>
2190
2191 * xdisp.c (get_next_display_element): Sync with the change in
2192 HEAD (2008-02-02).
2193
2194 2008-02-02 Kenichi Handa <handa@m17n.org>
2195
2196 * callproc.c (Fcall_process): Sync with the change in
2197 HEAD (2008-02-02).
2198
2199 2008-02-02 Miles Bader <miles@gnu.org>
2200
2201 * xfaces.c (Finternal_lisp_face_equal_p): Restore previously
2202 removed calculation of frame `f', as it's now used.
2203
2204 2008-02-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2205
2206 * macterm.c (x_font_name_to_mac_font_name): Sync with trunk
2207 for the case that does not require code conversion.
2208
2209 2008-02-02 Kenichi Handa <handa@m17n.org>
2210
2211 * Makefile.in (shortlisp): Cancel previous change.
2212 (RUN_TEMACS): Include "-nl" if HAVE_SHM is defined.
2213 (emacs${EXEEXT}): Run $(RUN_TEMACS) unconditionally.
2214 (UNIDATA): New variable.
2215 (${lispsource}international/charprop.el): Depends on ${UNIDATA}.
2216 (bootstrap-emacs${EXEEXT}): Depends on charprop.el. Run
2217 $(RUN_TEMACS) unconditionally.
2218
2219 2008-02-02 Kenichi Handa <handa@m17n.org>
2220
2221 * Makefile.in (shortlisp): Add ../lisp/international/charprop.el.
2222 (temacs${EXEEXT}): Build charprop.el if necessary.
2223 (admindir): New variable.
2224 ($(lispsource)international/charprop.el): New target.
2225
2226 2008-02-02 Miles Bader <miles@gnu.org>
2227
2228 * character.c (chars-in-region): Obsolete function removed.
2229 (syms_of_character): Remove its initialization.
2230
2231 2008-02-02 Benjamin Riefenstahl <b.riefenstahl@turtle-trading.net>
2232
2233 * w32select.c (validate_coding_system)
2234 (setup_windows_coding_system): New functions.
2235 (convert_to_handle_as_coded, Fw32_get_clipboard_data): Use
2236 setup_windows_coding_system.
2237 (setup_config, Fw32_get_clipboard_data): Use
2238 validate_coding_system.
2239 (Fx_selection_exists): Move call to setup_config to a place
2240 were signals are allowed.
2241
2242 * lisp.h (Fcoding_system_base, Fcoding_system_eol_type)
2243 (Fcheck_coding_system): Add declarations.
2244
2245 2008-02-02 Kenichi Handa <handa@m17n.org>
2246
2247 * s/ms-w32.h (STDC_HEADERS): Sync with the change in
2248 HEAD (2008-02-02).
2249
2250 2008-02-02 Kenichi Handa <handa@m17n.org>
2251
2252 * charset.c (load_charset_map_from_vector): Fix for the first
2253 iteration.
2254
2255 2008-02-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2256
2257 * macfns.c (Fx_create_frame, x_create_tip_frame): Pass Lisp
2258 string as the second argument for x_new_fontset.
2259
2260 2008-02-02 Kenichi Handa <handa@m17n.org>
2261
2262 * fns.c (Fstring_as_multibyte): Fix the change for syncing with
2263 CVS head.
2264
2265 2008-02-02 Kenichi Handa <handa@m17n.org>
2266
2267 * search.c (search_buffer): Fix the change for syncing with CVS
2268 head.
2269 (search_buffer): Likewise.
2270
2271 2008-02-02 Kenichi Handa <handa@m17n.org>
2272
2273 * xdisp.c (get_next_display_element): Sync with CVS head.
2274
2275 2008-02-02 Kenichi Handa <handa@m17n.org>
2276
2277 * coding.c (decode_coding_object): Use safe_call1 instead of call1.
2278 (encode_coding_object): Use safe_call instead of call2.
2279
2280 2008-02-02 Kenichi Handa <handa@m17n.org>
2281
2282 * fontset.c (set_default_ascii_font): Fix the change for
2283 syncing with CVS head.
2284
2285 2008-02-02 Kenichi Handa <handa@m17n.org>
2286
2287 * fontset.c (Fset_fontset_font): Check family element of a given
2288 vector.
2289
2290 * Makefile.in (lisp): Include charprop.el.
2291
2292 2008-02-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2293
2294 * macfns.c (Fx_create_frame, x_create_tip_frame): Fix crash.
2295 Not sure if it's unnecessary.
2296
2297 2008-02-02 Steven Tamm <steventamm@mac.com>
2298
2299 * macfns.c (Fx_create_frame, x_create_tip_frame): ifdef'd out
2300 some possibly unnecessary fontset checking code that crashed
2301 when creating a new frame
2302
2303 2008-02-02 Kenichi Handa <handa@m17n.org>
2304
2305 * xfaces.c (merge_faces): Fix argument to lookup_derived_face and
2306 lookup_face.
2307
2308 * xdisp.c (Fformat_mode_line): Fix argument to lookup_named_face.
2309
2310 * fringe.c (draw_fringe_bitmap_1): Fix argument to
2311 lookup_named_face.
2312
2313 2008-02-02 Kenichi Handa <handa@m17n.org>
2314
2315 * xdisp.c (get_next_display_element): Sync to the change in HEAD
2316 on 2008-02-02.
2317
2318 2008-02-02 Kenichi Handa <handa@m17n.org>
2319
2320 * search.c: Sync to the change in HEAD on 2008-02-02, 20.
2321
2322 * w32console.c: Sync to the change in HEAD on 2008-02-02.
2323
2324 * coding.c: Cancel the change done in HEAD on 2008-02-02.
2325 (coding_charset_list): New function.
2326
2327 * coding.h (coding_charset_list): Extern it.
2328
2329 * term.c: Sync to the change in HEAD on 2008-02-02.
2330
2331 2008-02-02 Kenichi Handa <handa@m17n.org>
2332
2333 * fontset.c (Fset_fontset_font): Call find_font_encoding with
2334 concatenation of family and registry.
2335
2336 2008-02-02 Kenichi Handa <handa@m17n.org>
2337
2338 * character.h (BYTE8_STRING): Fix typo.
2339
2340 * editfns.c (Ftranslate_region_internal): Don't convert unibyte
2341 string to multibyte (sync to HEAD).
2342
2343 * casefiddle.c (casify_region): Handle changes in byte-length
2344 using replace_range_2 (sync to HEAD).
2345
2346 2008-02-02 Andreas Schwab <schwab@suse.de>
2347
2348 * chartab.c (map_char_table): GCPRO table and arg.
2349
2350 2008-02-02 Kenichi Handa <handa@m17n.org>
2351
2352 * syntax.c (skip_syntaxes): Return lispy 0 (not nil) if point is
2353 already at limit.
2354
2355 2008-02-02 Kenichi Handa <handa@m17n.org>
2356
2357 * fontset.c (fs_load_font): Use fast_string_match_ignore_case
2358 instead of fast_c_string_match_ignore_case.
2359 (find_font_encoding): Argument changed to Lisp_Object. Use
2360 fast_string_match_ignore_case instead of
2361 fast_c_string_match_ignore_case. Caller changed.
2362
2363 2008-02-02 Kenichi Handa <handa@m17n.org>
2364
2365 * xdisp.c (get_next_display_element): In unibyte case, decide to
2366 display in octal form by checking a chacter by
2367 UNIBYTE_CHAR_HAS_MULTIBYTE_P.
2368
2369 * charset.c (Fset_unibyte_charset): Setup
2370 unibyte_has_multibyte_table.
2371
2372 * character.c (unibyte_has_multibyte_table): New variable.
2373
2374 * character.h (unibyte_has_multibyte_table): Extern it.
2375 (UNIBYTE_CHAR_HAS_MULTIBYTE_P): New macro.
2376
2377 2008-02-02 Kenichi Handa <handa@m17n.org>
2378
2379 * callproc.c (Fcall_process): Fix merging of 2008-02-02 change.
2380
2381 2008-02-02 Kenichi Handa <handa@m17n.org>
2382
2383 * coding.c (encode_coding_iso_2022): Fix handling of charset
2384 annotation.
2385
2386 2008-02-02 Kenichi Handa <handa@m17n.org>
2387
2388 * coding.c (setup_coding_system): If coding_system is nil, use
2389 Qundecided.
2390 (Fterminal_coding_system): Return nil if terminal coding system is
2391 `undecided'.
2392 (syms_of_coding): Define coding-system `undecided' here. Setup
2393 terminal_coding as `undecided'.
2394
2395 2008-02-02 Kenichi Handa <handa@m17n.org>
2396
2397 * xdisp.c (message_dolog, set_message_1): Call
2398 unibyte_char_to_multibyte with arg type int.
2399
2400 * fileio.c (Fsubstitute_in_file_name): Fix previous change.
2401
2402 * lread.c (read1): Fix reading of a char-table.
2403
2404 * print.c (print_object): Include sub char-table in cicularities
2405 detection.
2406
2407 2008-02-02 Kenichi Handa <handa@m17n.org>
2408
2409 * keymap.c (where_is_internal_2): Fix for the case that KEY is a
2410 cons. Append the found sequences in car of ARGS instead of
2411 prepending.
2412
2413 2008-02-02 Kenichi Handa <handa@m17n.org>
2414
2415 * fileio.c (report_file_error): Make a unibyte string from
2416 strerror (errorno).
2417 (Fsubstitute_in_file_name): Fix the arg to
2418 unibyte_char_to_multibyte. It is evaluated twice.
2419
2420 2008-02-02 Kenichi Handa <handa@m17n.org>
2421
2422 * charset.h (CHAR_CHARSET): Shortcut for ASCII case.
2423
2424 2008-02-02 Kenichi Handa <handa@m17n.org>
2425
2426 * coding.c (detect_coding): Fix previous change.
2427
2428 2008-02-02 Kenichi Handa <handa@m17n.org>
2429
2430 * coding.c (detect_coding_utf_16): Don't set detect_info->found if
2431 BOM is not found.
2432 (detect_coding): Optimization for ISO-2022 when no 8-bit data is
2433 found.
2434 (detect_coding_system): Likewise.
2435
2436 2008-02-02 Jason Rumney <jasonr@gnu.org>
2437
2438 * w32fns.c (x_to_w32_font): Update to use new coding struct.
2439
2440 2008-02-02 Kenichi Handa <handa@m17n.org>
2441
2442 * charset.c (Fdeclare_equiv_charset): Fix handing of CHARS.
2443 (Fiso_charset): Likewise.
2444
2445 2008-02-02 Steven Tamm <steventamm@mac.com>
2446
2447 * macterm.c (mac_encode_char): Add charset argument and update
2448 to use encoding_type.
2449 (x_new_font,x_new_fontset): Merge in changes from xterm.c;
2450 switch to pure fontset
2451 (decode_mac_font_name): Temporarily remove decoding
2452 (x_font_name_to_mac_font_name): Temporarily remove encoding
2453 (x_load_font): Temporarily remove encoding
2454
2455 2008-02-02 Kenichi Handa <handa@m17n.org>
2456
2457 * xfaces.c (Fface_font): If frame is not on a window system,
2458 ignore CHARACTER arg. If HAVE_WINDOW_SYSTEM is not defined, don't
2459 refer to face->font.
2460 (split_font_name_into_vector, build_font_name_from_vector)
2461 (lookup_non_ascii_face, realize_non_ascii_face): Define them only
2462 whne HAVE_WINDOW_SYSTEM is defined.
2463
2464 2008-02-02 Kenichi Handa <handa@m17n.org>
2465
2466 * xdisp.c (BUILD_GLYPH_STRINGS): Check if s is NULL.
2467 (x_produce_glyphs): Fix setting of members of cmp in case
2468 cmp->glyph_len is zero,
2469
2470 * fontset.c (Fset_fontset_font): Docstring fixed.
2471 (Ffontset_info): Make it backward compatible. New arg ALL.
2472
2473 2008-02-02 Kim F. Storm <storm@cua.dk>
2474
2475 * process.c (read_process_output): Grow decoding_buf when needed;
2476 this could cause a crash in allocate_string and compact_small_strings.
2477
2478 2008-02-02 Kenichi Handa <handa@m17n.org>
2479
2480 * fileio.c (WRITE_BUF_SIZE): This macro deleted.
2481 (e_write): Fix previous change.
2482
2483 2008-02-02 Kenichi Handa <handa@m17n.org>
2484
2485 * coding.c (setup_coding_system): Set coding->common_flags
2486 correctly for raw-text.
2487 (consume_chars): On encoding unibyte text by raw-text, don't check
2488 multibyte form.
2489 (encode_coding): On encoding by raw-text, never use translation
2490 tables.
2491
2492 * fileio.c (e_write): Short cut for the case of no encoding.
2493
2494 2008-02-02 Kenichi Handa <handa@m17n.org>
2495
2496 * coding.c (detect_coding): Delete unused variables.
2497 (detect_coding_system): Likewise.
2498
2499 2008-02-02 Kenichi Handa <handa@m17n.org>
2500
2501 * coding.c (encode_coding_utf_8): Fix handling of raw-byte char.
2502 (consume_chars): Fix handling of 8-bit bytes in unibyte source.
2503
2504 2008-02-02 Kenichi Handa <handa@m17n.org>
2505
2506 Sync all files to HEAD.
2507
2508 2008-02-02 Kenichi Handa <handa@m17n.org>
2509
2510 * coding.c (Ffind_coding_systems_region_internal): Include
2511 raw-text and no-conversion in the result.
2512
2513 * fontset.h: Sync to HEAD.
2514
2515 * fontset.c: Sync to HEAD.
2516
2517 2008-02-02 Kenichi Handa <handa@m17n.org>
2518
2519 * fontset.c (find_font_encoding): Return `ascii' for unknown
2520 encoding.
2521 (load_font_get_repertory): Delete unnecessary check of ENCODING of
2522 FONT_DEF.
2523 (font_def_arg, add_arg, from_arg, to_arg): New args.
2524 (set_fontset_font): Argument changed.
2525 (Fset_fontset_font): Fix for the case that TARGET is a script
2526 name and charset name.
2527 (new_fontset_from_font_name): Fix argument to Fnew_fontset.
2528
2529 2008-02-02 Kenichi Handa <handa@m17n.org>
2530
2531 * fontset.c (fontset_font): Renamed from fontset_face. Return
2532 value changed.
2533 (face_suitable_for_char_p): Adjusted for the change of
2534 fontset_font.
2535 (face_for_char): Likewise.
2536 (make_fontset_for_ascii_face): Fix setting of the fontset element
2537 for ASCII.
2538 (Finternal_char_font): Use fontset_font instead of FACE_FOR_CHAR
2539 to get a font name.
2540 (Ffontset_info): Adjusted for the change of fontset_font.
2541
2542 * composite.c: Sync to HEAD.
2543
2544 * search.c: Sync to HEAD.
2545
2546 * coding.c: Sync to HEAD.
2547 (emacs_mule_char): Check invalid code more regidly.
2548
2549 * coding.h: Sync to HEAD.
2550
2551 * charset.c: Sync to HEAD.
2552
2553 * charset.h: Sync to HEAD.
2554
2555 * character.h (LEADING_CODE_LATIN_1_MIN)
2556 (LEADING_CODE_LATIN_1_MAX): Delete these macros.
2557
2558 2008-02-02 Kenichi Handa <handa@m17n.org>
2559
2560 * category.h: Sync to HEAD.
2561
2562 * category.c: Sync to HEAD.
2563
2564 * syntax.h: Sync to HEAD.
2565
2566 * syntax.c: Sync to HEAD.
2567
2568 * regex.h: Sync to HEAD.
2569
2570 * regex.c: Sync to HEAD.
2571
2572 2008-02-02 Kenichi Handa <handa@m17n.org>
2573
2574 * editfns.c: Sync to HEAD.
2575 (check_translation): New function.
2576 (Ftranslate_region_internal): Handle M:N mapping.
2577
2578 2008-02-02 Kenichi Handa <handa@m17n.org>
2579
2580 * xfaces.c (xlfd_point_size): Set font->numeric[XLFD_PIXEL_SIZE].
2581
2582 2008-02-02 Kenichi Handa <handa@m17n.org>
2583
2584 * coding.c (DECODE_DESIGNATION): Set chars_96 to -1 instead of
2585 goto invalid_code.
2586 (decode_coding_iso_2022): Fix handling of invalid designation.
2587
2588 * fileio.c (Finsert_file_contents): Be sure to call unbind_to
2589 after calling code_conversion_save.
2590
2591 2008-02-02 Kenichi Handa <handa@m17n.org>
2592
2593 * xdisp.c (handle_auto_composed_prop): Fix Lisp_Object/int mixup.
2594
2595 * print.c (print_prune_string_charset): Fix Lisp_Object/int mixup.
2596
2597 * fontset.c: Include "intervals.h".
2598 (fontset_face): Fix comparing of Lisp_Objects.
2599 (free_face_fontset): Fix Lisp_Object/int mixup.
2600 (new_fontset_from_font_name): Likewise.
2601
2602 * editfns.c (Ftranslate_region_internal): Fix Lisp_Object/int mixup.
2603
2604 * coding.c: Add many prototypes for static functions.
2605 (get_translation_table): Allow max_lookup to be NULL.
2606 (decode_coding): Call get_translation_table with max_lookup NULL.
2607 (Ffind_coding_systems_region_internal): Likewise.
2608 (Funencodable_char_position, Fcheck_coding_systems_region):
2609 Likewise.
2610
2611 2008-02-02 Kenichi Handa <handa@m17n.org>
2612
2613 * coding.c (get_translation_table): Declare it as Lisp_Object.
2614 (LOOKUP_TRANSLATION_TABLE): New macro.
2615 (produce_chars): Use LOOKUP_TRANSLATION_TABLE instead of
2616 CHAR_TABLE_REF.
2617 (consume_chars): Likewise.
2618
2619 2008-02-02 Kenichi Handa <handa@m17n.org>
2620
2621 * coding.c (MAX_ANNOTATION_LENGTH): Adjusted for the change of
2622 annotation data format.
2623 (ADD_ANNOTATION_DATA, ADD_COMPOSITION_DATA, ADD_CHARSET_DATA):
2624 Change arguments FROM and TO to single argument NCHARS. Caller
2625 changed.
2626 (decode_coding_utf_8): Pay attention to coding->charbuf_used.
2627 (decode_coding_utf_16, decode_coding_emacs_mule)
2628 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
2629 (decode_coding_ccl, decode_coding_charset): Likewise.
2630 (get_translation): New function.
2631 (produce_chars): New arguments translation_table and last_block.
2632 Translate characters here. Return number of carryover chars.
2633 Caller changed.
2634 (produce_composition): New argument pos. Caller changed.
2635 Adjusted for the change of annotation data format.
2636 (produce_charset, produce_annotation): Likewise.
2637 (decode_coding, encode_coding): Don't call translate_chars.
2638 (consume_chars): New arg translation_table. Caller changed.
2639 (translate_chars): Deleted.
2640 (syms_of_coding): Make translation-table's number of extra slots
2641 2.
2642
2643 2008-02-02 Kenichi Handa <handa@m17n.org>
2644
2645 * search.c (simple_search): Fix setting this_pos_byte in backward
2646 search.
2647
2648 * coding.c (detect_coding_emacs_mule): Fix counting of encoded
2649 byte sequence.
2650 (detect_coding_ccl): Fix setting of the variable valids.
2651
2652 2008-02-02 Kenichi Handa <handa@m17n.org>
2653
2654 * xterm.c (x_list_fonts): Fix the detection of an auto-scaled font.
2655
2656 * coding.c (decode_coding_utf_16): Fix handling of surrogate pair.
2657
2658 * editfns.c (Ftranslate_region_internal): Renamed from
2659 Ftranslate_region. Accept a char-table in TABLE.
2660 (syms_of_editfns): Defsubr Stranslate_region_internal.
2661
2662 * xfaces.c (set_lface_from_font_name): If a font is specified for
2663 a frame, generate a fontset from the font.
2664 (build_scalable_font_name): If the scalable font is requested for
2665 a specific size, don't change that size.
2666 (try_font_list): Try a scalable font also in the case that a
2667 pattern string is specified,
2668
2669
2670 2008-02-02 Kenichi Handa <handa@m17n.org>
2671
2672 * xfaces.c (Fface_font): New optional arg CHARACTER.
2673
2674 2008-02-02 Kenichi Handa <handa@m17n.org>
2675
2676 * charset.h (CHARSET_OFFSET): New macro.
2677
2678 2008-02-02 Kenichi Handa <handa@m17n.org>
2679
2680 * xterm.c (x_get_font_repertory): Fix for non-Unicode-bmp charset.
2681
2682 * fontset.c (fontset_face): Handle the case that repertory is a
2683 char-table.
2684 (find_font_encoding): Return nil for unknown encoding.
2685 (Fset_fontset_font): Ignore a font of unknown encoding.
2686
2687 2008-02-02 Kenichi Handa <handa@m17n.org>
2688
2689 * keymap.c (describe_vector): Handle default value of a char
2690 table.
2691
2692 * fontset.c (fontset_face): Handle fallback fonts correctly.
2693 (Ffontset_info): Return infomation about fallback fonts.
2694
2695 2008-02-02 Kenichi Handa <handa@m17n.org>
2696
2697 * fontset.c (FONTSET_DEFAULT): New macro.
2698 (FONTSET_ADD): Handle the case that range is nil.
2699 (fontset_add): Likewise.
2700 (Fset_fontset_font): Change the 2nd arg name to TARGET, and handle
2701 the case that it is nil.
2702 (dump_fontset): Call FONTSET_DEFAULT, not FONTSET_FALLBACK.
2703 (syms_of_fontset): Set char-table-extra-slots property of fontset
2704 to 9.
2705
2706 * charset.h (CHAR_CHARSET_P): Fix for the case that the method is
2707 subset or superset.
2708
2709 2008-02-02 Kenichi Handa <handa@m17n.org>
2710
2711 * emacs.c (main): Call init_charset after syms_of_XXX.
2712
2713 * charset.c (Vcharset_map_directory): Deleted.
2714 (Vcharset_map_path): New variable
2715 (load_charset_map_from_file): Use Vcharset_map_path instead.
2716 (init_charset): Initialize Vcharset_map_path.
2717 (syms_of_charset): Delete declaration of "charset-map-directory",
2718 add declaration of "charset-map-path".
2719
2720 2008-02-02 Kenichi Handa <handa@m17n.org>
2721
2722 * fns.c (string_char_to_byte): Optimize for ASCII only string.
2723 (string_byte_to_char): Likewise.
2724
2725 * fileio.c (Finsert_file_contents): Avoid detecting a code twice.
2726
2727 * coding.c (detect_coding_iso_2022): Fix handling of SS2 and SS3.
2728 (detect_coding): Treat '\0' as normal ASCII byte..
2729 (detect_coding_system): Likewise.
2730
2731 2008-02-02 Kenichi Handa <handa@m17n.org>
2732
2733 * coding.h (SJIS_TO_JIS2, JIS_TO_SJIS2): New macros.
2734
2735 * coding.c (QCmnemonic, QCdefalut_char)
2736 (QCdecode_translation_table, QCencode_translation_table)
2737 (QCpost_read_conversion, QCpre_write_conversion): New variables.
2738 (get_translation_table): Return a list of translation tables if
2739 necessary.
2740 (decode_coding): Call get_translation_table with ENCODEP 0.
2741 (char_encodable_p): If translation_table is non-nil, always call
2742 translate_char.
2743 (Fdefine_coding_system_internal): Accept list of translation
2744 tables as :encode-translation-table and :decode-translation-table.
2745 (Fcoding_system_put): New function.
2746 (syms_of_coding): Declare new symbols. Defsubr
2747 Scoding_system_put.
2748 (decode_coding_sjis): Handle 4th charset (typically JISX0212).
2749 (encode_coding_sjis): Likewise.
2750
2751 * charset.c (map_charset_chars): Fix arg to map_charset_chars in
2752 when the charset is superset type.
2753
2754 * character.c (translate_char): Accept list of translation tables.
2755
2756 2008-02-02 Kenichi Handa <handa@m17n.org>
2757
2758 * coding.h (enum coding_attr_index): New member
2759 coding_attr_trans_tbl.
2760 (CODING_ATTR_TRANS_TBL): New macro.
2761
2762 * coding.c (get_translation_table): New function.
2763 (translate_chars): Fix the bug of skipping annotation data.
2764 (decode_coding): Utilze get_translation_table.
2765 (encode_coding): Likewise.
2766 (char_encodable_p): Translate char if necessary.
2767 (Funencodable_char_position): Likewise.
2768 (Ffind_coding_systems_region_internal): Setup translation table
2769 for encode in a coding system attribute vector in advance.
2770 (Fcheck_coding_systems_region): Likewise.
2771 (Fdefine_coding_system_internal): Allow a symbol as translation
2772 table. For shift-jis type coding system, allow 4th charset.
2773
2774 2008-02-02 Kenichi Handa <handa@m17n.org>
2775
2776 * coding.c (decode_coding_sjis): Check the first byte rigidly.
2777
2778 * xdisp.c (get_next_display_element): Pass -1 as POS to
2779 FACE_FOR_CHAR if displaying a C-string.
2780
2781 2008-02-02 Kenichi Handa <handa@m17n.org>
2782
2783 * composite.c (get_composition_id): Handle xoff and yoff in a
2784 composition rule.
2785
2786 * composite.h (COMPOSITION_DECODE_RULE): New arg xoff and yoff.
2787 (struct composition): New member lbearing and rbearing.
2788
2789 * xdisp.c (move_it_to): Optimize for the case (op & MOVE_TO_Y).
2790 (x_get_glyph_overhangs): Handle a composition glyph.
2791 (x_produce_glyphs): Setup lbearing and rbreaing for a composition
2792 glyph.
2793
2794 * xterm.c (x_compute_glyph_string_overhangs): Handle also a
2795 composition glyph.
2796
2797 2008-02-02 Kenichi Handa <handa@m17n.org>
2798
2799 * print.c: Include charset.h.
2800 (Vprint_charset_text_property): New variable.
2801 (Qdefault): Extern it.
2802 (PRINT_STRING_NON_CHARSET_FOUND)
2803 (PRINT_STRING_UNSAFE_CHARSET_FOUND): New macros.
2804 (print_check_string_result): New variable.
2805 (print_check_string_charset_prop): New function.
2806 (print_prune_charset_plist): New variable.
2807 (print_prune_string_charset): New function.
2808 (print_object): Call print_prune_string_charset if
2809 Vprint_charset_text_property is not t.
2810 (print_interval): Print nothing if itnerval->plist is nil.
2811 (syms_of_print): Declare Vprint_charset_text_property as a lisp
2812 variable. Init and staticpro print_prune_charset_plist.
2813
2814 2008-02-02 Kenichi Handa <handa@m17n.org>
2815
2816 * fontset.c (new_fontset_from_font_name): Use the specified font
2817 for all characters in the new fontset.
2818
2819 * macterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
2820 OBJECT args.
2821
2822 * xdisp.c (x_produce_glyphs): Call FACE_FOR_CHAR with POS and
2823 OBJECT args for composition too.
2824
2825 * w32term.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
2826 OBJECT args.
2827
2828 2008-02-02 Kenichi Handa <handa@m17n.org>
2829
2830 * dispextern.h (FACE_FOR_CHAR): New args POS and OBJECT.
2831
2832 * fontset.c (reorder_font_vector): Adjusted for the change of
2833 FONT_DEF format.
2834 (fontset_face): New arg id. Caller changed.
2835 (face_for_char): New args pos and object.
2836 (make_fontset_for_ascii_face): Adjusted for the change of FONT_DEF
2837 format.n
2838 (fs_query_fontset): Check NAME by Fassoc too.
2839 (Fset_fontset_font): Allow non-XLFD font name.
2840 (Ffontset_info): Adjusted for the change of FONT_DEF format.
2841
2842 * fontset.h (face_for_char): Prototype adjusted.
2843
2844 * xdisp.c (face_before_or_after_it_pos): Call FACE_FOR_CHAR with
2845 POS and OBJECT args.
2846 (get_next_display_element): Likewise.
2847 (append_space): Likewise.
2848 (extend_face_to_end_of_line): Likewise.
2849 (get_char_face_and_encoding): Likewise.
2850 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2851 (x_produce_glyphs): Likewise.
2852
2853 * xfaces.c (compute_char_face): Call FACE_FOR_CHAR with
2854 POS and OBJECT args.
2855
2856 * xterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with
2857 POS and OBJECT args.
2858
2859 2008-02-02 Jason Rumney <jasonr@gnu.org>
2860
2861 * w32select.c (Fw32_set_clipboard_data): Avoid potential realloc
2862 of GlobalAlloc'ed memory.
2863
2864 2008-02-02 Kenichi Handa <handa@m17n.org>
2865
2866 * ccl.c (Fccl_execute_on_string): Fix the condition of loop.
2867
2868 * charset.h (charset_table_used): Delete extern.
2869
2870 * charset.c (charset_table_used): Make it static.
2871 (map_charset_chars): Fix args to c_function with.
2872
2873 * chartab.c (map_sub_char_table_for_charset): Fix args to
2874 c_function with.
2875
2876 * coding.h (enum coding_result_code): Delete
2877 CODING_RESULT_INSUFFICIENT_CMP, add CODING_RESULT_INVALID_SRC.
2878
2879 * coding.c (Qinsufficient_source, Qinconsistent_eol)
2880 (Qinvalid_source, Qinterrupted, Qinsufficient_memory): New
2881 variables.
2882 (Vlast_code_conversion_error): New variables.
2883 (syms_of_coding): DEFSYM or DEFVAR_LISP them.
2884 (ONE_MORE_BYTE): Record error if any instead of signaling an
2885 error. If non-ASCII multibyte char is found, return the negative
2886 value of the code. All callers changed to check it.
2887 (ONE_MORE_BYTE_NO_CHECK): Likewise.
2888 (record_conversion_result): New function. All codes setting
2889 coding->result are changed to call this function.
2890 (detect_coding_utf_8): Don't use the local variable incomplete.
2891 (decode_coding_utf_8): Likewise.
2892 (emacs_mule_char): Change the second arg to `const'.
2893 (detect_coding_emacs_mule): Don't use the local variable
2894 incomplete.
2895 (detect_coding_sjis): Likewise.
2896 (detect_coding_big5): Likewise.
2897 (decode_coding): Fix of flushing out unprocessed data.
2898 (make_conversion_work_buffer): Fix making of a work buffer.
2899 (decode_coding_object): Return coding->dst_object;
2900
2901 * fontset.c (set_fontset_font): Fix args.
2902
2903 * lisp.h (CHARACTERBITS): Define as 22.
2904
2905 * process.c (send_process): Be sure to set coding->src_multibyte.
2906
2907 * xdisp.c (handle_auto_composed_prop): Fix setting of limit.
2908
2909 2008-02-02 Kenichi Handa <handa@m17n.org>
2910
2911 * xdisp.c (handle_auto_composed_prop): Give limit to
2912 Fnext_single_char_property_change.
2913
2914 2008-02-02 Kenichi Handa <handa@m17n.org>
2915
2916 * coding.c (detect_coding): Fix previous change.
2917 (detect_coding_system): Likewise.
2918
2919 2008-02-02 Kenichi Handa <handa@m17n.org>
2920
2921 * composite.c (syms_of_composite): Don't make the compostion hash
2922 table week.
2923
2924 * fontset.c (Fset_fontset_font): Fix docstring.
2925
2926 * lisp.h (detect_coding_system): Adjust prototype.
2927
2928 * fileio.c (kill_workbuf_unwind): Delete this function.
2929 (Finsert_file_contents): Adjust the call of detect_coding_system.
2930 Get conversion_buffer by code_conversion_save. Use the macor
2931 CODING_MAY_REQUIRE_DECODING. After decoding, update
2932 coding_system.
2933
2934 * coding.h (make_conversion_work_buffer): Delete extern.
2935 (code_conversion_save): Extern it.
2936
2937 * coding.c (enum iso_code_class_type): Delete ISO_carriage_return.
2938 (CODING_GET_INFO): Delete argument eol_type. Callers changed.
2939 (decode_coding_utf_8): Don't do eol converion.
2940 (detect_coding_utf_16): Check coding->src_chars, not
2941 coding->src_bytes. Add heuristics for those that have no
2942 signature.
2943 (decode_coding_emacs_mule): Don't do eol converion.
2944 (decode_coding_iso_2022): Likewise.
2945 (decode_coding_sjis): Likewise.
2946 (decode_coding_big5): Likewise.
2947 (decode_coding_charset): Likewise.
2948 (adjust_coding_eol_type): Return a new coding system.
2949 (detect_coding): Don't detect eol. Fix for utf-16 detection.
2950 (decode_eol): In case of CRLF->LF conversion, use del_range_2 on
2951 each change.
2952 (decode_coding): Pay attention to undo_list. Do eol convesion for
2953 all types of coding-systems (if necessary).
2954 (Vcode_conversion_work_buf_list): Delete it.
2955 (Vcode_conversion_reused_workbuf): Renamed from
2956 Vcode_conversion_reused_work_buf.
2957 (Vcode_conversion_workbuf_name): New variable.
2958 (reused_workbuf_in_use): New variable.
2959 (make_conversion_work_buffer): Delete the arg DEPTH.
2960 (code_conversion_restore): Argument changed to cons.
2961 (code_conversion_save): Delete the argument BUFFER. Callers
2962 changed.
2963 (detect_coding_system): New argument src_chars. Callers changed.
2964 Fix for utf-16 detection.
2965 (init_coding_once): Don't use ISO_carriage_return.
2966 (syms_of_coding): Initialized Vcode_conversion_workbuf_name and
2967 reused_workbuf_in_use.
2968
2969 2008-02-02 Kenichi Handa <handa@m17n.org>
2970
2971 * keymap.c (store_in_keymap): Pay attention to the case that idx
2972 is a cons specifying a character range.
2973
2974 * coding.c (Fdefine_coding_system_internal): Fix previous change.
2975
2976 2008-02-02 Kenichi Handa <handa@m17n.org>
2977
2978 * xdisp.c (handle_auto_composed_prop): Fix the case of returning
2979 HANDLED_RECOMPUTE_PROPS.
2980
2981 * coding.c (Fdefine_coding_system_internal): Fix checking of
2982 ascii compatibility.
2983
2984 2008-02-02 Kenichi Handa <handa@m17n.org>
2985
2986 * charset.c (find_charsets_in_text): Delete unused locale
2987 variable.
2988 (Fset_charset_priority): Update Vemacs_mule_charset_list too.
2989
2990 * coding.c (encode_coding_emacs_mule): Emit bytes with MSB.
2991 Resync charset_list to Vemacs_mule_charset_list.
2992
2993 * keymap.c (store_in_keymap): Pay attention to the case that idx
2994 is a cons specifying a character range.
2995
2996 2008-02-02 Kenichi Handa <handa@m17n.org>
2997
2998 * composite.c (update_compositions): Bind inhibit-read-only, etc
2999 to t before calling remove-list-of-text-properties.
3000
3001 * print.c (print_object): Always print ASCII chars as is.
3002
3003 2008-02-02 Kenichi Handa <handa@m17n.org>
3004
3005 * keymap.c (Fdefine_key): Fix handling of Lucid style event type
3006 list.
3007
3008 * fns.c (Fmapconcat): Signal an error if SEQUENCE is a char table.
3009 (Fmapcar): Likewise.
3010 (Fmapc): Likewise.
3011
3012 2008-02-02 Kenichi Handa <handa@m17n.org>
3013
3014 * syntax.c (skip_chars): Be sure to alloca char_ranges when
3015 necessary.
3016
3017 2008-02-02 Kenichi Handa <handa@m17n.org>
3018
3019 * xfaces.c (set_lface_from_font_name): Fix for the case that
3020 FONTNAME is not fontset name.
3021
3022 2008-02-02 Kenichi Handa <handa@m17n.org>
3023
3024 * fns.c (base64_encode_1): Fix previous change.
3025
3026 2008-02-02 Kenichi Handa <handa@m17n.org>
3027
3028 * fontset.c (set_fontset_font): New function.
3029 (Fset_fontset_font): If a font is specified for a charset, use
3030 map_charset_chars to store the font spec in a fontset.
3031
3032 2008-02-02 Kenichi Handa <handa@m17n.org>
3033
3034 * fontset.c (fontset_face): Create a fallback fontset on demand
3035 (make_fontset): Don't create a fallback fontset here.
3036 (free_face_fontset): Free a fallback fontset (if any) too.
3037 (n_auto_fontsets): Delete this variable.
3038 (auto_fontset_alist): New variable.
3039 (new_fontset_from_font_name): Check auto_fontset_alist.
3040 (dump_fontset) [FONTSET_DEBUG]: Fully re-written.
3041 (Ffontset_list_all) [FONTSET_DEBUG]: New function.
3042 (syms_of_fontset): Initialize and staticpro auto_fontset_alist.
3043 Defsubr Sfontset_list_all.
3044
3045 2008-02-02 Kenichi Handa <handa@m17n.org>
3046
3047 * xterm.c (x_list_fonts): Fix excluding of auto-scaled fonts.
3048
3049 2008-02-02 Kenichi Handa <handa@m17n.org>
3050
3051 * fontset.c (Fnew_fontset): Check NAME more rigidly.
3052
3053 2008-02-02 Kenichi Handa <handa@m17n.org>
3054
3055 * editfns.c (Fgoto_char): Fix docstring.
3056
3057 2008-02-02 Kenichi Handa <handa@m17n.org>
3058
3059 * insdel.c (insert_from_gap): Adjust intervals correctly.
3060
3061 2008-02-02 Jason Rumney <jasonr@gnu.org>
3062
3063 * w32term.c (GLYPHSET, WCRANGE): Define if system headers don't.
3064 (pfnGetFontUnicodeRanges): New dynamically loaded function.
3065 (w32_initialize): Try to load it.
3066 (x_get_font_repertory): Use it if available.
3067 (w32_encode_char): Add shortcut for unicode output.
3068
3069 * w32fns.c (w32_load_system_font): Default charset to -1.
3070 (x_to_w32_charset): Match all fonts for unicode.
3071 (w32_to_x_charset): New parameter matching. Don't return partial
3072 or wildcard charsets.
3073 (w32_to_all_x_charsets): Don't return partial or wildcard charsets.
3074 (w32_codepage_for_font): Return CP_UNICODE for unicode.
3075 (w32_to_x_font): Match charset to real charset.
3076 (enum_font_cb2): Always list unicode versions.
3077
3078 * makefile.w32-in (temacs): Increase EMHEAP.
3079
3080 2008-02-02 Jason Rumney <jasonr@gnu.org>
3081
3082 * w32term.c (w32_encode_char): New charset parameter.
3083 font_info.encoding becomes encoding_type.
3084 (x_get_font_repertory): New function. Warning: stub only!
3085 (x_new_font): Return quickly if font already set.
3086 (x_new_fontset): fontsetname parameter is Lisp_Object.
3087 Use new fs_query_fontset. Try new_fontset_from_font_name. Use
3088 fontset_name for return value.
3089
3090 * w32term.h: Declare x_get_font_repertory.
3091
3092 * w32select.c (Fw32_set_clipboard_data): Use string_x_string_p in
3093 place of find_charset_in_text. Use encode_coding_object in place
3094 of encode_coding.
3095 (Fw32_get_clipboard_data): Use decode_coding_c_string in place of
3096 decode_coding.
3097
3098 * w32fns.c (Fx_create_frame, x_create_tip_frame): Use new version
3099 of x_new_fontset.
3100 (w32_load_system_font): Initialize charset as unicode.
3101 font_info.encoding becomes encoding_type.
3102 (w32_to_x_font): Use decode_coding_c_string in place of
3103 decode_coding.
3104 (x_to_w32_font): Use encode_coding_object in place of
3105 encode_coding.
3106 (syms_of_w32fns): Set get_font_repertory_func.
3107
3108 * w32console.c: Include character.h. Use terminal_encode_buffer
3109 from term.c.
3110 (write_glyphs): Use new version of encode_terminal_code. Use
3111 encode_coding_object in place of encode_coding.
3112
3113 * w32bdf.c (w32_load_bdf_font): Clear font_info before filling.
3114 encoding becomes encoding_type.
3115
3116 * term.c (terminal_encode_buffer): Make externally visible.
3117
3118 * makefile.w32-in: Add character.h dependancies.
3119 (character.o, chartab.o): New targets.
3120
3121 2008-02-02 Kenichi Handa <handa@m17n.org>
3122
3123 * fileio.c (Finsert_file_contents) [DOS_NT]: Use the macro
3124 CODING_ID_EOL_TYPE..
3125
3126 2008-02-02 Andreas Schwab <schwab@suse.de>
3127
3128 * coding.c (produce_chars): Revert last change.
3129
3130 2008-02-02 Kenichi Handa <handa@m17n.org>
3131
3132 * charset.h (charset_unicode): Extern it.
3133
3134 * charset.c (string_xstring_p): Check by (C >= 0x100).
3135 (find_charsets_in_text): Format of the arc CHARSETS changed. New
3136 arg MULTIBYTE.
3137 (Ffind_charset_region, Ffind_charset_string): Adjusted for the
3138 change of find_charsets_in_text.
3139 (Fsplit_char): Fix doc. Never return unknown.
3140
3141 * chartab.c (char_table_translate): Use CHARACTERP, not INETEGERP.
3142
3143 * coding.c (Fdefine_coding_system_alias): Update
3144 Vcoding_system_list.
3145
3146 * fontset.c (load_font_get_repertory): Pay attention to the case
3147 that ENCODING of a font is specified by a char-table.
3148
3149 * xterm.c (x_get_font_repertory): Handle the case that the
3150 encoding of font is other than Unicode.
3151
3152 2008-02-02 Kenichi Handa <handa@m17n.org>
3153
3154 * term.c (encode_terminal_code): Don't handle glyph-table. Check
3155 if a character is encodable by the terminal coding system. If
3156 not, produces proper number of `?'s. Update
3157 terminal_encode_buffer and terminal_encode_buf_size if necessary.
3158 (produce_glyphs): Check by CHAR_BYTE8_P, not SINGLE_BYTE_CHAR_P.
3159
3160 2008-02-02 Kenichi Handa <handa@m17n.org>
3161
3162 * term.c (terminal_encode_buffer, terminal_encode_buf_size): New
3163 variables.
3164 (encode_terminal_code): Argument changed. Encode multiple
3165 characters at once. Store the result of encoding in
3166 terminal_encode_buffer.
3167 (write_glyphs): Adjusted for the change of encode_terminal_code.
3168 (insert_glyphs): Likewise.
3169 (term_init): Initialize terminal_encode_buffer and
3170 terminal_encode_buf_size.
3171
3172 * coding.c (consume_chars): If coding->src_object is nil, don't
3173 check annotation.
3174
3175 2008-02-02 Kenichi Handa <handa@m17n.org>
3176
3177 * character.c (char_string): Use ASCII_CHAR_P instead of
3178 SINGLE_BYTE_CHAR_P.
3179
3180 2008-02-02 Kenichi Handa <handa@m17n.org>
3181
3182 * xdisp.c (handle_auto_composed_prop): Check if the last
3183 characters of auto-composed region is newly composed with the
3184 following characters.
3185 (handle_composition_prop): Fix checking of point being inside
3186 composition.
3187
3188 2008-02-02 Kenichi Handa <handa@m17n.org>
3189
3190 * fns.c (concat): Don't change multibyteness of the result by
3191 concatenating an 8-bit character.
3192
3193 * data.c (Faset): Check newelt by CHECK_CHARACTER. Don't change
3194 multibyteness of the result when newelt is an 8-bit character.
3195
3196 2008-02-02 Dave Love <fx@gnu.org>
3197
3198 * xmenu.c (find_and_call_menu_selection): Make menu_bar_items_used
3199 EMACS_INT.
3200
3201 * xfns.c (DefaultDepthOfScreen, x_encode_text): Remove unused vars.
3202
3203 * xfaces.c (face_numeric_value): Declare dim size_t.
3204 (Finternal_lisp_face_equal_p): Remove unused f.
3205
3206 * xdisp.c (BUILD_CHAR_GLYPH_STRINGS, display_and_set_cursor)
3207 (MATRIX_ROW): Remove unused vars.
3208 (draw_glyphs, x_insert_glyphs, fast_find_position)
3209 (fast_find_position, fast_find_string_pos): Use EMACS_INT for
3210 byte/char counts.
3211
3212 * regex.c (regex_compile): Remove unused var.
3213
3214 * minibuf.c (Fminibuffer_complete_word): Remove unused var.
3215
3216 * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap)
3217 (Faccessible_keymaps, where_is_internal): Remove unused vars.
3218
3219 * keyboard.c (cancel_hourglass_unwind): Return Qnil.
3220
3221 * frame.c (frame_name_fnn_p): Make len EMACS_INT.
3222
3223 * fileio.c (Fwrite_region): Remove unused var.
3224
3225 * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
3226 (adjust_frame_glyphs_for_window_redisplay): Remove unused ch_dim.
3227
3228 * composite.c (Fremove_list_of_text_properties): Declare.
3229
3230 * coding.c (inhibit_pre_post_conversion): Removed (unused).
3231 (alloc_destination, produce_chars): Use EMACS_INT for byte/char
3232 counts.
3233 (coding_inherit_eol_type): Remove unused attrs.
3234 (detect_coding): Cast arg of detect_eol.
3235
3236 * charset.c (syms_of_charset): Remove unused var p.
3237 (find_charsets_in_text, Ffind_charset_region): Use EMACS_INT for
3238 byte/char counts.
3239
3240 * casetab.c (set_case_table): Remove unused var.
3241
3242 * window.c (Fdisplay_buffer, Fframe_selected_window): Remove
3243 unsued vars.
3244
3245 2008-02-02 Dave Love <fx@gnu.org>
3246
3247 * xterm.c (x_bitmap_mask): Declare.
3248
3249 2008-02-02 Dave Love <fx@gnu.org>
3250
3251 * xterm.c (x_term_init): Fix type error.
3252
3253 * lisp.h: Add Funibyte_char_to_multibyte.
3254
3255 * coding.c (Fread_coding_system): Fix arg of XSETSTRING.
3256 (Fset_coding_system_priority): Doc fix.
3257
3258 * alloc.c: Sync with HEAD version.
3259
3260 * ccl.c (ccl_driver): Fix arg of CHARACTERP.
3261
3262 * indent.c (check_composition): Make start and end EMACS_INT.
3263
3264 * character.c (lisp_string_width): Make ignore and end EMACS_INT.
3265
3266 * xdisp.c (handle_composition_prop, check_point_in_composition):
3267 Make buffer positions EMACS_INT.
3268
3269 * composite.c (find_composition, run_composition_function)
3270 (update_compositions, Ffind_composition_internal): Make buffer
3271 positions EMACS_INT.
3272
3273 * composite.h (find_composition, update_compositions): Make
3274 position args EMACS_INT.
3275
3276 * keyboard.c (adjust_point_for_property): Make beg and end
3277 EMACS_INT.
3278
3279 * intervals.c (get_property_and_range):
3280 * intervals.h (get_property_and_range): Make start and end EMACS_INT.
3281
3282 * unexalpha.c: Don't include varargs.h.
3283
3284 2008-02-02 Dave Love <fx@gnu.org>
3285
3286 * coding.h (ENCODE_UTF_8): New.
3287
3288 * Makefile.in (gtkutil.o): Depend on coding.h.
3289
3290 * coding.c (Fset_coding_system_priority): Doc fix.
3291
3292 2008-02-02 Kenichi Handa <handa@m17n.org>
3293
3294 * fileio.c (Finsert_file_contents): Call setup_coding_system in
3295 the case of auto saving.
3296
3297 2008-02-02 Andreas Schwab <schwab@suse.de>
3298
3299 * chartab.c (map_char_table): Protect `range' from GC.
3300 (map_char_table_for_charset): Likewise.
3301
3302 2008-02-02 Kenichi Handa <handa@m17n.org>
3303
3304 * coding.c (decode_coding_sjis): Check bytes more rigidly.
3305
3306 2008-02-02 Kenichi Handa <handa@m17n.org>
3307
3308 * fileio.c (choose_write_coding_system): Return a decided coding
3309 system.
3310 (Fwrite_region): Set Vlast_coding_system_used to the return value
3311 of choose_write_coding_system.
3312
3313 2008-02-02 Kenichi Handa <handa@m17n.org>
3314
3315 * charset.c (Fset_charset_priority): Pay attention to duplicated
3316 arguments.
3317
3318 * coding.c (QCcategory): New variable.
3319 (syms_of_coding): Defsym it. Set all elements of
3320 Vcoding_category_table and their symbol values.
3321 (Fset_coding_system_priority): Doc fix. Update symbol qvalues of
3322 coding-category-XXX, and coding-category-list.
3323 (Fdefine_coding_system_internal): Add category in the plist.
3324
3325 2008-02-02 Kenichi Handa <handa@m17n.org>
3326
3327 * callproc.c (Fcall_process): Handle carryover correctly.
3328
3329 * coding.c (decode_coding_iso_2022): Fix handling of invalid
3330 bytes.
3331 (raw_text_coding_system): Check NILP (coding_system).
3332 (coding_inherit_eol_type): Check NILP (coding_system) and
3333 NILP (parent).
3334 (consume_chars): Fix for the case of raw-text.
3335
3336 * process.c (read_process_output): Handle carryover correctly.
3337
3338 2008-02-02 Dave Love <fx@gnu.org>
3339
3340 * regex.c (re_search_2): Fix last change.
3341
3342 2008-02-02 Kenichi Handa <handa@m17n.org>
3343
3344 * regex.c (GET_CHAR_BEFORE_2): Check multibyte, not
3345 target_multibyte. Even in a unibyte case, return a converted
3346 multibyte char.
3347 (GET_CHAR_AFTER): New macro.
3348 (PATFETCH): Translate via multibyte char.
3349 (HANDLE_UNIBYTE_RANGE): Delete this macro.
3350 (SETUP_MULTIBYTE_RANGE): New macro.
3351 (regex_compile): Setup compiled code so that its multibyteness
3352 matches that of a target. Fix the handling of "[X-YZ]" using
3353 SETUP_MULTIBYTE_RANGE.
3354 (analyse_first) <charset>: For filling fastmap for all multibyte
3355 characters, don't check by BASE_LEADING_CODE_P.
3356 (re_search_2): Don't check RE_TARGET_MULTIBYTE_P (bufp). It is
3357 the same as RE_MULTIBYTE_P (bufp) now.
3358 (mutually_exclusive_p): Check by (! multibyte ||
3359 IS_REAL_ASCII (c)).
3360 (TARGET_CHAR_AND_LENGTH): Delete this macro.
3361 (TRANSLATE_VIA_MULTIBYTE): New macro.
3362 (re_match_2_internal): Don't check RE_TARGET_MULTIBYTE_P (bufp).
3363 It is the same as RE_MULTIBYTE_P (bufp) now.
3364 <exactn>: Translate via multibyte.
3365 <anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH. Don't
3366 translate it.
3367 <charset, charset_not>: Fetch a character by
3368 RE_STRING_CHAR_AND_LENGTH. Translate via multibyte.
3369 <duplicate>: Call bcmp_translate with the last arg `multibyte'.
3370 <wordbound, notwordbound, wordbeg, wordend, syntaxspec,
3371 notsyntaxspec, categoryspec, notcategoryspec> Fetch a character
3372 by GET_CHAR_AFTER.
3373 (bcmp_translate): Likewise.
3374
3375 * search.c (compile_pattern): Check the member target_multibyte,
3376 not the member multibyte of buf.
3377
3378 * lread.c (read1): While reading a string, set force_singlebyte
3379 and force_multibyte correctly.
3380
3381 * charset.c (Fset_unibyte_charset): Fix setting up of
3382 unibyte_to_multibyte_table.
3383 (init_charset_once): Likewise.
3384
3385 2008-02-02 Kenichi Handa <handa@m17n.org>
3386
3387 * coding.c (setup_coding_system): If coding has
3388 post-read-conversion or pre-write-conversion, set
3389 CODING_REQUIRE_DECODING_MASK and CODING_REQUIRE_ENCODING_MASK
3390 respectively.
3391 (decode_coding_gap): Run post-read-conversion if any.
3392
3393 * fileio.c (Finsert_file_contents): Even if we read into a
3394 unibyte buffer, check if we must decode the result or not.
3395
3396 2008-02-02 Kenichi Handa <handa@m17n.org>
3397
3398 * coding.c (make_conversion_work_buffer): Change the work buffer
3399 name to the same one as that of Emacs 21.
3400
3401 2008-02-02 Kenichi Handa <handa@m17n.org>
3402
3403 * coding.h (make_conversion_work_buffer): Prototype adjusted.
3404 (code_conversion_restore): Don't extern it.
3405
3406 * coding.c (detected_mask): Delete unused variable.
3407 (decode_coding_iso_2022): Pay attention to the byte sequence of
3408 CTEXT extended segment, and retain those bytes as is.
3409 (decode_coding_ccl): Delete unused variable `valids'.
3410 (setup_coding_system): Delete unused variable `category'.
3411 (consume_chars): Delete unused variable `category'. Make it work
3412 for non-multibyte case.
3413 (make_conversion_work_buffer): Argument changed.
3414 (saved_coding): Delete unused variable.
3415 (code_conversion_restore): Don't check saved_coding->destination.
3416 (code_conversion_save): New function.
3417 (decode_coding_gap, encode_coding_gap): Call code_conversion_save
3418 instead of record_unwind_protect.
3419 (decode_coding_object, encode_coding_object): Likewise. Recover
3420 PT.
3421 (detect_coding_system): Delete unused variable `mask'.
3422 (Fdefine_coding_system_internal): Delete unsed vaiable id;
3423
3424 * fileio.c (kill_workbuf_unwind): New function.
3425 (Finsert_file_contents): On replacing, call
3426 make_conversion_work_buffer with correct args, and call
3427 record_unwind_protect with the first arg kill_workbuf_unwind.
3428
3429 * lisp.h (Fgenerate_new_buffer_name): EXFUN it.
3430
3431 2008-02-02 Kenichi Handa <handa@m17n.org>
3432
3433 * fontset.c (BASE_FONTSET_P): Check FONTSET_BASE, not
3434 FONTSET_NAME.
3435 (fontset_add): Fix for the case that TO is less than TO1.
3436 (Ffontset_info): Don't use fallback fontset on checking the
3437 default fontset.
3438 (dump_fontset): New function for debugging.
3439
3440 * coding.c (Fdefine_coding_system_internal): Fix for the case that
3441 coding_type is Qcharset.
3442
3443 2008-02-02 Kenichi Handa <handa@m17n.org>
3444
3445 * chartab.c (map_sub_char_table): New argument DEFAULT_VAL.
3446 (map_char_table): Don't inherit the value from the parent on
3447 initializing VAL. Adjusted for the above change.
3448
3449 2008-02-02 Kenichi Handa <handa@m17n.org>
3450
3451 * coding.c (Qsignature, Qendian): Delete these variables.
3452 (syms_of_coding): Don't initialize them.
3453 (CATEGORY_MASK_UTF_16_AUTO): New macro.
3454 (detect_coding_utf_16): Add CATEGORY_MASK_UTF_16_AUTO in
3455 detect_info->found.
3456 (decode_coding_utf_16): Don't detect BOM here.
3457 (encode_coding_utf_16): Produce BOM if CODING_UTF_16_BOM (coding)
3458 is NOT utf_16_without_bom.
3459 (setup_coding_system): For a coding system of type utf-16, check
3460 if the attribute :endian is Qbig or not (not nil or not), and set
3461 CODING_REQUIRE_DETECTION_MASK if BOM detection is required.
3462 (detect_coding): If coding type is utf-16 and BOM detection is
3463 required, detect it.
3464 (Fdefine_coding_system_internal): For a coding system of type
3465 utf-16, check if the attribute :endian is Qbig or not (not nil or
3466 not).
3467
3468 2008-02-02 Kenichi Handa <handa@m17n.org>
3469
3470 * coding.c (coding_set_source): Fix for the case that the current
3471 buffer is different from coding->src_object.
3472 (decode_coding_object): Don't use the conversion work buffer if
3473 DST_OBJECT is a buffer.
3474
3475 2008-02-02 Dave Love <fx@gnu.org>
3476
3477 * lread.c (read_emacs_mule_char) [len==2]: Index
3478 emacs_mule_charset correctly.
3479
3480 2008-02-02 Dave Love <fx@gnu.org>
3481
3482 * coding.c (Qbig5, Vbig5_coding_system, CATEGORY_MASK_BIG5)
3483 (detect_coding_big5, decode_coding_big5, encode_coding_big5)
3484 (Fdecode_big5_char, Fencode_big5_char): Deleted. (Big5 no longer
3485 treated specially.)
3486 (setup_coding_system, coding_category, CATEGORY_MASK_ANY)
3487 (detected_mask): Remove Big5 bits.
3488
3489 2008-02-02 Kenichi Handa <handa@m17n.org>
3490
3491 The following changes are to make the font rescaling facility
3492 compatible with Emacs 21.
3493
3494 * xfaces.c (Vface_font_rescale_alist): Renamed from
3495 Vface_resizing_fonts.
3496 (struct font_name): Rename member resizing_ratio to rescale_ratio.
3497 (font_rescale_ratio): Renamed from font_resizing_ratio.
3498 (split_font_name): Set font->rescale_ratio.
3499 (better_font_p): Pay attention to font->rescale_ratio.
3500 (build_scalable_font_name): Likewise. Change RESX, and RESY
3501 fields.
3502 (syms_of_xfaces): Declare Vface_font_rescale_alist as a Lisp
3503 variable.
3504
3505 2008-02-02 Kenichi Handa <handa@m17n.org>
3506
3507 * coding.c (Qutf_16_be_nosig, Qutf_16_be, Qutf_16_le_nosig)
3508 (Qutf_16_le): Remove these variables.
3509 (syms_of_coding): Don't DEFSYM them.
3510 (decode_coding_utf_16): Fix handling of BOM.
3511 (encode_coding_utf_16): Fix handling of BOM.
3512
3513 2008-02-02 Kenichi Handa <handa@m17n.org>
3514
3515 * fileio.c (Finsert_file_contents): On replacing, before decoding
3516 the file into the work buffer, set point of the work buffer to the
3517 end.
3518
3519 2008-02-02 Dave Love <fx@gnu.org>
3520
3521 * coding.c (Fcheck_coding_systems_region): Fix type errors.
3522
3523 2008-02-02 Dave Love <fx@gnu.org>
3524
3525 * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
3526 and fix C types.
3527
3528 2008-02-02 Kenichi Handa <handa@m17n.org>
3529
3530 * xdisp.c (SKIP_GLYPHS): New macro.
3531 (set_cursor_from_row): Pay attention to string display properties.
3532
3533 * category.c (copy_category_entry): Fix for the case that RANGE
3534 is an integer.
3535
3536 * xterm.c (x_encode_char): Call ccl_driver with the last arg Qnil.
3537
3538 * w32term.c (w32_encode_char): Call ccl_driver with the last arg
3539 Qnil.
3540
3541 2008-02-02 Kenichi Handa <handa@m17n.org>
3542
3543 * charset.c (Fcharset_id_internal): New function.
3544 (syms_of_charset): Defsubr it.
3545
3546 * coding.c (decode_coding_ccl, encode_coding_ccl): Call ccl_driver
3547 with the last arg charset_list acquired from coding.
3548 (Fdefine_coding_system_internal): For ccl-based coding system, fix
3549 the attribute coding_attr_ccl_valids.
3550
3551 * coding.h (enum define_coding_ccl_arg_index): Set the first
3552 member coding_arg_ccl_decoder to coding_arg_max.
3553
3554 * ccl.h (ccl_driver): Prototype adjusted.
3555
3556 * ccl.c (CCL_DECODE_CHAR, CCL_ENCODE_CHAR): New macros.
3557 (ccl_driver): New arg CHARSET_LIST. Use the above macros instead
3558 of DECODE_CAHR, ENCODE_CHAR, CHAR_CHARSET.
3559 (Fccl_execute): Call ccl_driver with the last arg Qnil.
3560 (Fccl_execute_on_string): Likewise.
3561
3562 2008-02-02 Kenichi Handa <handa@m17n.org>
3563
3564 * charset.h (ENCODE_CHAR): If the method is SUBSET or SUPERSET,
3565 call encode_char.
3566
3567 * charset.c (encode_char): Fix handling of methods SUBSET and
3568 SUPERSET.
3569
3570 * xterm.c (x_new_fontset): Fix previous change.
3571
3572 2008-02-02 Dave Love <fx@gnu.org>
3573
3574 * composite.c (syms_of_composite): Make composition_hash_table
3575 weak.
3576
3577 2008-02-02 Kenichi Handa <handa@m17n.org>
3578
3579 * dispextern.h (check_face_attributes, generate_ascii_font_name)
3580 (font_name_registry): Don't extern them.
3581 (split_font_name_into_vector, build_font_name_from_vector): Extern
3582 them.
3583
3584 * fontset.h (Qfontset): Don't extern it.
3585 (new_fontset_from_font_name): Extern it.
3586
3587 * fontset.c: Give 8 extra slots to fontset objects.
3588 (Qfontset_info): New variable.
3589 (syms_of_fontset): Defsym it.
3590 (FONTSET_FALLBACK): New macro.
3591 (fontset_face): Try also the default fontset.
3592 (make_fontset): Realize a fallback fontset from the default
3593 fontset.
3594 (generate_ascii_font_name): Moved from xfaces.c. Rewritten by
3595 using split_font_name_into_vector and build_font_name_from_vector.
3596 (Fset_fontset_font): Access the elements of font_spec by enum
3597 FONT_SPEC_INDEX. If font_spec is a string, extract the registry
3598 name by using split_font_name_into_vector.
3599 (Fnew_fontset): If no ASCII font is specified in FONTLIST,
3600 generate a proper font name from the fontset name. Update
3601 Vfontset_alias_alist.
3602 (n_auto_fontsets): New variable.
3603 (new_fontset_from_font_name): New function.
3604 (Ffont_info): Store the information about fonts generated from the
3605 default fontset in the first extra slot of the returned
3606 char-table.
3607
3608 * xfaces.c (generate_ascii_font_name): Moved to fontset.c.
3609 (font_name_registry): Function deleted.
3610 (split_font_name_into_vector): New function.
3611 (build_font_name_from_vector): New function.
3612 (font_list): The argument REGISTRY is now a list of registry
3613 names.
3614 (choose_face_font): If we are choosing an ASCII font, and ATTRS
3615 specifies an explicit font name, return the name as is. Make a
3616 list of registy names.
3617
3618 * xfns.c (x_set_font, x_create_tip_frame): Adjusted to the change
3619 of x_new_fontset.
3620 (Fx_create_frame): Don't call x_new_fontset here. Just use
3621 x_list_fonts to check the existence of fonts.
3622
3623 * xterm.h (x_new_fontset): Prototype adjusted.
3624
3625 * xterm.c (x_new_fontset): Change the arg FONTSETNAME to Lisp
3626 string. Use new_fontset_from_font_name to create a fontset from a
3627 font name.
3628
3629 2008-02-02 Dave Love <fx@gnu.org>
3630
3631 * Makefile.in: Fix some dependencies.
3632
3633 * keymap.c (Fapropos_internal): Don't gcpro apropos_predicate but
3634 set it to nil before returning.
3635
3636 * composite.c (update_compositions): Fix type error.
3637
3638 * syntax.c (skip_chars, skip_syntaxes): Fix type errors.
3639
3640 2008-02-02 Kenichi Handa <handa@m17n.org>
3641
3642 * xterm.c (x_new_font): Optimize for the case that the font is
3643 already set for the frame.
3644
3645 2008-02-02 Kenichi Handa <handa@m17n.org>
3646
3647 * chartab.c (char_table_ascii): Check if the char table contents
3648 is sub-char-table or not.
3649 (char_table_set): Fix argument to char_table_ascii.
3650 (char_table_set_range): Likewise.
3651
3652 * coding.c (CATEGORY_MASK_RAW_TEXT): New macro.
3653 (detect_coding_utf_8, detect_coding_utf_16)
3654 (detect_coding_emacs_mule, detect_coding_iso_2022)
3655 (detect_coding_sjis, detect_coding_big5)
3656 (detect_coding_ccl, detect_coding_charset): Change argument MASK
3657 to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
3658 sequence is valid in this coding system. Callers changed.
3659 (MAX_ANNOTATION_LENGTH): New macro.
3660 (ADD_ANNOTATION_DATA): New macro.
3661 (ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
3662 ADD_ANNOTATION_DATA. The format of annotation data changed.
3663 (ADD_CHARSET_DATA): New macro.
3664 (emacs_mule_char): New argument ID. Callers changed.
3665 (decode_coding_emacs_mule, decode_coding_iso_2022)
3666 (decode_coding_sjis, decode_coding_big5, decode_coding_charset):
3667 Produce charset annotation data in coding->charbuf.
3668 (encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
3669 to charset annotation data in coding->charbuf.
3670 (setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
3671 coding->common_flags if the coding system is iso-2022 based and
3672 uses designation.
3673 (produce_composition): Adjusted for the new annotation data
3674 format.
3675 (produce_charset): New function.
3676 (produce_annotation): Handle charset annotation.
3677 (handle_composition_annotation, handle_charset_annotation): New
3678 functions.
3679 (consume_chars): Handle charset annotation. Utilize the above two
3680 functions.
3681 (encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
3682 buffer, get the deleted text as a string and set
3683 coding->src_object to that string.
3684 (detect_coding, detect_coding_system): Use the new struct
3685 coding_detection_info.
3686
3687 * coding.h (struct coding_detection_info): New structure.
3688 (struct coding_system): Prototype of the member `detector'
3689 adjusted.
3690 (CODING_ANNOTATE_CHARSET_MASK): New macro.
3691
3692 2008-02-02 Kenichi Handa <handa@m17n.org>
3693
3694 * insdel.c (insert_from_gap): Fix argument to offset_intervals.
3695
3696 2008-02-02 Dave Love <fx@gnu.org>
3697
3698 * keymap.c (apropos_predicate, apropos_accumulate): Declare
3699 static.
3700 (Fapropos_internal): Don't gcpro apropos_accumulate. Set result
3701 to new local and nullify apropos_accumulate before returning.
3702 (syms_of_keymap): Staticpro and initialize apropos_accumulate.
3703
3704 2008-02-02 Kenichi Handa <handa@m17n.org>
3705
3706 * charset.c (Fdefine_charset_internal): Setup charset.fast_map
3707 correctly.
3708
3709 2008-02-02 Dave Love <fx@gnu.org>
3710
3711 * fns.c (Flanginfo): Call synchronize_system_time_locale.
3712
3713 2008-02-02 Kenichi Handa <handa@m17n.org>
3714
3715 The following changes are to make character composition happen
3716 automatically on displaying.
3717
3718 * Makefile.in (lisp, shortlisp): Add composite.elc
3719
3720 * composite.h (Qauto_composed, Vauto_composition_function,
3721 Qauto_composition_function): Extern them.
3722
3723 * composite.c (Vcomposition_function_table,
3724 Qcomposition_function_table): Delete variables.
3725 (Qauto_composed, Vauto_composition_function,
3726 Qauto_composition_function): New variables.
3727 (run_composition_function): Don't call
3728 compose-chars-after-function.
3729 (update_compositions): Clear `auto-composed' text property.
3730 (compose_chars_in_text): Delete this function.
3731 (syms_of_composite): Staticpro Qauto_composed and
3732 Qauto_composition_function. Declare Vauto_composition_function as
3733 a Lisp variable.
3734
3735 * dispextern.h (enum prop_idx): Add member AUTO_COMPOSED_PROP_IDX.
3736
3737 * xdisp.c (it_props): Add an entry for Qauto_composed.
3738 (handle_auto_composed_prop): New function.
3739
3740 * xselect.c (selection_data_to_lisp_data): Don't call
3741 compose_chars_in_text.
3742
3743 2008-02-02 Dave Love <fx@gnu.org>
3744
3745 * keyboard.c (read_char): Modify checking around use of
3746 Vkeyboard_translate_table.
3747
3748 * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
3749 and fix C types.
3750
3751 2008-02-02 Kenichi Handa <handa@m17n.org>
3752
3753 * coding.c (decode_coding_utf_8): When eol_type is Qdos, handle
3754 the case that the last byte is '\r' correctly.
3755 (decode_coding_emacs_mule): Likewise.
3756 (decode_coding_iso_2022): Likewise.
3757 (decode_coding_sjis): Likewise.
3758 (decode_coding_big5): Likewise.
3759 (decode_coding_charset): Likewise.
3760 (produce_chars): Likewise.
3761 (decode_coding): Flushing out the unprocessed data correctly.
3762 (decode_coding_gap): Set CODING_MODE_LAST_BLOCK bit of
3763 coding->mode.
3764
3765 2008-02-02 Dave Love <fx@gnu.org>
3766
3767 * xterm.c (XTread_socket): Fix changes for defined keysyms. Add
3768 XK_ISO... case.
3769 (xaw_scroll_callback): Revert last change.
3770
3771 2008-02-02 Kenichi Handa <handa@m17n.org>
3772
3773 * charset.c (Fset_charset_priority): Update
3774 Viso_2022_charset_list.
3775
3776 2008-02-02 Kenichi Handa <handa@m17n.org>
3777
3778 * xfaces.c (Vface_resizing_fonts): New variable.
3779 (struct font_name): New member `resizing_ratio'.
3780 (font_resizing_ratio): New function.
3781 (split_font_name): Set font->resizing_ratio.
3782 (better_font_p): Pay attention to font->resizing_ratio.
3783 (build_scalable_font_name): Likewise. Don't change POINT_SIZE,
3784 RESX, and RESY fields.
3785 (try_alternative_families): Try scalable fonts if
3786 Vscalable_fonts_allowed is not Qt.
3787 (syms_of_xfaces): Declare Vface_resizing_fonts as a Lisp variable.
3788
3789 2008-02-02 Dave Love <fx@gnu.org>
3790
3791 * xterm.c (xaw_scroll_callback): Cast correctly.
3792
3793 2008-02-02 Dave Love <fx@gnu.org>
3794
3795 * keyboard.c (lispy_accent_codes, lispy_accent_keys): Extend.
3796 (lispy_kana_keys): Comment out.
3797 (make_lispy_event) [XK_kana_A]: Comment out.
3798
3799 * xterm.c (xaw_scroll_callback): Cast call_data.
3800 (XTread_socket): Deal with ASCII keysyms.
3801 (syms_of_xterm) <Vx_keysym_table>: Fix args of make_hash_table.
3802
3803 2008-02-02 Dave Love <fx@gnu.org>
3804
3805 * xterm.c (Vx_keysym_table): New.
3806 (syms_of_xterm): Initialize it.
3807 (XTread_socket): Use it.
3808 From head: Eliminate incorrect optimization that tried to avoid
3809 decoding the output of X*LookupString.
3810 (x_get_font_repertory): Delete charset declaration.
3811
3812 2008-02-02 Kenichi Handa <handa@m17n.org>
3813
3814 * coding.c (detect_coding): Fix previous change.
3815 (detect_coding_charset): If only ASCII bytes are found, return 0.
3816 (detect_coding_system): Fix previous change.
3817 (Fdefine_coding_system_internal): Setup
3818 CODING_ATTR_ASCII_COMPAT (attrs) correctly.
3819
3820 2008-02-02 Dave Love <fx@gnu.org>
3821
3822 * coding.c (Fcheck_coding_system): Doc fix.
3823
3824 * editfns.c (Finsert_byte): Return a proper value.
3825
3826 2008-02-02 Kenichi Handa <handa@m17n.org>
3827
3828 * coding.c (decode_coding): Fix args to translate_chars. Pay
3829 attention to Vstandard_translation_table_for_decode.
3830 (encode_coding): Fix args to translate_chars. Pay attention to
3831 Vstandard_translation_table_for_encode.
3832
3833 * data.c (Faset): Check NEWELT by ASCII_CHAR_P, not by
3834 SINGLE_BYTE_CHAR_P.
3835
3836 * editfns.c (general_insert_function): Check VAL by ASCII_CHAR_P,
3837 not by SINGLE_BYTE_CHAR_P.
3838
3839 * fns.c (concat): Check CH by ASCII_CHAR_P, not by
3840 SINGLE_BYTE_CHAR_P.
3841
3842 * insdel.c (copy_text): Check C by ASCII_CHAR_P, not by
3843 SINGLE_BYTE_CHAR_P.
3844
3845 * keymap.c (Ftext_char_description): Check C by ASCII_CHAR_P, not
3846 by SINGLE_BYTE_CHAR_P.
3847
3848 * search.c (Freplace_match): Check C by ASCII_CHAR_P, not by
3849 SINGLE_BYTE_CHAR_P.
3850
3851 2008-02-02 Dave Love <fx@gnu.org>
3852
3853 * fns.c (Fstring_as_multibyte, Fstring_to_multibyte): Doc fix.
3854
3855 2008-02-02 Dave Love <fx@gnu.org>
3856
3857 * fns.c (Flanginfo): Fix typo.
3858
3859 * unexelf.c (unexec): Make last change conditional on Irix 6.5.
3860
3861 2008-02-02 Kenichi Handa <handa@m17n.org>
3862
3863 * coding.c (detect_coding_utf_8): Check incomplete byte sequence.
3864 Don't update *mask when correctly detected.
3865 (detect_coding_utf_16): Likewise.
3866 (detect_coding_emacs_mule): Likewise.
3867 (detect_coding_iso_2022): Likewise.
3868 (detect_coding_sjis): Likewise.
3869 (detect_coding_big5): Likewise.
3870 (detect_coding_ccl): Likewise.
3871 (decode_coding_sjis): Fix decoding of katakana-jisx0201.
3872 (detect_eol): Delete the argument CODING, and add the argument
3873 CATEGORY.
3874 (detect_coding): Adjusted for the changes above.
3875 (detect_coding_system): Likewise.
3876
3877 2008-02-02 Kenichi Handa <handa@m17n.org>
3878
3879 * character.c (char_string): Renamed from
3880 char_string_with_unification. Pay attention to
3881 CHAR_MODIFIER_MASK.
3882 (string_char): Renamed from string_char.
3883
3884 * character.h (CHAR_STRING): Call char_string if C is greater than
3885 MAX_3_BYTE_CHAR.
3886 (CHAR_STRING_ADVANCE): Likewise.
3887 (STRING_CHAR): Call string_char instead of
3888 string_char_with_unification.
3889 (STRING_CHAR_AND_LENGTH): Likewise.
3890 (STRING_CHAR_ADVANCE): Likewise.
3891
3892 2008-02-02 Dave Love <fx@gnu.org>
3893
3894 * coding.c (decode_coding_utf_8): Treat surrogates as invalid.
3895
3896 2008-02-02 Kenichi Handa <handa@m17n.org>
3897
3898 * keymap.c (push_key_description): Pay attention to
3899 force_multibyte.
3900
3901 * regex.c (re_search_2): Fix for the case of unibyte buffer.
3902
3903 2008-02-02 Dave Love <fx@gnu.org>
3904
3905 * charset.c (define_charset_internal): Rename `supprementary'.
3906
3907 * Makefile.in (lisp, shortlisp): Remove latin-N.
3908
3909 2008-02-02 Dave Love <fx@gnu.org>
3910
3911 * xfns.c (x_window, x_window): Use use_xim.
3912
3913 * xterm.c (use_xim): Initialize.
3914 (xim_open_dpy, xim_initialize, xim_close_dpy): Use use_xim.
3915 (x_term_init): Maybe set use_xim.
3916
3917 * xterm.h (use_xim) [HAVE_X_I18N]: Declare.
3918
3919 2008-02-02 Kenichi Handa <handa@m17n.org>
3920
3921 * search.c (search_buffer): Fix case-fold-search of multibyte
3922 characters.
3923 (boyer_moore): Rename the last argument to char_high_bits.
3924
3925 2008-02-02 Kenichi Handa <handa@m17n.org>
3926
3927 * xdisp.c (display_string): Fix for the case of zero width glyph.
3928
3929 * xfns.c (x_set_font): Change the error message of the case that
3930 x_new_fontset returns Qt.
3931
3932 * xfaces.c (set_lface_from_font_name): Reject the default fontset.
3933 (Finternal_set_lisp_face_attribute): Use signal_error for the
3934 error of invalid fontset.
3935
3936 * xterm.c (x_new_fontset): If FONTSETNAME specifies the default
3937 fontset, return Qt.
3938
3939 2008-02-02 Kenichi Handa <handa@m17n.org>
3940
3941 * regex.c (re_search_2): Fix previous change.
3942
3943 2008-02-02 Kenichi Handa <handa@m17n.org>
3944
3945 * syntax.c (skip_syntaxes): Fix previous change.
3946
3947 2008-02-02 Kenichi Handa <handa@m17n.org>
3948
3949 * syntax.c (skip_chars): Fix previous change.
3950 (skip_syntaxes): Fix previous change.
3951
3952 2008-02-02 Dave Love <fx@gnu.org>
3953
3954 * config.in: Restore it.
3955
3956 2008-02-02 Dave Love <fx@gnu.org>
3957
3958 * config.in: Removed (now auto-generated).
3959
3960 * s/usg5-4.h: Fix last change.
3961
3962 * unexelf.c (unexec): Make .got handling not SGI-specific.
3963
3964 * syntax.c (syms_of_syntax) <multibyte-syntax-as-symbol>: Doc fix.
3965
3966 * regex.c: Use `ifdef HAVE_ALLOCA_H', not `if HAVE_ALLOCA_H'.
3967
3968 * keyboard.c (read_key_sequence): Fix type error.
3969
3970 * buffer.c (Fset_buffer_multibyte, Fset_buffer_multibyte): Fix
3971 type error.
3972
3973 * fontset.c (fontset_add): Return Lisp_Object.
3974
3975 2008-02-02 Dave Love <fx@gnu.org>
3976
3977 * charset.h (charset_ordered_list_tick): Declare extern.
3978
3979 2008-02-02 Kenichi Handa <handa@m17n.org>
3980
3981 The following changes (and some of 2008-02-02 changes of mine) are
3982 for handling syntax, category, and case conversion for unibyte
3983 characters by converting them to multibyte on the fly. With these
3984 changes, we don't have to setup syntax and case tables for unibyte
3985 characters in each language environment.
3986
3987 * abbrev.c (Fexpand_abbrev): Convert a unibyte character to
3988 multibyte if necessary.
3989
3990 * bytecode.c (Fbyte_code): Likewise.
3991
3992 * character.h (LEADING_CODE_LATIN_1_MIN)
3993 (LEADING_CODE_LATIN_1_MAX): New macros.
3994 (unibyte_to_multibyte_table): Extern it.
3995 (unibyte_char_to_multibyte): New macro.
3996 (MAKE_CHAR_MULTIBYTE): Use unibyte_to_multibyte_table.
3997 (CHAR_LEADING_CODE): New macro.
3998 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): New macro.
3999
4000 * character.c (unibyte_to_multibyte_table): New variable.
4001 (unibyte_char_to_multibyte): Move to character.h and defined as
4002 macro.
4003 (multibyte_char_to_unibyte): If C is an eight-bit character,
4004 convert it to the corresponding byte value.
4005
4006 * charset.c (Fset_unibyte_charset): If the dimension of CHARSET is
4007 not 1, singals an error. Update the elements of
4008 unibyte_to_multibyte_table.
4009 (init_charset_once): Initialize unibyte_to_multibyte_table.
4010 (syms_of_charset): Define the charset `iso-8859-1'.
4011
4012 * casefiddle.c (casify_object): Fix previous change.
4013
4014 * cmds.c (internal_self_insert): In a multibyte buffer, insert C
4015 as is without converting it to unibyte. In a unibyte buffer,
4016 convert C to multibyte before checking the syntax.
4017
4018 * lisp.h (unibyte_char_to_multibyte): Extern deleted.
4019
4020 * minibuf.c (Fminibuffer_complete_word): Use the macro
4021 FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
4022
4023 * regex.h (struct re_pattern_buffer): New member target_multibyte.
4024
4025 * regex.c (RE_TARGET_MULTIBYTE_P): New macro.
4026 (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte. If
4027 that is zero, convert an eight-bit char to multibyte.
4028 (MAKE_CHAR_MULTIBYTE, CHAR_LEADING_CODE): New dummy new macros for
4029 non-emacs case.
4030 (PATFETCH): Convert an eight-bit char to multibyte.
4031 (HANDLE_UNIBYTE_RANGE): New macro.
4032 (regex_compile): Setup the compiled pattern for multibyte chars
4033 even if the given regex string is unibyte. Use PATFETCH_RAW
4034 instead of PATFETCH in many places. To handle `charset'
4035 specification of unibyte, call HANDLE_UNIBYTE_RANGE. Use bitmap
4036 only for ASCII chars.
4037 (analyse_first) <exactn>: Simplified because the compiled pattern
4038 is multibyte.
4039 <charset_not>: Setup fastmap from bitmap only for ASCII chars.
4040 <charset>: Use CHAR_LEADING_CODE to get leading codes.
4041 <categoryspec>: If multibyte, setup fastmap only for ASCII chars
4042 here.
4043 (re_compile_fastmap) [emacs]: Call analyse_first with the arg
4044 multibyte always 1.
4045 (re_search_2): In emacs, set the locale variable multibyte to 1,
4046 otherwise to 0. New local variable target_multibyte. Check it
4047 to decide the multibyteness of STR1 and STR2. If
4048 target_multibyte is zero, convert unibyte chars to multibyte
4049 before translating and checking fastmap.
4050 (TARGET_CHAR_AND_LENGTH): New macro.
4051 (re_match_2_internal): In emacs, set the locale variable multibyte
4052 to 1, otherwise to 0. New local variable target_multibyte. Check
4053 it to decide the multibyteness of STR1 and STR2. Use
4054 TARGET_CHAR_AND_LENGTH to fetch a character from D.
4055 <charset, charset_not>: If multibyte is nonzero, check fastmap
4056 only for ASCII chars. Call bcmp_translate with
4057 target_multibyte, not with multibyte.
4058 <begline>: Declare the local variable C as `unsigned'.
4059 (bcmp_translate): Change the last arg name to target_multibyte.
4060
4061 * search.c (compile_pattern_1): Don't adjust the multibyteness of
4062 the regexp pattern and the matching target. Set cp->buf.multibyte
4063 to the multibyteness of the regexp pattern. Set
4064 cp->but.target_multibyte to the multibyteness of the matching
4065 target.
4066 (wordify): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE instead of
4067 FETCH_STRING_CHAR_ADVANCE.
4068 (Freplace_match): Convert unibyte chars to multibyte.
4069
4070 * syntax.c (char_quoted): Use FETCH_CHAR_AS_MULTIBYTE to convert
4071 unibyte chars to multibyte.
4072 (back_comment): Likewise.
4073 (scan_words): Likewise.
4074 (skip_chars): The arg syntaxp is deleted, and the code for
4075 handling syntaxes is moved to skip_syntaxes. Callers changed.
4076 Fix the case that the multibyteness of STRING and the current
4077 buffer doesn't match.
4078 (skip_syntaxes): New function.
4079 (SYNTAX_WITH_MULTIBYTE_CHECK): Check C by ASCII_CHAR_P, not by
4080 SINGLE_BYTE_CHAR_P.
4081 (Fforward_comment): Use FETCH_CHAR_AS_MULTIBYTE to convert unibyte
4082 chars to multibyte.
4083 (scan_lists): Likewise.
4084 (Fbackward_prefix_chars): Likewise.
4085 (scan_sexps_forward): Likewise.
4086
4087 2008-02-02 Kenichi Handa <handa@m17n.org>
4088
4089 * xfaces.c (QCfontset): New variable.
4090 (LFACE_FONTSET): New macro.
4091 (check_lface_attrs): Check also LFACE_FONTSET_INDEX.
4092 (set_lface_from_font_name): Setup LFACE_FONTSET (lface).
4093 (Finternal_set_lisp_face_attribute): Handle QCfontset.
4094 (Finternal_get_lisp_face_attribute): Likewise.
4095 (lface_same_font_attributes_p): Fix checking of LFACE_FONT_INDEX,
4096 check also LFACE_FONTSET_INDEX.
4097 (face_fontset): Check attrs[LFACE_FONTSET_INDEX], not
4098 attrs[LFACE_FONT_INDEX].
4099 (syms_of_xfaces): Intern and staticpro QCfontset.
4100
4101 * dispextern.h (enum lface_attribute_index): New member
4102 LFACE_FONTSET_INDEX.
4103
4104 * fns.c (base64_encode_1): Handle eight-bit chars correctly.
4105
4106 2008-02-02 Kenichi Handa <handa@m17n.org>
4107
4108 * coding.c (coding_set_destination): Fix coding->destination for
4109 the case converting a region.
4110 (encode_coding_utf_8): Encode eight-bit chars as single byte.
4111 (encode_coding_object): Fix coding->dst_pos and
4112 coding->dst_pos_byte for the case converting a region.
4113
4114 * insdel.c (insert_from_gap): Make it work even if PT != GTP.
4115
4116 * character.h (BYTE8_STRING): New macro.
4117
4118 * fns.c (base64_decode_1): Insert eight-bit chars correctly.
4119
4120 2008-02-02 Kenichi Handa <handa@m17n.org>
4121
4122 * xdisp.c (get_next_display_element): Don't display unibyte 8-bit
4123 characters by octal form.
4124
4125 * abbrev.c (Fexpand_abbrev): Fix for the multibyte case.
4126
4127 * buffer.h (_fetch_multibyte_char_len): Extern deleted.
4128 (FETCH_MULTIBYTE_CHAR): Don't use _fetch_multibyte_char_len.
4129 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
4130 (FETCH_CHAR_AS_MULTIBYTE): New macro.
4131
4132 * casetab.c (set_canon, set_identity, shuffle): Simplified.
4133
4134 * casefiddle.c (casify_object): Simplified. Handle the case that
4135 the case conversion change the byte length.
4136 (casify_region): Likewise
4137
4138 * character.h (MAKE_CHAR_UNIBYTE, MAKE_CHAR_MULTIBYTE): New
4139 macros.
4140
4141 * character.c (_fetch_multibyte_char_len): This variable deleted.
4142 (syms_of_character): Setup Vprintable_chars.
4143
4144 * editfns.c (Fchar_equal): Fix for the unibyte case.
4145 (Finsert_byte): New function.
4146 (syms_of_editfns): Defsubr it.
4147
4148 * keyboard.c (read_key_sequence): Use ~CHAR_MODIFIER_MASK instead
4149 of direct code 0x3ffff.
4150
4151 * search.c (Freplace_match): Fix for the unibyte case.
4152
4153 2008-02-02 Kenichi Handa <handa@m17n.org>
4154
4155 * lread.c (safe_to_load_p): Fix the logic.
4156
4157 * syntax.c (scan_words): Don't treat characters belonging to
4158 different scripts as constituting a word.
4159
4160 * editfns.c (Fformat): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
4161
4162 * fontset.c (Fset_fontset_font): Treat `ascii' as charset, not
4163 script.
4164
4165 * emacs.c (main): In the case of --unibyte, instead of aborting on
4166 finding non-empty buffer, make it unibyte.
4167
4168 2008-02-02 Kenichi Handa <handa@m17n.org>
4169
4170 * xterm.c (x_new_fontset): Call `create-fontset-from-ascii-font'
4171 to create a fontset.
4172
4173 2008-02-02 Dave Love <fx@gnu.org>
4174
4175 * character.c (Funibyte_char_to_multibyte): Doc fix.
4176
4177 * xfns.c [HAVE_STDLIB_H]: Fix last change.
4178
4179 2008-02-02 Kenichi Handa <handa@m17n.org>
4180
4181 * fontset.c (fontset_add): Make the type `int'.
4182 (fontset_id_valid_p): Define it if FONTSET_DEBUG is defined.
4183
4184 * character.c (unibyte_char_to_multibyte): Refer to
4185 charset_unibyte, not charset_primary.
4186 (multibyte_char_to_unibyte): Likewise.
4187 (Funibyte_char_to_multibyte): Likewise.
4188
4189 * charset.h: (charset_unibyte): Extern it instead of
4190 charset_primary.
4191
4192 * charset.c (charset_unibyte): Renamed from charset_primary.
4193 (Funibyte_charset): Renamed from Fprimary_charset.
4194 (Fset_unibyte_charset): Renamed from Fset_primary_charset.
4195 (syms_of_charset): Adjusted for the above changes.
4196
4197 * w32term.c (x_produce_glyphs): Use ASCII_CHAR_P, not
4198 SINGLE_BYTE_CHAR_P. Fix the logic of handling non-ASCII char when
4199 it->multibyte_p is zero.
4200
4201 * lisp.h (nonascii_insert_offset, Vnonascii_translation_table):
4202 Extern deleted.
4203
4204 2008-02-02 Kenichi Handa <handa@m17n.org>
4205
4206 * coding.c (Fdefine_coding_system_internal): Fix category setting
4207 for a coding system of type iso-2022.
4208
4209 2008-02-02 Kenichi Handa <handa@m17n.org>
4210
4211 * fontset.h (FS_LOAD_FONT): Call fs_load_font with the arg CHARSET
4212 -1.
4213
4214 2008-02-02 Kenichi Handa <handa@m17n.org>
4215
4216 * syntax.c (Vnext_word_boundary_function_table): New variable.
4217 (syms_of_syntax): Declare it as a Lisp variable.
4218 (scan_words): Call functions in Vnext_word_boundary_function_table
4219 if any.
4220
4221 * xterm.c (x_load_font): Initialize fontp->fontset to -1.
4222
4223 * fontset.c (fs_load_font): If fontp->charset is not negative,
4224 return fontp without setting its members.
4225
4226 2008-02-02 Dave Love <fx@gnu.org>
4227
4228 * config.in: Generated with autoheader.
4229
4230 * xfns.c [HAVE_STDLIB_H]: Change logic (instead of fixing typo).
4231
4232 * m/sparc.h (HAVE_ALLOCA): Delete.
4233
4234 * s/irix6-5.h: Don't include strings.h.
4235 (bcopy, bzero, bcmp): Don't undef.
4236
4237 * s/irix6-0.h (bcopy, bzero, bcmp): Don't undef.
4238
4239 * s/usg5-4.h (NO_SIOCTL_H): Don't define.
4240 (TIOCSIGSEND): Don't test IRIX6.
4241 (bcopy, bzero, bcmp): Define conditionally.
4242
4243 2008-02-02 Kenichi Handa <handa@m17n.org>
4244
4245 * buffer.c (Qas, Qmake, Qto): New variables.
4246 (Fset_buffer_multibyte): New optional arg METHOD. Caller changed.
4247 (syms_of_buffer): Intern and staticpro Qas, Qmake, and Qto.
4248
4249 * callproc.c (Fcall_process): Don't call insert_1_both directly if
4250 we are inserting a process output into a multibyte buffer.
4251
4252 * character.h (CHAR_TO_BYTE8): If C is not eight-bit char, call
4253 multibyte_char_to_unibyte.
4254
4255 * character.c (Funibyte_char_to_multibyte): If C can't be decoded
4256 by the primary charset, make it eight-bit char.
4257 (Fmultibyte_char_to_unibyte): Call CHAR_TO_BYTE8.
4258
4259 * charset.c: (charset_eight_bit, Qeight_bit_control): New
4260 variables.
4261 (charset_8_bit__control, charset_8_bit_graphic,
4262 Qeight_bit_control, Qeight_bit_graphic): These variables deleted.
4263 (define_charset_internal): New function.
4264 (syms_of_charset): Call define_charset_internal for pre-defined
4265 charsets.
4266
4267 * charset.h (charset_8_bit): Extern it.
4268
4269 * coding.c (make_conversion_work_buffer): Adjusted for the change
4270 of Fset_buffer_multibyte.
4271 (encode_coding_raw_text): Increment p0 in the loop.
4272
4273 * lisp.h (Fset_buffer_multibyte): Prototype adjusted.
4274
4275 * xdisp.c (setup_echo_area_for_printing, set_message_1): Adjusted
4276 for the change of Fset_buffer_multibyte.
4277
4278 * fns.c (Fstring_to_multibyte): New function.
4279 (syms_of_fns): Declare Fstring_to_multibyte as Lisp subroutine.
4280
4281 2008-02-02 Dave Love <fx@gnu.org>
4282
4283 * xfns.c (x_put_x_image): Declare args.
4284
4285 * xfaces.c (font_name_registry, choose_face_font): Delete unused
4286 vars.
4287 (try_font_list): Declare an arg.
4288
4289 * xdisp.c (message2_nolog, set_message): Declare an arg.
4290
4291 * terminfo.c (tparam): Declare an arg. Use P_ to declare tparm.
4292
4293 * syntax.c (scan_sexps_forward): Declare an arg.
4294
4295 * scroll.c (calculate_scrolling, calculate_direct_scrolling):
4296 Declare an arg.
4297
4298 * lisp.h (Fnew_fontset): Declare.
4299
4300 * keymap.c (push_key_description): Call CHARACTERP correctly.
4301
4302 * fontset.c (fontset_add): Declare args. Call make_number
4303 correctly.
4304 (face_for_char): Delete unused vars.
4305 (Fset_fontset_font): Doc fix. Delete unused vars.
4306
4307 * doc.c (Fsubstitute_command_keys): Delete unused vars.
4308
4309 * composite.c (update_compositions): Declare arg.
4310
4311 * cm.c (calccost, cmgoto): Declare args.
4312
4313 * charset.c: Remove `emacs' conditional. Doc fixes.
4314 (map_char_table_for_charset): Declare.
4315
4316 * character.c (syms_of_character) <translation-table-vector>: Doc
4317 fix.
4318
4319 * ccl.c: Remove `emacs' conditional. Include hash table stuff
4320 from trunk.
4321
4322 2008-02-02 Kenichi Handa <handa@m17n.org>
4323
4324 The following changes are to allow specifying multiple font
4325 patterns for a character range (specified by script or charset).
4326
4327 * Makefile.in (abbrev.o): Depend on syntax.h.
4328 (xfaces.o): Depend on charset.h.
4329
4330 * alloc.c (Fmake_string): Use ASCII_CHAR_P, not
4331 SINGLE_BYTE_CHAR_P.
4332
4333 * ccl.c (Fccl_execute_on_string): Add `const' to local variables.
4334
4335 * character.h (Vchar_script_table): Extern it.
4336
4337 * character.c (Vscript_alist): This variable deleted.
4338 (Vchar_script_table, Qchar_script_table): New variable.
4339 (syms_of_character): Declare Vchar_script_table as a lisp variable
4340 and initialize it.
4341
4342 * chartab.c (Fmake_char_table): Doc fixed. If PURPOSE doesn't
4343 have property char-table-extra-slots, make no extra slot.
4344
4345 * dispextern.h (struct face): Member `charset' deleted.
4346 (FACE_SUITABLE_FOR_CHAR_P): Use ASCII_CHAR_P, not
4347 SINGLE_BYTE_CHAR_P.
4348 (FACE_FOR_CHAR): Likewise.
4349 (choose_face_font, lookup_non_ascii_face, font_name_registry): Add
4350 prototypes
4351 (lookup_face, lookup_named_face, lookup_derived_face): Prototype
4352 fixed.
4353 (generate_ascii_font_name): Renamed from generate_ascii_font.
4354
4355 * fontset.h (get_font_repertory_func): New prototype.
4356 (make_fontset_for_ascii_face, fs_load_font): Prototypes fixed.
4357 (FS_LOAD_FONT): Call fs_load_font with the 3rd arg charset_ascii.
4358
4359 * fontset.c (Qprepend, Qappend): New variables.
4360 (FONTSET_CHARSET_ALIST, FONTSET_FACE_ALIST): These macros deleted.
4361 (FONTSET_NOFONT_FACE, FONTSET_REPERTORY): New macros.
4362 (FONTSET_REF): Optimize if FONTSET is Vdefault_fontset.
4363 (FONTSET_REF_AND_RANGE, FONTSET_ADD): New macros.
4364 (fontset_ref_and_range, fontset_add, reorder_font_vector)
4365 (load_font_get_repertory): New functions.
4366 (fontset_set): This function deleted.
4367 (fontset_face): New arg FACE. Return face ID, not face.
4368 Completely re-written to handle new fontset structure. Caller
4369 changed.
4370 (free_face_fontset): Use ASET istead of AREF (X) = Y.
4371 (face_for_char): Don't call lookup_face.
4372 (make_fontset_for_ascii_face): New arg FACE.
4373 (fs_load_font): New arg CHARSET_ID. Don't check
4374 Vfont_encoding_alist here.
4375 (find_font_encoding): New function.
4376 (list_fontsets): Use STRINGP, not ! NILP.
4377 (accumulate_script_ranges): New function.
4378 (Fset_fontset_font, Fnew_fontset, Ffontset_info): Completely
4379 re-written to handle new fontset structure.
4380 (Ffontset_font): Return a copy of element.
4381 (syms_of_fontset): Define symbols Qprepend and Qappend. Fix
4382 docstring of font-encoding-alist.
4383
4384 * lisp.h (CHAR_TABLE_REF): Remove unnecessary check (IDX >= 0).
4385 (Fset_fotset_font): Fix arguments to 5.
4386
4387 * msdos.c (XMenuActivate): Adjuted for the change of
4388 lookup_derived_face.
4389
4390 * xdisp.c (message_dolog, set_message_1, extend_face_to_end_of_line):
4391 Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
4392 (highlight_trailing_whitespace): Adjusted for the change of
4393 lookup_named_face.
4394
4395 * xfaces.c: Include charset.h.
4396 (load_face_font): Argument C deleted. Caller changed.
4397 (generate_ascii_font_name): Renamed from generate_ascii_font.
4398 (font_name_registry): New function.
4399 (cache_face): Store ascii faces before non-ascii faces in buckets.
4400 (lookup_face): Arguments C and BASE_FACE deleted. Caller changed.
4401 Lookup only ascii faces.
4402 (lookup_non_ascii_face): New function.
4403 (lookup_named_face): Argument C deleted. Caller changed.
4404 (lookup_derived_face): Argument C deleted. Caller changed.
4405 (try_font_list): New arg PATTERN. Caller changed. If PATTERN is
4406 a string, just call font_list with it.
4407 (choose_face_font): Arguments FACE and C deleted. New arg
4408 FONT_SPEC. Caller changed.
4409 (realize_face): Arguments C and BASE_FACE deleted. Caller
4410 (realize_x_face): Likewise.
4411 (realize_non_ascii_face): New function.
4412 (realize_x_face): Call load_face_font here.
4413 (realize_tty_face): Argument C deleted. Caller changed.
4414 (compute_char_face): If CH is not ascii, call FACE_FOR_CHAR to
4415 get a face ID.
4416 (dump_realized_face): Don't print charset of FACE.
4417
4418 * xfns.c (x_set_font): Always call x_new_fontset and
4419 store_frame_parameter.
4420 (Fx_create_frame): Call x_new_fontset, not x_new_font.
4421 (syms_of_xfns): Set get_font_repertory_func to
4422 x_get_font_repertory.
4423
4424 * xterm.h (x_get_font_repertory): Extern it.
4425
4426 * xterm.c (x_produce_glyphs): Use ASCII_CHAR_P, not
4427 SINGLE_BYTE_CHAR_P. Fix the logic of handling non-ASCII char when
4428 it->multibyte_p is zero.
4429 (XTread_socket): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
4430 (x_new_fontset): If FONTSETNAME doesn't match any existing
4431 fontsets, create a new one.
4432 (x_get_font_repertory): New function.
4433
4434 2008-02-02 Kenichi Handa <handa@m17n.org>
4435
4436 * coding.c (Ffind_coding_systems_region_internal): Detect an
4437 ASCII only string correctly.
4438
4439 * lread.c (Fload): Don't load with Qload_force_doc_strings t if
4440 version is 0.
4441
4442 2008-02-02 Kenichi Handa <handa@m17n.org>
4443
4444 * lread.c: Include "coding.h".
4445 (Qget_emacs_mule_file_char, Qload_force_doc_strings,
4446 load_each_byte, unread_char): New variables.
4447 (readchar_backlog): This variable deleted.
4448 (readchar): Return a character unless load_each_byte is nonzero.
4449 Handle the case that readcharfun is Qget_emacs_mule_file_char or a
4450 cons. If unread_char is not -1, simply return it.
4451 (unreadchar): Handle the case that readcharfun is
4452 Qget_emacs_mule_file_char or a cons. Set unread_char if
4453 necessary.
4454 (read_multibyte): This function deleted.
4455 (readbyte_for_lambda, readbyte_from_file, readbyte_from_string)
4456 (read_emacs_mule_char): New functions.
4457 (Fload): Even if the file doesn't have the extention ".elc", if
4458 safe_to_load_p returns a positive version number, assume that the
4459 file contains bytecompiled code. If the version is less than 22,
4460 load the file while decoding multibyte sequences by emacs-mule.
4461 (readevalloop): Don't use readchar_backlog.
4462 (Fread): Likewise. Pay attention to the case that STREAM is a
4463 cons.
4464 (Fread_from_string): Pay attention to the case that STREAM is a
4465 cons.
4466 (read_escape): The arg BYTEREP deleted.
4467 (read1): Set load_each_byte to 1 temporarily while handling
4468 #@NUMBER. Don't call read_multibyte.
4469 (read_vector): Call Fread with a cons. If readcharfun is
4470 Qget_emacs_mule_file_char, decode the read string by emacs-mule.
4471 (read_list): If doc_reference is 2, make the cdr part string as
4472 unibyte.
4473 (syms_of_lread): Intern and staticpro Qget_emacs_mule_file_char
4474 and Qload_force_doc_strings.
4475
4476 2008-02-02 Kenichi Handa <handa@m17n.org>
4477
4478 * xdisp.c (face_before_or_after_it_pos): Call
4479 FETCH_MULTIBYTE_CHAR with byte postion, not char position.
4480
4481 2008-02-02 Kenichi Handa <handa@m17n.org>
4482
4483 * character.h (TRAILING_CODE_P): New macro.
4484 (MAYBE_UNIFY_CHAR): Adjusted for the change of Funify_charset.
4485 (string_char_with_unification): Fix prototype.
4486 (Vscript_alist): Extern it.
4487
4488 * character.c (Vscript_alist): New variable.
4489 (string_char_with_unification): Add `const' to local variables.
4490 (str_as_unibyte): Likewise.
4491 (string_escape_byte8): Likewise.
4492 (syms_of_character): Declare script-alist as a Lisp variable.
4493
4494 * charset.h (Vcharset_ordered_list): Extern it.
4495 (charset_ordered_list_tick): Extern it.
4496 (EMACS_MULE_LEADING_CODE_PRIVATE_11)
4497 (EMACS_MULE_LEADING_CODE_PRIVATE_12)
4498 (EMACS_MULE_LEADING_CODE_PRIVATE_21)
4499 (EMACS_MULE_LEADING_CODE_PRIVATE_22): New macros
4500 (Funify_charset): Adjusted for the change of Funify_charset.
4501
4502 * charset.c (charset_ordered_list_tick): New variable.
4503 (Fdefine_charset_internal): Increment charset_ordered_list_tick.
4504 (Funify_charset): New optional arg DEUNIFY. If it is non-nil,
4505 deunify intead of unify a charset.
4506 (string_xstring_p): Add `const' to local variables.
4507 (find_charsets_in_text): Add `const' to arguemnts and local
4508 variables.
4509 (encode_char): Adjusted for the change of Funify_charset. Fix
4510 detecting of invalid code.
4511 (Fset_charset_priority): Increment charset_ordered_list_tick.
4512 (Fmap_charset_chars): Fix handling of default value for FROM_CODE
4513 and TO_CODE.
4514
4515 * coding.c (LEADING_CODE_PRIVATE_11, LEADING_CODE_PRIVATE_12)
4516 (LEADING_CODE_PRIVATE_21, LEADING_CODE_PRIVATE_22): Macros
4517 deleted. Callers changed to use
4518 EMACS_MULE_LEADING_CODE_PRIVATE_11, etc.
4519 (decode_coding_ccl): Add `const' to local variables.
4520 (consume_chars): Likewise.
4521 (Ffind_coding_systems_region_internal): Likewise.
4522 (Fcheck_coding_systems_region): Likewise.
4523
4524 * print.c (print_object): Use octal form for printing the
4525 contents of a bool vector.
4526
4527 2008-02-02 Dave Love <fx@gnu.org>
4528
4529 * lread.c (Fload) <!load_dangerous_libraries>: Don't leak fd.
4530 <version == 20>: Refuse to load.
4531
4532 2008-02-02 Dave Love <fx@gnu.org>
4533
4534 * fns.c: Move coding.h.
4535 (Qcodeset, Qdays, Qmonths): New.
4536 (concat): Use CHARACTERP instead of INTERGERP.
4537 (Flocale_codeset): Deleted.
4538 (Flanginfo): New function.
4539 (syms_of_fns): Changed accordingly.
4540
4541 * coding.c (adjust_coding_eol_type): Fix eol_type/eol_seen mixup.
4542
4543 2008-02-02 Dave Love <fx@gnu.org>
4544
4545 * casetab.c (init_casetab_once, init_casetab_once): Fix
4546 CHAR_TABLE_SET call.
4547
4548 * category.c (Fmodify_category_entry): Fix CATEGORY_MEMBER call.
4549
4550 * character.c (syms_of_character): Fix CHAR_TABLE_SET call.
4551
4552 * charset.c (Fmap_charset_chars): Check args. Convert Lisp types.
4553 (load_charset_map, Fdeclare_equiv_charset, Fencode_char)
4554 (Fset_charset_priority, syms_of_charset): Convert Lisp types.
4555
4556 * charset.h (CHECK_CHARSET_GET_ID): Use XINT on AREF result.
4557
4558 * coding.c (ENCODE_DESIGNATION, decode_eol)
4559 (make_conversion_work_buffer, code_conversion_restore)
4560 (Fdefine_coding_system_internal): Convert Lisp types.
4561 (code_conversion_restore): Use EQ, not ==.
4562 (Fencode_coding_string): Fix code_convert_string call.
4563
4564 * coding.h (code_convert_region): Fix prototype.
4565
4566 * dispextern.h (redraw_frame, redraw_garbaged_frames): Removed.
4567
4568 * fontset.c (fontset_ref, fontset_set, fs_load_font)
4569 (Ffontset_info): Convert Lisp types.
4570
4571 * syntax.h (SYNTAX_ENTRY_INT): Don't use make_number.
4572
4573 * xterm.c (note_mouse_movement): Fix call of window_from_coordinates.
4574
4575 * xdisp.c (display_mode_element): Fix call of Fset_text_properties.
4576
4577 * chartab.c: Include "...h", not <...h> in some cases.
4578
4579 * callproc.c (Fcall_process): Remove unused variables.
4580
4581 2008-02-02 Dave Love <fx@gnu.org>
4582
4583 * coding.c (Fset_coding_system_priority): Allow null arg list.
4584
4585 2008-02-02 Dave Love <fx@gnu.org>
4586
4587 * minibuf.c (Fminibuffer_complete_word): Remove unused var.
4588 (Fself_insert_and_exit): Use CHARACTERP.
4589
4590 * callproc.c (Fcall_process): Remove unused vars.
4591
4592 * xterm.c (XTread_socket): Add extra dead keysyms.
4593
4594 * xdisp.c (decode_mode_spec_coding): Use CHARACTERP.
4595
4596 * dispextern.h: Remove prototypes for redraw_frame,
4597 redraw_garbaged_frames.
4598
4599 * cmds.c (Fself_insert_command): Use CHARACTERP.
4600
4601 * chartab.c (make_sub_char_table): Remove unused var.
4602 (Fset_char_table_default, Fmap_char_table): Doc fix.
4603
4604 * keymap.c (access_keymap): Remove generic char code.
4605 (push_key_description): Use CHARACTERP.
4606
4607 2008-02-02 Dave Love <fx@gnu.org>
4608
4609 * charset.c: Doc fixes.
4610 (Funify_charset): Extra checking.
4611
4612 2008-02-02 Dave Love <fx@gnu.org>
4613
4614 * lread.c: Remove some unused variables.
4615 (safe_to_load_p): If safe, return the magic number version byte.
4616 (Fload): Maybe use load-with-code-conversion.
4617
4618 2008-02-02 Kenichi Handa <handa@m17n.org>
4619
4620 * category.c (Fmodify_category_entry): Don't modify the contents
4621 of category_set for characters out of the range. Avoid
4622 unnecessary modification.
4623
4624 * character.h (MAYBE_UNIFY_CHAR): Adjusted for the change of
4625 Vchar_unify_table. The default value of the table is now nil.
4626
4627 * character.c (syms_of_character): Setup Vchar_width_table for
4628 eight-bit-control and raw-byte chars.
4629
4630 * charset.h (enum define_charset_arg_index): Delete
4631 charset_arg_parents and add charset_arg_subset and
4632 charset_arg_superset.
4633 (enum charset_attr_index): Delete charset_parents and add
4634 charset_subset and charset_superset.
4635 (enum charset_method): Delete CHARSET_METHOD_INHERIT and add
4636 CHARSET_METHOD_SUBSET and CHARSET_METHOD_SUPERSET.
4637 (CHARSET_ATTR_PARENTS, CHARSET_PARENTS): Macros deleted.
4638 (CHARSET_ATTR_SUBSET, CHARSET_ATTR_SUPERSET, CHARSET_SUBSET)
4639 (CHARSET_SUPERSET): New macros.
4640 (charset_work): Extern it.
4641 (ENCODE_CHAR): Use charset_work.
4642 (CHAR_CHARSET_P): Adjusted for the change of encoder format.
4643 (map_charset_chars): Extern it.
4644
4645 * charset.c (load_charset_map): Set the default value of encoder
4646 and deunifier char-tables to nil.
4647 (map_charset_chars): Argument changed. Callers changed. Use
4648 map_char_table_for_charset instead of map_char_table.
4649 (Fmap_charset_chars): New optional args from_code and to_code.
4650 (Fdefine_charset_internal): Adjusted for the change of
4651 `define-charset' (:parents -> :subset or :superset).
4652 (charset_work): New variable.
4653 (encode_char): Adjusted for the change of
4654 Fdefine_charset_internal.
4655 (syms_of_charset): Likewise.
4656 (Ffind_charset_string): Setup the vector `charsets' correctly.
4657
4658 * chartab.c (sub_char_table_ref_and_range): New arg defalt. Fix
4659 the previous change.
4660 (char_table_ref_and_range): Adjusted for the above change.
4661 (map_sub_char_table_for_charset): New function.
4662 (map_char_table_for_charset): New function.
4663
4664 * keymap.c (describe_vector): Handle a char-table directly here.
4665 (describe_char_table): Deleted.
4666
4667 * lisp.h (map_charset_chars): Deleted.
4668
4669 2008-02-02 Dave Love <fx@gnu.org>
4670
4671 * fns.c (count_combining): Comment out (unused).
4672 (Flocale_codeset): New.
4673 (syms_of_fns): Defsubr it.
4674
4675 * config.in (HAVE_PTY_H, HAVE_SIZE_T, HAVE_LANGINFO_CODESET): New.
4676 (size_t): Removed.
4677
4678 2008-02-02 Dave Love <fx@gnu.org>
4679
4680 * Makefile.in (chartab.o): Depend on charset.h
4681
4682 2008-02-02 Kenichi Handa <handa@m17n.org>
4683
4684 * character.c (syms_of_character): Set the default value of
4685 Vprintable_chars to Qnil.
4686
4687 2008-02-02 Dave Love <fx@gnu.org>
4688
4689 * Makefile.in (lisp, shortlisp): Change indian.elc to indian.el.
4690
4691 2008-02-02 Kenichi Handa <handa@m17n.org>
4692
4693 * charset.c (load_charset_map): Handle the case that from < to
4694 correctly.
4695
4696 * coding.c (encode_coding_emacs_mule): Pay attention to raw-8-bit
4697 chars.
4698 (encode_coding_iso_2022): Likewise.
4699 (encode_coding_sjis): Likewise.
4700 (encode_coding_big5): Likewise.
4701 (encode_coding_charset): Likewise.
4702
4703 2008-02-02 Kenichi Handa <handa@m17n.org>
4704
4705 * Makefile.in (lisp): Change chinese.elc to chinese.el. They are
4706 not bytecompiled now.
4707 (shortlisp): Likewise.
4708
4709 * charset.c (charset_jisx0201_roman, charset_jisx0208_1978)
4710 (charset_jisx0208): New variables.
4711 (Fdefine_charset_internal): Setup them if appropriate.
4712 (init_charset_once): Initialize them to -1.
4713
4714 * charset.h (charset_jisx0201_roman, charset_jisx0208_1978,
4715 charset_jisx0208): Extern them.
4716
4717 * coding.c (CODING_ISO_FLAG_USE_ROMAN): New macro
4718 (CODING_ISO_FLAG_USE_OLDJIS): New macro.
4719 (CODING_ISO_FLAG_FULL_SUPPORT): Macro definition changed.
4720 (setup_iso_safe_charsets): Fix arguemtns to Fassq.
4721 (DECODE_DESIGNATION): Pay attention to CODING_ISO_FLAG_USE_ROMAN
4722 and CODING_ISO_FLAG_USE_OLDJIS.
4723 (ENCODE_ISO_CHARACTER_DIMENSION1): Likewise.
4724 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
4725 (encode_coding_iso_2022): Change the 1st arg to
4726 ENCODE_ISO_CHARACTER to a variable.
4727
4728 2008-02-02 Kenichi Handa <handa@m17n.org>
4729
4730 * charset.h (enum define_charset_arg_index): New enums
4731 charset_arg_min_code and charset_arg_max_code.
4732 (struct charset): New member char_index_offset.
4733
4734 * charset.c (CODE_POINT_TO_INDEX): Take charset->char_index_offset
4735 into account.
4736 (INDEX_TO_CODE_POINT): Likewise.
4737 (Fdefine_charset_internal): Handle args[charset_arg_min_code] and
4738 args[charset_arg_max_code]. Setup charset.char_index_offset.
4739 (syms_of_charset): Fix args to Fdefine_charset_internal.
4740
4741 2008-02-02 Dave Love <fx@gnu.org>
4742
4743 * coding.c (decode_coding_utf_8): Reject overlong sequences.
4744
4745 2008-02-02 Dave Love <fx@gnu.org>
4746
4747 * coding.c: Doc fixes.
4748 (Fcoding_system_aliases): Fix return value.
4749 (Qmac): Remove (duplicated) definition.
4750
4751 2008-02-02 Dave Love <fx@gnu.org>
4752
4753 * charset.c (Fcharset_priority_list, Fset_charset_priority): New
4754 functions.
4755
4756 * character.c (Fstring): Doc fix.
4757
4758 * charset.c (Fdefine_charset_alias): Update Vcharset_list.
4759
4760 * fontset.c (Ffontset_info): Doc fix. Return charset names, not
4761 ids.
4762 (font-encoding-alist): Doc fix.
4763
4764 2008-02-02 Dave Love <fx@gnu.org>
4765
4766 * term.c (costs_set): Declare static, non-initialized for pcc.
4767 (encode_terminal_code): Remove ensued var.
4768
4769 * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal decl
4770 for K&R.
4771
4772 * xterm.c (xlwmenu_window_p): Fix prototype for K&R.
4773
4774 * coding.c (setup_iso_safe_charsets): Fix arg decl for K&R.
4775 (suffixes): Moved out of make_subsidiaries for K&R.
4776
4777 * charset.c (map_charset_chars): Fix c_function declaration for
4778 K&R.
4779
4780 * lisp.h (DEFUN) [!PROTOTYPES]: Remove spurious `args'.
4781
4782 2008-02-02 Dave Love <fx@gnu.org>
4783
4784 * data.c (Fchar_or_string_p): Doc fix. Use CHARACTERP.
4785
4786 * category.c (Fmodify_category_entry): Doc fix. Remove unused
4787 vars.
4788
4789 2008-02-02 Yong Lu <lyongu@asia-infonet.com>
4790
4791 * charset.c (Fdefine_charset_internal): Fix argument to bzero.
4792
4793 * coding.c (Fdefine_coding_system_internal): Fix previous change.
4794 (decode_coding_charset): Workaround for the bug of GCC 2.96.
4795
4796 2008-02-02 Kenichi Handa <handa@m17n.org>
4797
4798 * Makefile.in (lisp): Change cyrillic.elc to cyrillic.el,
4799 vietnamese.elc to vietnamese.el. They are not bytecompiled now.
4800 (shortlisp): Likewise.
4801
4802 2008-02-02 Kenichi Handa <handa@m17n.org>
4803
4804 * coding.c (decode_coding_charset): Adjusted for the change of
4805 Fdefine_coding_system_internal.
4806 (Fdefine_coding_system_internal): For a coding system of
4807 `charset' type, store a list of charset IDs in
4808 `charset_attr_charset_valids' element of coding attributes.
4809
4810 * charset.c (Fmake_char): Fix previous change.
4811
4812 2008-02-02 Kenichi Handa <handa@m17n.org>
4813
4814 * coding.c (ONE_MORE_BYTE_NO_CHECK): Increment consumed_chars.
4815 (emacs_mule_char): New arg src. Delete arg `composition'. Caller
4816 changed. Handle 2-byte and 3-byte charsets correctly.
4817 (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Renamed from
4818 DECODE_EMACS_MULE_COMPOSITION_RULE. Caller changed.
4819 (DECODE_EMACS_MULE_COMPOSITION_RULE_21): New macro.
4820 (DECODE_EMACS_MULE_21_COMPOSITION): Call
4821 DECODE_EMACS_MULE_COMPOSITION_RULE_21. Produce correct annotation
4822 sequence.
4823 (decode_coding_emacs_mule): Handle composition correctly. Rewind
4824 `src' and `consumed_chars' correctly before calling
4825 emacs_mule_char.
4826 (DECODE_COMPOSITION_START): Correctly handle the case of altchar
4827 and alt&rule composition.
4828 (decode_coding_iso_2022): Handle composition correctly.
4829 (init_coding_once): Setup emacs_mule_bytes for private charsets.
4830
4831 * charset.c (Fdefine_charset_internal): Fix bug for the case of
4832 re-defining a charset. If the charset has :emacs-mule-id, setup
4833 emacs_mule_bytes.
4834 (Fmake_char): If CODE1 is nil, use the minimum code of the
4835 charset.
4836
4837 2008-02-02 Kenichi Handa <handa@m17n.org>
4838
4839 * coding.c (encode_coding_iso_2022): If coding requires safe
4840 encoding, produce a character specified by
4841 CODING_INHIBIT_CHARACTER_SUBSTITUTION.
4842 (encode_coding_sjis): Likewise.
4843 (encode_coding_big5): Likewise.
4844 (encode_coding_charset): Likewise.
4845
4846 2008-02-02 Dave Love <fx@gnu.org>
4847
4848 * xterm.c (XSetIMValues): Declare.
4849
4850 * process.c: Conditionally include sys/wait.h, pty.h.
4851
4852 * print.c (print_object): Fix print format for 64-bit
4853 systems.
4854
4855 * keyboard.c (modify_event_symbol): Fix print format for 64-bit
4856 systems.
4857
4858 * buffer.c (emacs_strerror): Declare.
4859 (MMAP_ALLOCATED_P, mmap_enlarge, syms_of_buffer): Import changes
4860 from trunk.
4861
4862 * fontset.c (Fclear_face_cache): Declare.
4863 (accumulate_font_info): Commented-out (unused).
4864 (face_for_char, Fset_fontset_font, Ffontset_info): Remove unused
4865 variables.
4866
4867 * character.h (string_escape_byte8): Declare.
4868
4869 * charset.c (load_charset_map, load_charset_map_from_file): Remove
4870 unused vars.
4871 (Fdefine_charset_internal, Fsplit_char, syms_of_charset)
4872 (Fmap_charset_chars): Doc fix.
4873
4874 * coding.c (Vchar_coding_system_table, Qchar_coding_system):
4875 Removed.
4876 (Fset_coding_system_priority, Fset_coding_system_priority)
4877 (Fdefine_coding_system_internal): Doc fix.
4878
4879 2008-02-02 Dave Love <fx@gnu.org>
4880
4881 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Remove -nointrinsics.
4882
4883 2008-02-02 Kenichi Handa <handa@m17n.org>
4884
4885 * character.c (string_escape_byte8): Make multibyte string with
4886 correct size.
4887
4888 * charset.c (Fmake_char): Delete unnecessary code.
4889
4890 2008-02-02 Kenichi Handa <handa@m17n.org>
4891
4892 * xfns.c (x_encode_text): Allocate coding.destination here, and
4893 call encode_coding_object with dst_object Qnil.
4894
4895 * buffer.c (Fset_buffer_multibyte): Convert 8-bit bytes to
4896 multibyte form correctly.
4897
4898 * fontset.c (fs_load_font): Check fontp->full_name (not fontname)
4899 against Vfont_encoding_alist.
4900
4901 * coding.c (Fdecode_sjis_char): Fix typo (0x7F->0xFF). Fix the
4902 handling of charset list.
4903 (encode_coding_iso_2022): Setup coding->safe_charsets in advance.
4904 (decode_coding_object): Move point to coding->dst_pos before
4905 calling post-read-conversion function.
4906 (encode_coding_object): Give correct arguments to
4907 pre-write-conversion. Ignore the return value of
4908 pre-write-conversion function. Pay attention to the case that
4909 pre-write-conversion changes the current buffer. If dst_object is
4910 Qt, even if coding->src_bytes is zero, allocate at least one byte
4911 to coding->destination.
4912
4913 * coding.h (JIS_TO_SJIS): Fix typo (j1->s1, j2->s2).
4914
4915 * charset.c (Fmake_char): Make it more backward compatible.
4916 (Fmap_charset_chars): Fix docstring.
4917
4918 2008-02-02 Dave Love <fx@gnu.org>
4919
4920 * coding.c: Doc fixes.
4921 (Fdefine_coding_system_alias): Use names, not symbols, in
4922 coding-system-alist.
4923
4924 2008-02-02 Kenichi Handa <handa@m17n.org>
4925
4926 * fontset.c (free_realized_fontsets): Call Fclear_face_cache instead
4927 of calling free_realized_face.
4928
4929 2008-02-02 Yong Lu <lyongu@asia-infonet.com>
4930
4931 * charset.c (load_charset_map): Fix previous change.
4932 (read_hex): Don't treat SPC as a comment starter.
4933 (decode_char): If CODE_POINT_TO_INDEX retruns -1, always return
4934 -1.
4935 (Fdecode_char): Fix typo.
4936
4937 2008-02-02 Kenichi Handa <handa@m17n.org>
4938
4939 * charset.h (struct charset): New member `code_space_mask'.
4940
4941 * coding.c (coding_set_source): Delete the local variable
4942 beg_byte.
4943 (encode_coding_charset): Delete the local variable charset.
4944 (Fdefine_coding_system_internal): Likewise.
4945 (Fdefine_coding_system_internal): Setup
4946 attrs[coding_attr_charset_valids] correctly.
4947
4948 * charset.c (CODE_POINT_TO_INDEX): Utilize `code_space_mask'
4949 member to check if CODE is valid or not.
4950 (Fdefine_charset_internal): Initialize `code_space_mask' member.
4951 (encode_char): Before calling CODE_POINT_TO_INDEX, check if CODE
4952 is within the range of charset->min_code and carset->max_code.
4953
4954 2008-02-02 Dave Love <fx@gnu.org>
4955
4956 * syntax.h (syntax_temp) [!__GNUC__]: Declare.
4957
4958 * dispextern.h (generate_ascii_font): Fix return type.
4959
4960 * xfaces.c (generate_ascii_font): Fix arg declaration.
4961
4962 * coding.c (coding_inherit_eol_type)
4963 (Fset_terminal_coding_system_internal)
4964 (Fset_safe_terminal_coding_system_internal): Fix arg declarations.
4965
4966 2008-02-02 Kenichi Handa <handa@m17n.org>
4967
4968 * coding.c (decode_coding_charset, encode_coding_charset): Handle
4969 multiple charsets correctly.
4970
4971 2008-02-02 Kenichi Handa <handa@m17n.org>
4972
4973 * search.c (boyer_moore): Fix handling of mulitbyte character
4974 translation.
4975
4976 * xdisp.c (display_mode_element): When the variable `elt' is
4977 changed, update `this' and `lisp_string'.
4978
4979 2008-02-02 Kenichi Handa <handa@m17n.org>
4980
4981 * buffer.c (Fset_buffer_multibyte): Fix 8-bit char handling.
4982
4983 * callproc.c (Fcall_process): Be sure to give the current buffer
4984 to decode_coding_c_string. Update PT and PT_BYTE after the
4985 insertion.
4986
4987 * charset.c (struct charset_map_entries): New struct.
4988 (load_charset_map): Renamed from parse_charset_map. New args
4989 entries and n_entries. Caller changed.
4990 (load_charset_map_from_file): Renamed from load_charset_map.
4991 Caller changed. New arg control_flag. Call load_charset_map at
4992 the tail.
4993 (load_charset_map_from_vector): New function.
4994 (Fdefine_charset_internal): Setup charset.compact_codes_p.
4995 (encode_char): If the charset is compact, change a character index
4996 to a code point.
4997
4998 * coding.c (coding_alloc_by_making_gap): Check the case that the
4999 source and destination are the same correctly.
5000 (decode_coding_raw_text): Set coding->consumed_char and
5001 coding->consumed to 0.
5002 (produce_chars): If coding->chars_at_source is nonzero, update
5003 coding->consumed_char and coding->consumed before calling
5004 alloc_destination.
5005 (Fdefine_coding_system_alias): Register ALIAS in
5006 Vcoding_system_alist.
5007 (syms_of_coding): Define `no-convesion' coding system at the tail.
5008
5009 * fileio.c (Finsert_file_contents): Set coding_system instead of
5010 val. If the current buffer is multibyte, always call
5011 decode_coding_gap.
5012
5013 * xfaces.c (try_font_list): Give higher priority to fontset's
5014 family than face's family.
5015
5016 2008-02-02 Kenichi Handa <handa@m17n.org>
5017
5018 * callproc.c (Fcall_process): Be sure to give the current buffer
5019 to decode_coding_c_string.
5020
5021 * xfaces.c (try_font_list): Give a family specified in a fontset
5022 higher priority than a family specified in a face.
5023
5024 2008-02-02 Kenichi Handa <handa@m17n.org>
5025
5026 * fileio.c (Finsert_file_contents): Fix calculation of `inserted'.
5027 Fix arguments to insert_from_buffer.
5028
5029 * xdisp.c (display_mode_element): Fix calculation of `bytepos'.
5030
5031 2008-02-02 Kenichi Handa <handa@m17n.org>
5032
5033 * coding.c (produce_chars): Set the variable `multibytep' correctly.
5034 (decode_coding_gap): Set coding->dst_multibyte correctly.
5035
5036 2008-02-02 Kenichi Handa <handa@m17n.org>
5037
5038 * coding.c (encode_coding_utf_8): Initialize produced_chars to 0.
5039 (decode_coding_utf_16): Fix converting high and low bytes to
5040 code-point.
5041 (encode_coding_utf_16): Substitute coding->default_char for
5042 non-Unicode characters.
5043 (decode_coding): Don't call record_insert here.
5044 (setup_coding_system): Initialize `surrogate' of
5045 coding->spec.utf_16 to 0.
5046 (EMIT_ONE_BYTE): Fix for multibyte case.
5047
5048 * insdel.c (insert_from_gap): Call record_insert.
5049
5050 2008-02-02 Kenichi Handa <handa@m17n.org>
5051
5052 * casefiddle.c (casify_region): Fix multibyte case.
5053
5054 * character.c (c_string_width): Add return type `int'.
5055 (char_string_with_unification): Arg ADVANCED deleted.
5056
5057 * character.h (CHAR_VALID_P): Don't call CHARACTERP.
5058 (CHAR_STRING): Adjusted for the change of
5059 char_string_with_unification.
5060 (CHAR_STRING_ADVANCE): Make it do-while statement.
5061
5062 * chartab.c (sub_char_table_set_range): Optimized for the case
5063 DEPTH == 3. Add workaround code for a GCC optimization bug.
5064
5065 * charset.c (parse_charset_map): Remove an unused variable.
5066
5067 * coding.c: Delete unused variables.
5068
5069 * fileio.c (Finsert_file_contents): Set coding_system to Qnil
5070 earlier. If inserted is zero and the coding system doesn't
5071 require flushing, don't call decode_coding_gap.
5072
5073 * syntax.h (SET_RAW_SYNTAX_ENTRY): Don't call make_number.
5074
5075 2008-02-02 Kenichi Handa <handa@m17n.org>
5076
5077 The following changes are for using Unicode as an internal
5078 character model, and use UTF-8 format for buffer/string
5079 representation.
5080
5081 * .gdbinit (xchartable): Adjusted for the change of char table
5082 structure.
5083 (xsubchartable, xcoding, xcharset, xcurbuf): New commands.
5084
5085 * Makefile.in (obj): Add character.o and chartab.o.
5086 (lisp, shortlisp): Remove utf-8.elc:
5087 (*.o): For many files, change dependency on charset.h to
5088 character.h, and add dependency on character.h.
5089 (character.o, chartab.o): New targets.
5090
5091 * abbrev.c, bytecode.c, casefiddle.c, cmds.c, dispnew.c, doc.c,
5092 doprnt.c, dosfns.c, frame.c, marker.c, minibuf.c, msdos.c,
5093 w16select.c, w32bdf.c, w32console.c: Include "character.h" instead
5094 of "charset.h".
5095
5096 * dired.c, filelock.c: Include "character.h".
5097
5098 * alloc.c: Include "character.h" instead of "charset.h".
5099 (Fmake_char_table): Moved to chartab.c.
5100 (make_sub_char_table): Likewise.
5101 (syms_of_alloc): Remove defsubr for Smake_char_table.
5102
5103 * buffer.c: Include "character.h" instead of "charset.h", don't
5104 include "coding.h".
5105 (Fset_buffer_multibyte): Adjuted for UTF-8.
5106
5107 * buffer.h: EXFUN Fbuffer_live_p.
5108
5109 * callproc.c: Include "character.h" instead of "charset.h".
5110 (Fcall_process): Big change for the new code-conversion APIs.
5111
5112 * casetab.c: Include "character.h" instead of "charset.h".
5113 (set_canon, set_identity, shuffle): Adjusted for the new
5114 map_char_table spec.
5115 (init_casetab_once): Call CHAR_TABLE_SET instead of directly
5116 accessing the char table structure.
5117
5118 * chartab.c: New file that implements char table.
5119
5120 * category.c: Include "character.h".
5121 (copy_category_entry): New function.
5122 (copy_category_table): Call map_char_table and copy_category_entry.
5123 (Fmake_category_table): Initialize all top-vel slots.
5124 (char_category_set): New function.
5125 (modify_lower_category_set): Deleted.
5126 (Fmodify_category_entry): Call char_table_ref_and_range.
5127
5128 * category.h (CATEGORY_SET): Just call char_category_set.
5129
5130 * ccl.c: Include "character.h".
5131 (Qccl, Qcclp): New variables.
5132 (CCL_WRITE_CHAR): Alway treat the arg CH as a character even if
5133 it's less than 256.
5134 (CCL_WRITE_MULTIBYTE_CHAR): Deleted.
5135 (CCL_WRITE_STRING, CCL_READ_CHAR): Adjusted for the change of SRC
5136 and DST type.
5137 (ccl_driver): Types of arguments changed. Code adjusted for that.
5138 (Fccl_execute, Fccl_execute_on_string): Adjusted for the change of
5139 ccl_driver.
5140 (syms_of_ccl): Intern and staticpro Qccl and Qcclp.
5141
5142 * ccl.h (struct ccl_program): Members eol_type and multibyte
5143 deleted. New members src_multibyte, dst_multibyte, consumed, and
5144 produced.
5145 (struct ccl_spec): Members decoder and encoder deleted. New
5146 memeber ccl.
5147 (CODING_SPEC_CCL_PROGRAM): New macro.
5148 (ccl_driver): Prototype updated.
5149 (Qccl, Qcclp, Fccl_program_p): Extern them.
5150 (CHECK_CCL_PROGRAM): New macro.
5151
5152 * character.c, character.h, chartab.c: New files.
5153
5154 * charset.c: Mostly re-written. Character and multibyte sequence
5155 handling codes are moved to character.c.
5156
5157 * charset.h: Mostly re-written. Character and multibyte sequence
5158 handling codes are moved to character.h.
5159
5160 * coding.c, coding.h: Mostly re-written.
5161
5162 * composite.c: Include "character.h" instead of "charset.h".
5163 (CHAR_WIDTH): Moved to character.h.
5164 (HASH_KEY, HASH_VALUE): Deleted.
5165
5166 * composite.h (enum composition_method): Order of enumeration
5167 symbols changed.
5168
5169 * data.c: Include "character.h" instead of "charset.h".
5170 (Faref): Call CHAR_TABLE_REF for a char table.
5171 (Faset): Call CHAR_TABLE_SET for a char table.
5172
5173 * dispextern.h (free_realized_face, check_face_attribytes,
5174 generate_ascii_font): Extern them.
5175 (free_realized_multibyte_face): Extern deleted.
5176
5177 * disptab.h (DISP_CHAR_VECTOR): Adjusted for the change of char
5178 table structure.
5179
5180 * editfns.c: Include "character.h" instead of "charset.h".
5181 (Fchar_to_string): Always call CHAR_STRING.
5182
5183 * emacs.c (main): Call init_charset_once, init_charset,
5184 syms_of_chartab, and syms_of_character.
5185
5186 * fileio.c: Include "character.h" instead of "charset.h".
5187 (Finsert_file_contents): Big change for the new code-conversion
5188 API.
5189 (choose_write_coding_system): Likewise.
5190 (Fwrite_region): Likewise.
5191 (build_annotations_2): Deleted.
5192 (e_write): Big change for the new code-conversion API.
5193
5194 * fns.c: Include "character.h" instead of "charset.h".
5195 (copy_sub_char_table): Moved to chartab.c.
5196 (Fcopy_sequence): Call copy_char_table for a char table.
5197 (concat): Delete codes calling count_multibyte.
5198 (string_char_to_byte): Adjusted for the new multibyte form.
5199 (string_byte_to_char): Likewise.
5200 (internal_equal): Adjusted for the change of char table structure.
5201 (Fchar_table_subtype, Fchar_table_parent, Fset_char_table_parent,
5202 Fchar_table_extra_slot, Fset_char_table_extra_slot,
5203 Fchar_table_range, Fset_char_table_range, Fset_char_table_default,
5204 char_table_translate, optimize_sub_char_table,
5205 Foptimize_char_table, map_char_table, Fmap_char_table): Moved to
5206 chartab.c.
5207 (char_table_ref_and_index): Deleted.
5208 (HASH_KEY, HASH_VALUE): Moved to lisp.h.
5209 (Fmd5): Call preferred_coding_system instead of accessing
5210 Vcoding_category_list. Adjusted for the new code-conversion API.
5211 (syms_of_fns): Defsubr for char table related functions moved to
5212 chartab.c.
5213
5214 * fontset.c: Mostly re-written.
5215
5216 * fontset.h (struct font_info): Type of the member encoding_type
5217 changed.
5218 (enum FONT_SPEC_INDEX): New enum.
5219 (fontset_font_pattern, fs_load_font): Prototype updated.
5220 (FS_LOAD_FONT): Adjusted for the change of fs_load_font.
5221
5222 * indent.c: Include "character.h" instead of "charset.h".
5223 (MULTIBYTE_BYTES_WIDTH): Call CHAR_WIDTH instead of
5224 WIDTH_BY_CHAR_HEAD.
5225
5226 * insdel.c: Include "character.h" instead of "charset.h".
5227 (copy_text): Don't refer to Vnonascii_translation_table.
5228 (insert_from_gap): New function.
5229
5230 * keyboard.c: Include "character.h" instead of "charset.h".
5231 (command_loop_1): Never call direct_output_forward_char before
5232 a non-ASCII character.
5233 (read_char): If Vkeyboard_translate_table is a char table, always
5234 translated a character.
5235
5236 * keymap.c: Include "character.h".
5237 (store_in_keymap): Handle the case that IDX is a cons.
5238 (Fdefine_key): Handle the case that KEY is a cons and the car part
5239 is also a cons (range).
5240 (push_key_description): Adjusted for the new character code.
5241 (describe_vector): Call describe_char_table for a char table.
5242 (describe_char_table): New function.
5243
5244 * keymap.h (describe_char_table): Extern it.
5245
5246 * lisp.h (enum pvec_type): New member PVEC_SUB_CHAR_TABLE.
5247 (XSUB_CHAR_TABLE, XSETSUB_CHAR_TABLE): New macros.
5248 (CHAR_TABLE_ORDINARY_SLOTS, CHAR_TABLE_SINGLE_BYTE_SLOTS,
5249 SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS):
5250 Deleted.
5251 (CHAR_TABLE_REF, CHAR_TABLE_SET): Adjusted for the new char table
5252 structure.
5253 (CHAR_TABLE_TRANSLATE): Just call char_table_translate.
5254 (CHARTAB_SIZE_BITS_0, CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2,
5255 CHARTAB_SIZE_BITS_3): New macros.
5256 (chartab_size): Extern it.
5257 (struct Lisp_Char_Table): Re-designed.
5258 (struct Lisp_Sub_Char_Table): New structure.
5259 (HASH_KEY, HASH_VALUE): Moved from fns.c.
5260 (CHARACTERBITS): Defined as 22.
5261 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the above change.
5262 (SUB_CHAR_TABLE_P): Check PVEC_CHAR_TABLE.
5263 (GC_SUB_CHAR_TABLE_P): New macro.
5264 (Fencode_coding_string, Fdecode_coding_string): EXFUN Updated.
5265 (code_convert_string_norecord): Extern deleted.
5266 (init_character_once, syms_of_character, init_charset,
5267 syms_of_composite, Qeq, Fmakehash, insert_from_gap): Extern them.
5268
5269 * lread.c: Include "character.h".
5270 (read_multibyte): New arg NBYTES.
5271 (read_escape): The meaning of returned *BYTEREP changed.
5272 (to_multibyte): Deleted.
5273 (read1): Adjuted the handling of char table and string.
5274
5275 * print.c: Include "character.h" instead of "charset.h".
5276 (print_string): Convert 8-bit raw bytes to octal form by
5277 string_escape_byte8.
5278 (print_object): Adjusted for the new multibyte form. Print 8-bit
5279 raw bytes always in octal form. Handle sub char table correctly.
5280
5281 * process.c: Include "character.h" instead of "charset.h".
5282 (read_process_output): Adjusted for the new code-conversion API.
5283 (send_process): Likewise.
5284
5285 * puresize.h (BASE_PURESIZE): Increased.
5286
5287 * regex.c: Include "character.h" instead of "charset.h".
5288 (BYTE8_TO_CHAR, CHAR_BYTE8_P) [not emacs]: New dummy macros.
5289 (regex_compile): Accept a range whose starting and ending
5290 character have different leading bytes.
5291 (analyse_first): Adjusted for the above change.
5292
5293 * search.c: Include "character.h" instead of "charset.h".
5294 (search_buffer, boyer_moore): Adjusted for the new multibyte form.
5295 (Freplace_match): Adjusted for the change of
5296 multibyte_char_to_unibyte.
5297
5298 * syntax.c: Include "character.h" instead of "charset.h".
5299 (syntax_parent_lookup): Deleted.
5300 (Fmodify_syntax_entry): Accept a cons as CHAR.
5301 (skip_chars): Adjusted for the new multibyte form.
5302 (init_syntax_once): Call char_table_set_range instead of directly
5303 accessing the structure of a char table.
5304
5305 * syntax.h (SET_RAW_SYNTAX_ENTRY): Call CHAR_TABLE_SET.
5306 (SYNTAX_ENTRY_FOLLOW_PARENT): Macro deleted.
5307 (SET_RAW_SYNTAX_ENTRY_RANGE): New macro.
5308 (SYNTAX_ENTRY_INT): Call CHAR_TABLE_REF.
5309
5310 * term.c: Include "buffer.h" and "character.h".
5311 (encode_terminal_code): Adjusted for the new code-conversion API.
5312 (write_glyphs): Likewise.
5313 (produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH.
5314
5315 * w32term.c (x_new_font): Adjusted for the change of FS_LOAD_FONT.
5316
5317 * xdisp.c: Include "character.h".
5318 (get_next_display_element): Adjusted for the new multibyte form.
5319 (disp_char_vector): Adjusted for the new char table structure.
5320 (decode_mode_spec_coding): Adjusted for the new structure of
5321 coding system.
5322 (decode_mode_spec): Adjusted for the new code-conversion API.
5323
5324 * xfaces.c: Include "character.h" instead of "charset.h".
5325 (load_face_font): Adjusted for the change of choose_face_font and
5326 FS_LOAD_FONT.
5327 (generate_ascii_font): New function.
5328 (set_lface_from_font_name): Adjusted for the change of
5329 FS_LOAD_FONT.
5330 (set_font_frame_param): Adjusted for the change of
5331 choose_face_font.
5332 (free_realized_face): Make it public.
5333 (free_realized_faces_for_fontset): Renamed from
5334 free_realized_multibyte_face. Free also faces realized for ASCII.
5335 (choose_face_font): Argments changed. Adjusted for the change of
5336 fontset_font_pattern and FS_LOAD_FONT.
5337
5338 * xfns.c: Include "character.h".
5339 (x_encode_text): Adjusted for the new code-conversion API.
5340
5341 * xselect.c: Don't include "charset.h".
5342 (selection_data_to_lisp_data): Adjusted for the new code
5343 covnersion API.
5344
5345 * xterm.c: Include "character.h".
5346 (x_encode_char): New argument CHARSET. Caller changed.
5347 (x_get_char_face_and_encoding): Call ENCODE_CHAR instead of
5348 SPLIT_CHAR.
5349 (x_get_glyph_face_and_encoding): Likewise.
5350 (x_produce_glyphs): Don't check Vnonascii_translation_table Call
5351 CHAR_WIDTH instead of CHARSET_WIDTH.
5352 (XTread_socket): Adjusted for the new code-conversion API.
5353 (x_new_font): Adjusted for the change of FS_LOAD_FONT.
5354 (x_load_font): Adjusted for the change of struct font.
5355
1 2008-02-01 Stefan Monnier <monnier@iro.umontreal.ca> 5356 2008-02-01 Stefan Monnier <monnier@iro.umontreal.ca>
2 5357
3 * xfaces.c (face_at_buffer_position): Remove unused vars. 5358 * xfaces.c (face_at_buffer_position): Remove unused vars.
4 5359
5 2008-02-01 Kenichi Handa <handa@ni.aist.go.jp> 5360 2008-02-01 Kenichi Handa <handa@ni.aist.go.jp>