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