e2f13388122e9f01fc00fb015ff6ef9b332ccf9e
[chise/xemacs-chise.git-] / src / ChangeLog
1 2000-07-24  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
2
3         * text-coding.c (decode_coding_big5): Modify for UTF-2000.
4
5 2000-07-24  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
6
7         * mule-charset.c (vars_of_mule_charset): Update `utf-2000-version'
8         to 0.17.
9
10 2000-07-22  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
11
12         * file-coding.c (ucs_to_char): Don't use `CHARSET_TYPE_*'; modify
13         for `CHARSET_BY_ATTRIBUTES'.
14         (parse_iso2022_esc): Don't use `CHARSET_TYPE_*'; modify for
15         `CHARSET_BY_ATTRIBUTES'.
16
17         * text-coding.c (struct decoding_stream): Rename member `CH' to
18         `CPOS'.
19         (reset_decoding_stream): Use `str->cpos' instead of `str->ch'.
20         (decode_coding_sjis): Likewise.
21         (decode_coding_big5): Likewise.
22         (decode_coding_ucs4): Likewise.
23         (decode_coding_utf8): Likewise.
24         (parse_iso2022_esc): Don't use `CHARSET_TYPE_*'; modify for
25         `CHARSET_BY_ATTRIBUTES'.
26         (decode_coding_iso2022): Use `str->cpos' instead of `str->ch'; use
27         `str->counter'; decode 3, 4 bytes sets.
28         (char_encode_iso2022): Don't use `BREAKUP_CHAR'; encode 3, 4 bytes
29         sets.
30         (decode_coding_no_conversion): Use `str->cpos' instead of
31         `str->ch'.
32
33         * mule-charset.c (Vcharset_mojikyo_2022_1): New variable.
34         (Qmojikyo_2022_1): New variable.
35         (make_charset): Don't use `CHARSET_TYPE_*'.
36         (range_charset_code_point): Support coded-charset
37         `mojikyo-2022-1'.
38         (encode_builtin_char_1): Modify for `CHARSET_BY_ATTRIBUTES'.
39         (Fmake_charset): Don't use `CHARSET_TYPE_*'; modify for
40         `CHARSET_BY_ATTRIBUTES'.
41         (Fcharset_from_attributes): Don't use `CHARSET_TYPE_*'; modify for
42         `CHARSET_BY_ATTRIBUTES'.
43         (syms_of_mule_charset): Add new symbol `mojikyo-2022-1'.
44         (complex_vars_of_mule_charset): Add new coded-charset
45         `mojikyo-2022-1'.
46
47         * mule-charset.h (CHARSET_BY_ATTRIBUTES): New implementation and
48         interface; changed to inline function.
49
50         * char-ucs.h (Vcharset_mojikyo_2022_1): New variable.
51         (LEADING_BYTE_MOJIKYO_2022_1): New macro.
52         (LEADING_BYTE_MOJIKYO_2022_2): New macro.
53         (CHARSET_TYPE_94): Deleted.
54         (CHARSET_TYPE_94X94): Deleted.
55         (CHARSET_TYPE_96): Deleted.
56         (CHARSET_TYPE_96X96): Deleted.
57         (CHARSET_TYPE_128): Deleted.
58         (CHARSET_TYPE_128X128): Deleted.
59         (CHARSET_TYPE_256): Deleted.
60         (CHARSET_TYPE_256X256): Deleted.
61         (CHARSET_BY_ATTRIBUTES): New implementation and interface; changed
62         to inline function.
63         (DECODE_MOJIKYO_2022): New inline function.
64         (DECODE_CHAR): Use `DECODE_MOJIKYO_2022'; decode
65         `Vcharset_mojikyo_2022_1'.
66
67 2000-07-18  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
68
69         * mule-charset.c (byte_table_same_value_p): Use `internal_equal'
70         instead of `EQ'.
71         (put_byte_table): Likewise.
72         (char_id_table_equal): Use `get_byte_table' [new implementation].
73
74 2000-07-17  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
75
76         * mule-charset.c: Include <limits.h> in UTF-2000.
77         (BT_UINT8_MIN): New macro in UTF-2000.
78         (BT_UINT8_MAX): New macro in UTF-2000.
79         (BT_UINT8_t): New macro in UTF-2000.
80         (BT_UINT8_nil): New macro in UTF-2000.
81         (BT_UINT8_unbound): New macro in UTF-2000.
82         (INT_UINT8_P): New inline function in UTF-2000.
83         (UINT8_VALUE_P): New inline function in UTF-2000.
84         (UINT8_ENCODE): New inline function in UTF-2000.
85         (UINT8_DECODE): New inline function in UTF-2000.
86         (mark_uint8_byte_table): New function in UTF-2000.
87         (print_uint8_byte_table): New function in UTF-2000.
88         (uint8_byte_table_equal): New function in UTF-2000.
89         (uint8_byte_table_hash): New function in UTF-2000.
90         (make_uint8_byte_table): New function in UTF-2000.
91         (uint8_byte_table_same_value_p): New function in UTF-2000.
92         (BT_UINT16_MIN): New macro in UTF-2000.
93         (BT_UINT16_MAX): New macro in UTF-2000.
94         (BT_UINT16_t): New macro in UTF-2000.
95         (BT_UINT16_nil): New macro in UTF-2000.
96         (BT_UINT16_unbound): New macro in UTF-2000.
97         (INT_UINT16_P): New inline function in UTF-2000.
98         (UINT16_VALUE_P): New inline function in UTF-2000.
99         (UINT16_ENCODE): New inline function in UTF-2000.
100         (UINT16_DECODE): New inline function in UTF-2000.
101         (UINT8_TO_UINT16): New inline function in UTF-2000.
102         (mark_uint16_byte_table): New function in UTF-2000.
103         (print_uint16_byte_table): New function in UTF-2000.
104         (uint16_byte_table_equal): New function in UTF-2000.
105         (uint16_byte_table_hash): New function in UTF-2000.
106         (make_uint16_byte_table): New function in UTF-2000.
107         (uint16_byte_table_same_value_p): New function in UTF-2000.
108         (print_byte_table): New function in UTF-2000.
109         (byte-table): Use `print_byte_table' as printer.
110         (make_byte_table): Delete second argument `older'.
111         (byte_table_same_value_p): New function in UTF-2000.
112         (copy_byte_table): Deleted.
113         (get_byte_table): New function in UTF-2000.
114         (put_byte_table): New function in UTF-2000.
115         (print_char_id_table): New function in UTF-2000.
116         (char-id-table): Use `print_char_id_table' as printer.
117         (make_char_id_table): Delete second argument `older'.
118         (get_char_id_table): Use `get_byte_table [new implementation].
119         (put_char_id_table): Use `get_byte_table and `put_byte_table' [new
120         implementation].
121         (Ffind_char_attribute_table): New function in UTF-2000.
122         (mark_charset): Mark `cs->encoding_table' in UTF-2000.
123         (syms_of_mule_charset): Add LRECORD_IMPLEMENTATION
124         `uint8_byte_table' and `uint16_byte_table' in UTF-2000.
125         (syms_of_mule_charset): Add new function
126         `find-char-attribute-table' in UTF-2000.
127
128         * lrecord.h (enum lrecord_type): Add
129         `lrecord_type_uint16_byte_table' and
130         `lrecord_type_uint8_byte_table'.
131
132         * char-ucs.h (struct Lisp_Uint8_Byte_Table): New structure.
133         (Lisp_Uint8_Byte_Table): New type.
134         (XUINT8_BYTE_TABLE): New macro.
135         (XSETUINT8_BYTE_TABLE): New macro.
136         (UINT8_BYTE_TABLE_P): New macro.
137         (GC_UINT8_BYTE_TABLE_P): New macro.
138         (struct Lisp_Uint16_Byte_Table): New structure.
139         (Lisp_Uint16_Byte_Table): New type.
140         (XUINT16_BYTE_TABLE): New macro.
141         (XSETUINT16_BYTE_TABLE): New macro.
142         (UINT16_BYTE_TABLE_P): New macro.
143         (GC_UINT16_BYTE_TABLE_P): New macro.
144
145 2000-07-13  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
146
147         * mule-charset.c (Vcharacter_ideographic_radical_table): Deleted.
148         (Vcharacter_ideographic_strokes_table): Deleted.
149         (Vcharacter_total_strokes_table): Deleted.
150         (Vcharacter_morohashi_daikanwa_table): Deleted.
151         (Vcharacter_decomposition_table): Deleted.
152         (Qname): Deleted because it is duplicated.
153         (Qideographic_radical): Deleted.
154         (Qideographic_strokes): Deleted.
155         (Qtotal_strokes): Deleted.
156         (Qmorohashi_daikanwa): Deleted.
157         (Fchar_attribute_alist): Use `Vchar_attribute_hash_table' for
158         `ideographic-radical', `ideographic-strokes', `total-strokes',
159         `morohashi-daikanwa' and `->decomposition'.
160         (Fget_char_attribute): Likewise.
161         (Fput_char_attribute): Likewise; use `make-vector' instead of
162         `make_older_vector' for `->decomposition' value.
163         (Fdefine_char): Comment out code to check `morohashi-daikanwa' and
164         `ideograph-daikanwa'.
165         (syms_of_mule_charset): Delete builtin symbols `name',
166         `ideographic-radical', `ideographic-strokes', `total-strokes' and
167         `morohashi-daikanwa'.
168         (vars_of_mule_charset): Don't setup
169         `Vcharacter_ideographic_radical_table',
170         `Vcharacter_ideographic_strokes_table',
171         `Vcharacter_total_strokes_table',
172         `Vcharacter_morohashi_daikanwa_table' and
173         `Vcharacter_decomposition_table'.
174
175 2000-06-30  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
176
177         * alloc.c: Use `HAVE_GGC' instead of `UTF2000' for
178         `make_older_vector', `make_vector_newer_1' and
179         `make_vector_newer'.
180
181         * lisp.h: Use `HAVE_GGC' instead of `UTF2000' for
182         `make_older_vector' and `make_vector_newer'.
183
184         * config.h.in (HAVE_GGC): New macro.
185
186 2000-06-16  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
187
188         * mule-charset.c (struct char_attribute_list_closure): New
189         structure in UTF-2000.
190         (add_char_attribute_to_list_mapper): New function in UTF-2000.
191         (Fchar_attribute_list): Likewise.
192         (Fset_charset_mapping_table): Use `make_vector_newer'.
193         (Fdecode_builtin_char): New function in UTF-2000.
194         (syms_of_mule_charset): Add new function `char-attribute-list' and
195         `decode-builtin-char' in UTF-2000.
196
197         * lisp.h (make_vector_newer): New prototype.
198
199         * alloc.c (make_vector_newer_1): New function.
200         (make_vector_newer): New function.
201
202 2000-06-14  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
203
204         * char-ucs.h (MAX_CHAR_DAIKANWA): Changed to `(MIN_CHAR_MOJIKYO +
205         50100)'.
206
207 2000-06-12  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
208
209         * mule-charset.c (Vchar_attribute_hash_table): New variable.
210         (Vcharacter_attribute_table): Deleted.
211         (Vcharacter_name_table): Deleted.
212         (put_char_attribute): Deleted.
213         (remove_char_attribute): Deleted.
214         (struct char_attribute_alist_closure): New structure.
215         (add_char_attribute_alist_mapper): New function.
216         (Fchar_attribute_alist): Use `Vchar_attribute_hash_table' instead
217         of `Vcharacter_attribute_table' and `Vcharacter_name_table'.
218         (Fget_char_attribute): Likewise.
219         (Fput_char_attribute): Likewise.
220         (Fremove_char_attribute): Use `Vchar_attribute_hash_table' instead
221         of `remove_char_attribute'.
222         (Fdefine_char): Return character.
223         (vars_of_mule_charset): Don't setup `Vcharacter_attribute_table'
224         and `Vcharacter_name_table'.
225         (complex_vars_of_mule_charset): Likewise
226         `Vchar_attribute_hash_table'.
227
228 2000-06-10  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
229
230         * character.h (CHARC_CHARSET): New macro.
231         (CHARC_CHARSET_ID): New macro.
232         (CHARC_CODE_POINT): New macro.
233         (CHARC_COLUMNS): New macro.
234         (CHARC_TO_CHAR): New inline function.
235         (CHARC_EQ): New inline function.
236         (CHARC_ASCII_EQ): New inline function.
237         (CHARC_IS_SPACE): New inline function.
238         (ASCII_TO_CHARC): New inline function.
239
240         * char-ucs.h (encode_char_2): Deleted.
241         (ENCODE_CHAR): Use `encode_char_1' again.
242         (breakup_char_1): Likewise.
243         (CHAR_TO_CHARC): New inline function.
244
245         * char-lb.h, char-1byte.h (CHAR_TO_CHARC): New inline function.
246
247 2000-06-09  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
248
249         * redisplay.c (add_emchar_rune): Use `ASCII_TO_CHARC',
250         `CHAR_TO_CHARC' and `CHARC_CHARSET'.
251         (create_text_block): Use `CHARC_ASCII_EQ' and `CHARC_IS_SPACE'.
252         (generate_formatted_string_db): Use `CHARC_TO_CHAR'.
253         (create_string_text_block): Use `CHARC_ASCII_EQ' and
254         `CHARC_IS_SPACE'.
255         (pixel_to_glyph_translation): Use `CHARC_ASCII_EQ'.
256
257         * redisplay-x.c (separate_textual_runs): Use `CHARC_CHARSET' and
258         `CHARC_CODE_POINT'.
259         (x_output_display_block): Use `CHARC_CHARSET' and
260         `CHARC_ASCII_EQ'.
261
262         * redisplay-tty.c (tty_output_display_block): Use
263         `CHARC_ASCII_EQ'.
264         (tty_output_display_block): Likewise; use `ASCII_TO_CHARC'.
265
266         * redisplay-output.c (compare_runes): Use `CHARC_EQ'.
267
268         * insdel.c (find_charsets_in_charc_string): Use
269         `CHARC_CHARSET_ID'.
270         (charc_string_displayed_columns): Use `CHARC_COLUMNS'.
271         (convert_bufbyte_string_into_charc_dynarr): Use `CHAR_TO_CHARC'.
272         (convert_charc_string_into_bufbyte_dynarr): Use `CHARC_TO_CHAR'.
273         (convert_charc_string_into_malloced_string): Likewise.
274
275 2000-06-09  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
276
277         * toolbar-x.c (x_output_toolbar_button): Use <Charc_dynarr *>
278         instead of <Emchar_dynarr *> for buf; use
279         `convert_bufbyte_string_into_charc_dynarr' instead of
280         `convert_bufbyte_string_into_emchar_dynarr'; use
281         `find_charsets_in_charc_string' instead of
282         `find_charsets_in_emchar_string'.
283
284         * redisplay.h:
285         - Include "character.h".
286         (struct rune): New member `cglyph'; delete member `chr'.
287
288         * redisplay.c (redisplay_text_width_charc_string): New function;
289         delete `redisplay_text_width_emchar_string'.
290         (rtw_charc_dynarr): New variable; renamed from
291         `rtw_emchar_dynarr'.
292         (redisplay_text_width_string): Use `rtw_charc_dynarr' instead of
293         `rtw_emchar_dynarr'; use
294         `convert_bufbyte_string_into_charc_dynarr' instead of
295         `convert_bufbyte_string_into_emchar_dynarr'; use
296         `redisplay_text_width_charc_string' instead of
297         `redisplay_text_width_emchar_string'.
298         (redisplay_frame_text_width_string): Use `rtw_charc_dynarr'
299         instead of `rtw_emchar_dynarr'; use
300         `convert_bufbyte_string_into_charc_dynarr' instead of
301         `convert_bufbyte_string_into_emchar_dynarr'.
302         (add_emchar_rune): Add <Charc> instead of <Emchar>; use
303         `redisplay_text_width_charc_string' instead of
304         `redisplay_text_width_emchar_string'.
305         (create_text_block): Modify for <struct rune> change.
306         (generate_formatted_string_db): Likewise.
307         (create_string_text_block): Likewise.
308         (pixel_to_glyph_translation): Likewise.
309
310         * redisplay-x.c (separate_textual_runs): Use <const Charc *>
311         instead of <const Emchar *>.
312         (x_text_width): Likewise.
313         (x_output_display_block): Use <Charc_dynarr *> instead
314         <Emchar_dynarr *>; modify for <structure rune> change.
315         (x_output_string): Use <Charc_dynarr *> instead of <Emchar_dynarr
316         *>.
317
318         * redisplay-tty.c (tty_text_width): Use <const Charc *> instead of
319         <const Emchar *>; use `charc_string_displayed_columns' instead of
320         `emchar_string_displayed_columns'.
321         (tty_output_display_block): Use <Charc_dynarr *> instead of
322         <Emchar_dynarr *> for buf; modify for <structure rune> change; use
323         `tty_output_charc_dynarr' instead of `tty_output_emchar_dynarr'.
324         (tty_output_charc_dynarr_dynarr): New variable; renamed from
325         `tty_output_emchar_dynarr_dynarr'.
326         (tty_output_charc_dynarr): New function; delete
327         `tty_output_charc_dynarr'.
328
329         * redisplay-output.c (compare_runes): Modify for `struct rune'.
330         (redisplay_output_layout): Use <Charc_dynarr *> instead of
331         <Emchar_dynarr *> for buf; use
332         `convert_bufbyte_string_into_charc_dynarr' instead of
333         `convert_bufbyte_string_into_emchar_dynarr'.
334
335         * frame.c (title_string_charc_dynarr): New variable; renamed from
336         `title_string_emchar_dynarr'.
337         (generate_title_string): Use `title_string_charc_dynarr' instead
338         of `title_string_emchar_dynarr'; use
339         `convert_charc_string_into_malloced_string' instead of
340         `convert_emchar_string_into_malloced_string'.
341         (init_frame): Use `title_string_charc_dynarr' instead of
342         `title_string_emchar_dynarr'.
343
344         * console.h:
345         - Include "character.h".
346         (struct console_methods): Use <const Charc *> instead of <const
347         Emchar *> in `text_width_method'; use <Charc_dynarr *> instead of
348         <Emchar_dynarr *> in output_string_method.
349
350         * console-x.h (x_output_string): Use <Charc_dynarr *> instead of
351         <Emchar_dynarr *>.
352
353         * console-stream.c (stream_text_width): Use <const Charc *>
354         instead of <const Emchar *>.
355
356         * character.h (Charc_dynarr): New type.
357
358         * char-ucs.h (structure Charc): New structure; define new type
359         `Charc'.
360
361         * char-lb.h (DECODE_CHAR): New inline function.
362         (encode_char_1): New inline function.
363         (ENCODE_CHAR): New macro.
364         (structure Charc): New structure; define new type `Charc'.
365
366         * char-1byte.h (Vcharset_control_1): New macro.
367         (Vcharset_latin_iso8859_1): New macro.
368         (DECODE_CHAR): New inline function.
369         (encode_char_1): New inline function.
370         (ENCODE_CHAR): New macro.
371         (structure Charc): New structure; define new type `Charc'.
372
373         * insdel.c (find_charsets_in_charc_string): New function; delete
374         `find_charsets_in_emchar_string'.
375         (charc_string_displayed_columns): New function; delete
376         `emchar_string_displayed_columns'.
377         (convert_bufbyte_string_into_charc_dynarr): New function; delete
378         `convert_bufbyte_string_into_emchar_dynarr'.
379         (convert_charc_string_into_bufbyte_dynarr): New function; delete
380         `convert_charc_string_into_bufbyte_dynarr'.
381         (convert_charc_string_into_malloced_string): New function; delete
382         `convert_charc_string_into_malloced_string'.
383
384         * buffer.h (find_charsets_in_charc_string): New prototype; delete
385         `find_charsets_in_emchar_string'.
386         (charc_string_displayed_columns): New prototype; delete
387         `emchar_string_displayed_columns'.
388         (convert_charc_string_into_bufbyte_dynarr): New prototype; delete
389         `convert_charc_string_into_bufbyte_dynarr'.
390         (convert_charc_string_into_malloced_string): New prototype; delete
391         `convert_charc_string_into_malloced_string'.
392
393 2000-06-08  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
394
395         * select-x.c (Fx_store_cutbuffer_internal): Modify for UTF-2000.
396
397 2000-06-07  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
398
399         * chartab.h (get_non_ascii_char_table_value): Use <Charset_ID>.
400
401         * char-ucs.h: Use <short> for <Charset_ID>.
402
403         * mule-charset.h, char-1byte.h: Use <unsigned char> for
404         <Charset_ID>.
405
406 2000-06-02  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
407
408         * mule-charset.c (vars_of_mule_charset): Update `utf-2000-version'
409         to 0.16.
410
411 2000-06-02  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
412
413         * mule-charset.c (Vcharacter_morohashi_daikanwa_table): New
414         variable.
415         (Qmorohashi_daikanwa): New variable.
416         (Fchar_attribute_alist): Use `Vcharacter_morohashi_daikanwa_table'
417         for `morohashi-daikanwa' attribute.
418         (Fget_char_attribute): Likewise.
419         (Fput_char_attribute): Likewise.
420         (Fdefine_char): Don't setup `morohashi-daikanwa' attribute if it
421         has the same value of `ideograph-daikanwa'.
422         (syms_of_mule_charset): Add new symbol `morohashi-daikanwa'.
423         (vars_of_mule_charset): Setup
424         `Vcharacter_morohashi_daikanwa_table'.
425
426 2000-06-02  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
427
428         * mule-charset.c (Fchar_attribute_alist): Add coded-charset
429         attributes.
430         (add_charset_to_list_mapper): Add `key' instead of
431         `XCHARSET_NAME (value)' to return aliases.
432
433 2000-06-02  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
434
435         * mule-charset.c (Vcharacter_ideographic_radical_table): New
436         variable.
437         (Vcharacter_ideographic_strokes_table): New variable.
438         (Qideographic_radical): New variable.
439         (Qideographic_strokes): New variable.
440         (Fchar_attribute_alist): Use
441         `Vcharacter_ideographic_radical_table' for `ideographic-radical'
442         attribute; use `Vcharacter_ideographic_strokes_table' for
443         `ideographic-strokes' attribute.
444         (Fget_char_attribute): Likewise.
445         (Fput_char_attribute): Likewise.
446         (syms_of_mule_charset): Add new symbol `ideographic-radical' and
447         `ideographic-strokes'.
448         (vars_of_mule_charset): Setup
449         `Vcharacter_ideographic_radical_table' and
450         `Vcharacter_ideographic_strokes_table'.
451
452 2000-06-02  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
453
454         * mule-charset.c (Vcharacter_total_strokes_table): New variable.
455         (Qtotal_strokes): New variable.
456         (Fchar_attribute_alist): Use `Vcharacter_total_strokes_table' for
457         `total-strokes' attribute.
458         (Fget_char_attribute): Likewise.
459         (Fput_char_attribute): Likewise.
460         (syms_of_mule_charset): Add new symbol `total-strokes'.
461         (vars_of_mule_charset): Setup `Vcharacter_total_strokes_table'.
462
463 2000-06-02  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
464
465         * mule-charset.c (Vcharacter_decomposition_table): New variable.
466         (Fchar_attribute_alist): Add `name' and `->decomposition' if they
467         are found.
468         (Fget_char_attribute): Use `Vcharacter_decomposition_table' for
469         `->decomposition' attribute.
470         (Fput_char_attribute): Likewise.
471         (vars_of_mule_charset): Setup `Vcharacter_decomposition_table'.
472
473 2000-06-01  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
474
475         * mule-charset.c (decoding_table_check_elements): New function.
476         (Fset_charset_mapping_table): Use `decoding_table_check_elements'.
477
478 2000-05-31  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
479
480         * mule-charset.c (Fset_charset_mapping_table): Use
481         `put_char_ccs_code_point'.
482
483 2000-05-31  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
484
485         * mule-charset.c (decoding_table_put_char): New inline function.
486         (put_char_ccs_code_point): Use `decoding_table_put_char'.
487
488 2000-05-31  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
489
490         * mule-charset.c (CHARSET_BYTE_SIZE): New inline function.
491         (XCHARSET_BYTE_SIZE): New macro.
492         (decoding_table_remove_char): New inline function.
493         (put_char_ccs_code_point): Use `XCHARSET_BYTE_SIZE'; use
494         `decoding_table_remove_char'.
495         (remove_char_ccs): Use `decoding_table_remove_char'.
496         (Fset_charset_mapping_table): Use `CHARSET_BYTE_SIZE'.
497
498 2000-05-31  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
499
500         * mule-charset.c (Vcharacter_name_table): New variable.
501         (Qname): New variable.
502         (Fget_char_attribute): Use `Vcharacter_name_table' for `name'
503         attribute.
504         (Fput_char_attribute): Use function `put_char_ccs_code_point'; use
505         `Vcharacter_name_table' for `name' attribute.
506         (Fremove_char_attribute): Use function `remove_char_ccs'.
507         (put_char_ccs_code_point): New function.
508         (remove_char_ccs): New function.
509         (syms_of_mule_charset): Add new symbol `name'.
510         (vars_of_mule_charset): Setup `Vcharacter_name_table'.
511
512 2000-05-30  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
513
514         * mule-charset.c (make_byte_table): Add new argument `older'.
515         (make_char_id_table): Likewise.
516         (copy_char_id_table): Comment out because it is not used.
517         (put_char_id_table): Modify for `make_byte_table'.
518         (Fput_char_attribute): Make encoding_table as older object;
519         inherit older bit of `Vcharacter_composition_table'.
520         (mark_charset): Don't mark `cs->encoding_table'.
521         (vars_of_mule_charset): Make `Vcharacter_attribute_table' as a
522         normal object; make `Vcharacter_composition_table' as an older
523         object; delete staticpro for `Vcharacter_composition_table'; make
524         `Vcharacter_variant_table' as a normal object.
525
526         * alloc.c (alloc_older_lcrecord): New function in UTF-2000.
527         (mark_object): Don't check older object in UTF-2000.
528
529         * lrecord.h (struct lrecord_header): Add new member `older' in
530         UTF-2000.
531         (set_lheader_implementation): Setup `SLI_header->older' in
532         UTF-2000.
533         (set_lheader_older_implementation): New macro in UTF-2000.
534         (OLDER_RECORD_P): New macro in UTF-2000.
535         (OLDER_RECORD_HEADER_P): New macro in UTF-2000.
536         (alloc_older_lcrecord): New prototype in UTF-2000.
537         (alloc_older_lcrecord_type): New macro in UTF-2000.
538
539 2000-05-29  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
540
541         * mule-charset.c (byte_table_description): Use
542         `XD_LISP_OBJECT_ARRAY' instead of `XD_LISP_OBJECT'.
543         (char_id_table_description): Delete bogus `, 1'.
544         (Fget_char_attribute): Refer encoding_table of each coded-charset
545         to get value of coded-charset attribute of a character.
546         (Fput_char_attribute): Use `make_older_vector' instead of
547         `make_vector'; use encoding_table of each coded-charset to store
548         value of coded-charset attribute of a character.
549         (Fremove_char_attribute): Use encoding_table of each coded-charset
550         to store value of coded-charset attribute of a character.
551         (mark_charset): Mark `cs->encoding_table'; don't mark
552         `cs->decoding_table'.
553         (charset_description): Add description of new member
554         `encoding_table'.
555         (make_charset): Initialize `encoding_table'.
556
557         * char-ucs.h (struct Lisp_Charset): Add new member
558         `encoding_table'.
559         (CHARSET_ENCODING_TABLE): New macro.
560         (XCHARSET_ENCODING_TABLE): New macro.
561         (charset_code_point): New implementation.
562         (encode_char_1): Likewise.
563
564         * alloc.c (all_older_lcrecords): New variable in UTF-2000.
565         (disksave_object_finalization_1): Call finalizers of
566         `all_older_lcrecords' in UTF-2000.
567         (make_older_vector): New function in UTF-2000.
568         (reinit_alloc_once_early): Initialize `all_older_lcrecords' in
569         UTF-2000.
570
571         * lisp.h (make_older_vector): New prototype in UTF-2000.
572
573 2000-05-22  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
574
575         * lrecord.h (enum lrecord_type): Rename
576         `lrecord_type_char_code_table' to `lrecord_type_char_id_table'.
577
578         * text-coding.c (COMPOSE_ADD_CHAR): Use `CHAR_ID_TABLE_P' and
579         `get_char_id_table' instead of `CHAR_CODE_TABLE_P' and
580         `get_char_code_table'.
581
582         * mule-charset.c (mark_char_id_table): Renamed from
583         `mark_char_code_table'.
584         (char_id_table_equal): Renamed from `char_code_table_equal'.
585         (char_id_table_hash): Renamed from `char_code_table_hash'.
586         (make_char_id_table): Renamed from `make_char_code_table'.
587         (copy_char_id_table): Renamed from `copy_char_code_table'.
588         (get_char_id_table): Renamed from `get_char_code_table'.
589         (put_char_id_table): Renamed from `put_char_code_table'.
590         (to_char_id): Renamed from `to_char_code'.
591
592         * char-ucs.h (struct Lisp_Char_ID_Table): Renamed from
593         `Lisp_Char_Code_Table'.
594         (char_id_table): Renamed from `char_code_table'.
595         (XCHAR_ID_TABLE): Renamed from `XCHAR_CODE_TABLE'.
596         (XSETCHAR_ID_TABLE): Renamed from `XSETCHAR_CODE_TABLE'.
597         (CHAR_ID_TABLE_P): Renamed from `CHAR_CODE_TABLE_P'.
598         (GC_CHAR_ID_TABLE_P): Renamed from `GC_CHAR_CODE_TABLE_P'.
599         (get_char_id_table): Renamed from `get_char_code_table'.
600
601 2000-05-22  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
602
603         * lrecord.h (enum lrecord_type): Rename
604         `lrecord_type_char_byte_table' to `lrecord_type_byte_table'.
605
606         * mule-charset.c (mark_byte_table): Renamed from
607         `mark_char_byte_table'.
608         (byte_table_equal): Renamed from `char_byte_table_equal'.
609         (byte_table_hash): Renamed from `byte_table_hash'.
610         (make_byte_table): Renamed from `make_byte_table'.
611         (copy_byte_table): Renamed from `copy_char_byte_table'.
612
613         * char-ucs.h (struct Lisp_Byte_Table): Renamed from
614         `Lisp_Char_Byte_Table'.
615         (byte_table): Renamed from `char_byte_table'.
616         (XBYTE_TABLE): Renamed from `XCHAR_BYTE_TABLE'.
617         (XSETBYTE_TABLE): Renamed from `XSET_CHAR_BYTE_TABLE'.
618         (BYTE_TABLE_P): Renamed from `XBYTE_TABLE_P'.
619         (GC_BYTE_TABLE_P): Renamed from `GC_CHAR_BYTE_TABLE_P'.
620
621 2000-05-02  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
622
623         * buffer.c (dfc_convert_to_external_format): Modify for UTF-2000.
624         (dfc_convert_to_internal_format): Likewise.
625         
626         * text-coding.c (Fcoding_system_canonical_name_p): New function.
627         * text-coding.c (Fcoding_system_alias_p): New function.
628         * text-coding.c (Fcoding_system_aliasee): New function.
629         * text-coding.c (append_suffix_to_symbol): New function.
630         * text-coding.c (dangling_coding_system_alias_p): New function.
631         * text-coding.c (Ffind_coding_system):
632         * text-coding.c (Fcopy_coding_system):
633         * text-coding.c (encode_coding_no_conversion):
634         * text-coding.c (syms_of_file_coding):
635         * text-coding.c (vars_of_file_coding):
636         Rewrite coding system alias code.
637         Allow nested aliases, like symbolic links.
638         Allow redefinition of coding system aliases.
639         Prevent existence of dangling coding system aliases.
640         Eliminate convert_to_external_format.
641         Eliminate convert_to_internal_format.
642         
643         * text-coding.c: Change enum eol_type to eol_type_t.
644
645 2000-05-02  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
646
647         * mule-charset.c (encode_builtin_char_1): Limit builtin-code-range
648         of `mojikyo' to MIN_CHAR_MOJIKYO + 94 * 60 * 22.
649
650         * char-ucs.h (MAX_CHAR_MOJIKYO): Limit builtin-code-range to
651         MIN_CHAR_MOJIKYO + 94 * 60 * 22.
652
653 2000-04-28  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
654
655         * mule-charset.c (encode_builtin_char_1): Use `mojikyo' instead of
656         `ideograph-daikanwa'.
657
658         * char-ucs.h (Vcharset_ucs): Deleted because it is not used.
659         (Vcharset_ucs_bmp): Likewise.
660         (Vcharset_mojikyo): Add new extern variable definition.
661         (Vcharset_latin_iso8859_2): Deleted because it is not used.
662         (Vcharset_latin_iso8859_3): Likewise.
663         (Vcharset_latin_iso8859_4): Likewise.
664         (Vcharset_latin_iso8859_9): Likewise.
665         (Vcharset_latin_viscii_lower): Likewise.
666         (Vcharset_latin_viscii_upper): Likewise.
667         (DECODE_CHAR): If charset is `mojikyo-pj-N', corresponding
668         `mojikyo' code-point is used to decode.
669         (encode_char_2): New function [to convert `mojikyo' code-point to
670         Mojikyo font encoding].
671         (ENCODE_CHAR): Use `encode_char_2' instead of `encode_code_1'.
672         (breakup_char_1): Likewise.
673         (CHAR_CHARSET): Use `ENCODE_CHAR' instead of `BREAKUP_CHAR'.
674
675 2000-04-27  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
676
677         * text-coding.c (Fmake_coding_system): Add document about
678         `disable-composition' property.
679
680 2000-04-27  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
681
682         * text-coding.c (Qdisable_composition): New variable; delete
683         `Qcomposite'.
684         (Fmake_coding_system): Add new property `disable-composite';
685         delete property `composite'.
686         (COMPOSE_ADD_CHAR): Use `CODING_SYSTEM_DISABLE_COMPOSITION'
687         instead of `!CODING_SYSTEM_COMPOSITE'.
688         (syms_of_file_coding): Add new symbol `disable-composition';
689         delete symbol `composite'.
690
691         * file-coding.h (struct Lisp_Coding_System): Add
692         `disable_composition'; delete `enable_composition'.
693         (CODING_SYSTEM_DISABLE_COMPOSITION): New macro; delete
694         `CODING_SYSTEM_COMPOSITE'.
695         (XCODING_SYSTEM_DISABLE_COMPOSITION): New macro; delete
696         `XCODING_SYSTEM_COMPOSITE'.
697
698 2000-04-27  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
699
700         * mule-charset.c (vars_of_mule_charset): Update `utf-2000-version'
701         to 0.15.
702
703 2000-04-26  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
704
705         * text-coding.c (Qcomposite): New variable.
706         (Fmake_coding_system): Add new property `composite'.
707         (struct decoding_stream): Add `combined_char_count',
708         `combined_chars' and `combining_table' in UTF-2000.
709         (COMPOSE_FLUSH_CHARS): New macro.
710         (COMPOSE_ADD_CHAR): New macro.
711         (reset_decoding_stream): Reset `str->combined_char_count' and
712         `str->combining_table' in UTF-2000.
713         (decode_coding_iso2022): Modify for character-decomposition.
714         (syms_of_file_coding): Add new symbol `composite'.
715
716 2000-04-25  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
717
718         * mule-charset.c (Vcharset_latin_tcvn5712): New variable.
719         (Fput_char_attribute): Set up `Vcharacter_variant_table' instead
720         of `Vcharacter_composition_table' if `->decomposition' property
721         has only 1 element.
722         (Qlatin_tcvn5712): New variable.
723         (syms_of_mule_charset): Add new symbol `latin-tcvn5712'.
724         (complex_vars_of_mule_charset): Add new coded-charset
725         `latin-tcvn5712'.
726
727         * char-ucs.h (LEADING_BYTE_LATIN_TCVN5712): New macro.
728
729 2000-04-20  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
730
731         * file-coding.h (struct Lisp_Coding_System): Add
732         `enable_composition'.
733         (CODING_SYSTEM_COMPOSITE): New macro.
734         (XCODING_SYSTEM_COMPOSITE): New macro.
735
736 2000-03-17  MORIOKA Tomohiko  <tomo@m17n.org>
737
738         * mule-canna.c (c2mu): Fix problem with UTF-2000.
739
740 2000-03-16  MORIOKA Tomohiko  <tomo@m17n.org>
741
742         * mule-charset.c (Fput_char_attribute): Don't make mapping-table
743         if ATTRIBUTE is `ucs' and character-id of CHARACTER = VALUE.
744
745 2000-02-24  MORIOKA Tomohiko  <tomo@m17n.org>
746
747         * mule-charset.c (Vcharset_mojikyo): New variable.
748         (Fdefine_char): Don't use coded-charset which does not have
749         non-builtin character range to allocate character-id.
750         (Qmojikyo): New variable.
751         (syms_of_mule_charset): Add new symbol `mojikyo'.
752         (complex_vars_of_mule_charset): Add new coded-charset `mojikyo'.
753
754         * char-ucs.h (LEADING_BYTE_DAIKANWA_EKANJI): New macro.
755         (LEADING_BYTE_MOJIKYO): New macro.
756         (MIN_CHAR_MOJIKYO): New macro.
757         (MIN_CHAR_DAIKANWA): Use `MIN_CHAR_MOJIKYO'.
758         (MAX_CHAR_MOJIKYO): New macro.
759
760 2000-02-12  MORIOKA Tomohiko  <tomo@m17n.org>
761
762         * mule-charset.c (remove_char_attribute): Fixed.
763
764 2000-02-08  MORIOKA Tomohiko  <tomo@m17n.org>
765
766         * mule-charset.c (remove_char_attribute): New function.
767         (Fremove_char_attribute): New function.
768         (encode_builtin_char_1): Comment out builtin-support for
769         greek-iso8859-7 and cyrillic-iso8859-5.
770         (Fdecode_char): Check `code' is an integer.
771         (syms_of_mule_charset): Add `remove-char-attribute'.
772         (MIN_CHAR_GREEK): Deleted.
773         (MAX_CHAR_GREEK): Likewise.
774         (MIN_CHAR_CYRILLIC): Likewise.
775         (MAX_CHAR_CYRILLIC): Likewise.
776         (complex_vars_of_mule_charset): Don't use MIN_CHAR_GREEK and
777         MAX_CHAR_GREEK for `greek-iso8859-7'.
778
779         * char-ucs.h (MIN_CHAR_GREEK): Comment out.
780         (MAX_CHAR_GREEK): Likewise.
781         (MIN_CHAR_CYRILLIC): Likewise.
782         (MAX_CHAR_CYRILLIC): Likewise.
783
784 2000-02-02  MORIOKA Tomohiko  <tomo@m17n.org>
785
786         * mule-charset.c (Fdefine_char): Fix problem when new code-point
787         format is used without `ucs' property.
788         (Fdecode_char): Fix problem with GR representation.
789         (complex_vars_of_mule_charset): Don't use `MIN_CHAR_CYRILLIC' and
790         `MAX_CHAR_CYRILLIC' as range of builtin `cyrillic-iso8859-5'.
791
792 2000-01-28  MORIOKA Tomohiko  <tomo@etl.go.jp>
793
794         * mule-charset.c (make_builtin_char): New function.
795         (encode_builtin_char_1): Check ISO-2022-charset is defined or not.
796         (Fset_charset_mapping_table): Modify for new representation of
797         code-point.
798         (Fdecode_char): New function.
799         (syms_of_mule_charset): Add new builtin function `decode-char' in
800         UTF-2000.
801
802         * char-ucs.h (make_builtin_char): New prototype.
803         (DECODE_CHAR): New inline function.
804         (MAKE_CHAR): Use `DECODE_CHAR'.
805
806 2000-01-28  MORIOKA Tomohiko  <tomo@m17n.org>
807
808         * text-coding.c (parse_charset_conversion_specs): Use
809         `XCHARSET_CHARS' and `XCHARSET_DIMENSION' instead of
810         `XCHARSET_TYPE'.
811         (iso2022_designate): Likewise.
812
813         * chartab.c (decode_char_table_range): Use `XCHARSET_CHARS' and
814         `XCHARSET_DIMENSION' instead of `XCHARSET_TYPE'.
815
816         * mule-charset.c (Vcharset_ucs): New variable.
817         (print_charset): Change design; use `CHARSET_CHARS' and
818         `CHARSET_DIMENSION' instead of `CHARSET_TYPE'.
819         (make_charset): Change signature to specify `chars' and
820         `dimension' instead of `type'.
821         (range_charset_code_point): Modify for 256^n-set.
822         (encode_builtin_char_1): Encode as `ucs' in default.
823         (Fmake_charset): Modify for `make_charset'.
824         (Fmake_reverse_direction_charset): Likewise.
825         (Fsplit_char): Use `ENCODE_CHAR' instead of `BREAKUP_CHAR' in
826         UTF-2000.
827         (complex_vars_of_mule_charset): Add coded-charset `ucs'; modify
828         for `make_charset'.
829
830         * char-ucs.h (Vcharset_ucs): New variable.
831         (LEADING_BYTE_UCS): New macro.
832         (struct Lisp_Charset): Delete `type'; change type of `dimension'
833         and `chars' to `unsigned short' from `unsigned int'.
834         (CHARSET_TYPE): Deleted.
835         (XCHARSET_TYPE): Deleted.
836
837 2000-01-27  MORIOKA Tomohiko  <tomo@m17n.org>
838
839         * mule-charset.c (charset_code_point): Moved to char-ucs.h.
840
841         * char-ucs.h (charset_code_point): Moved from mule-charset.c.
842         (ENCODE_CHAR): New macro.
843
844 2000-01-26  MORIOKA Tomohiko  <tomo@etl.go.jp>
845
846         * mule-charset.c (vars_of_mule_charset): Update `utf-2000-version'
847         to 0.14 (Kawachi-Katakami).
848
849 2000-01-26  MORIOKA Tomohiko  <tomo@etl.go.jp>
850
851         * text-coding.c (char_encode_shift_jis): Modify for
852         `charset_code_point'.
853         (char_encode_iso2022): Likewise.
854
855         * mule-charset.c (Fput_char_attribute): Use <Lisp_Object>
856         (integer) instead of list of <Lisp_Object>s (integers) as the
857         format of code-point of a coded-charset.
858         (range_charset_code_point): Return <int> instead of <Lisp_Object>.
859         (encode_builtin_char_1): New function; delete
860         `split_builtin_char'.
861         (charset_code_point): Return <int> instead of <Lisp_Object>.
862         (Fsplit_char): Don't use `SPLIT_CHAR'.
863
864         * char-ucs.h (encode_builtin_char_1): New prototype; delete
865         prototype for `split_builtin_char'.
866         (range_charset_code_point): Return <int> instead of <Lisp_Object>.
867         (charset_code_point): Likewise.
868         (encode_char_1): New inline function; delete `SPLIT_CHAR'.
869         (breakup_char_1): Use `encode_char_1' instead of `SPLIT_CHAR'.
870
871 2000-01-20  MORIOKA Tomohiko  <tomo@m17n.org>
872
873         * mule-charset.c (complex_vars_of_mule_charset): Don't define
874         `japanese-jisx0208-1990' in non-UTF-2000 Mule.
875
876 2000-01-11  MORIOKA Tomohiko  <tomo@etl.go.jp>
877
878         * mule-charset.c (split_builtin_char): Don't support OBS_94x94.
879
880         * char-ucs.h (MIN_CHAR_OBS_94x94): Deleted.
881         (MAX_CHAR_OBS_94x94): Deleted.
882
883 2000-01-11  MORIOKA Tomohiko  <tomo@etl.go.jp>
884
885         * mule-charset.c (split_builtin_char): Use `MAX_CHAR_BMP'.
886
887         * char-ucs.h (MAX_CHAR_BMP): New macro.
888
889 2000-01-10  MORIOKA Tomohiko  <tomo@etl.go.jp>
890
891         * text-coding.c: Sync with r21-2-24.
892
893 2000-01-08  MORIOKA Tomohiko  <tomo@etl.go.jp>
894
895         * file-coding.c: Modify for UTF-2000.
896
897 2000-01-18  MORIOKA Tomohiko  <tomo@etl.go.jp>
898
899         * mule-charset.c (vars_of_mule_charset): Update `utf-2000-version'
900         to 0.13 (Takaida).
901
902 2000-01-15  MORIOKA Tomohiko  <tomo@etl.go.jp>
903
904         * mule-charset.c (split_builtin_char): Delete builtin support for
905         `katakana-jisx0201'.
906         (complex_vars_of_mule_charset): Don't map `katakana-jisx0201' to
907         BMP area in builtin representation.
908
909         * char-ucs.h (MAKE_CHAR): Delete builtin support for
910         `Vcharset_katakana_jisx0201'.
911
912 1999-12-24  MORIOKA Tomohiko  <tomo@etl.go.jp>
913
914         * mule-charset.c (Vcharset_mojikyo_pj_[1 .. 21]): New variable.
915         (Qisolated): New variable.
916         (Qinitial): New variable.
917         (Qmedial): New variable.
918         (Qfinal): New variable.
919         (Qvertical): New variable.
920         (Qsmall): New variable.
921         (to_char_code): Use `Qisolated', `Qinitial', `Qmedial', `Qfinal',
922         `Qvertical' and `Qsmall'.
923         (Qmojikyo_pj_[1 .. 21]): New variable.
924         (syms_of_mule_charset): Add new symbols `isolated', `initial',
925         `medial', `final', `vertical', `small' and `mojikyo-pj-[1 .. 21]'.
926         (complex_vars_of_mule_charset): Add new charset `mojikyo-pj-[1
927         .. 21]'.
928
929 1999-11-23  MORIOKA Tomohiko  <tomo@etl.go.jp>
930
931         * char-ucs.h (MIN_LEADING_BYTE): Changed to -0x60.
932         (LEADING_BYTE_MOJIKYO_PJ_[1 .. 21]): New macros.
933         (MAX_LEADING_BYTE_PRIVATE): Changed to `(CHARSET_ID_OFFSET - 32)'.
934
935 1999-11-18  MORIOKA Tomohiko  <tomo@etl.go.jp>
936
937         * mule-charset.c (Vcharset_japanese_jisx0208_1990): New variable.
938         (Fdefine_char): Use Group 00 Plane 10 for non-coded variants of
939         BMP.
940         (Qjapanese_jisx0208_1990): New variable.
941         (syms_of_mule_charset): Add new symbol `Qjapanese_jisx0208_1990'.
942         (complex_vars_of_mule_charset): Add new coded-charset
943         `japanese-jisx0208-1990'.
944
945         * char-ucs.h (LEADING_BYTE_JAPANESE_JISX0208_1990): New macro.
946         (MIN_CHAR_JIS_X0208_1990): New macro.
947         (MAX_CHAR_JIS_X0208_1990): New macro.
948
949 1999-11-16  MORIOKA Tomohiko  <tomo@urania.m17n.org>
950
951         * text-coding.c (char_encode_iso2022): Output `~' if ISO 2022
952         coded-charset is not found.
953
954 1999-11-16  MORIOKA Tomohiko  <tomo@urania.m17n.org>
955
956         * mule-charset.c (Fget_char_attribute): Forgot to `CHECK_CHAR'.
957         (Fdefine_char): Use `Fmake_char'.
958
959 1999-11-15  MORIOKA Tomohiko  <tomo@urania.m17n.org>
960
961         * mule-charset.c (Vcharset_ideograph_daikanwa): New variable.
962         (Vcharset_hiragana_jisx0208): Deleted.
963         (Vcharset_katakana_jisx0208): Deleted.
964         (Qideograph_daikanwa): New variable.
965         (Qhiragana_jisx0208): Deleted.
966         (Qkatakana_jisx0208): Deleted.
967         (split_builtin_char): Split `ideograph-daikanwa'.
968         (Fsplit_char): New implementation for UTF-2000.
969         (syms_of_mule_charset): Add new symbol `ideograph-daikanwa';
970         delete symbol `hiragana-jisx0208' and `katakana-jisx0208'.
971         (complex_vars_of_mule_charset): Add new coded-charset
972         `ideograph-daikanwa'; delete coded-charset `hiragana-jisx0208' and
973         `katakana-jisx0208'.
974
975         * char-ucs.h (LEADING_BYTE_DAIKANWA): New macro.
976         (LEADING_BYTE_HIRAGANA_JISX0208): Deleted.
977         (LEADING_BYTE_KATAKANA_JISX0208): Deleted.
978         (MIN_CHAR_DAIKANWA): New macro.
979         (MAX_CHAR_DAIKANWA): New macro.
980
981 1999-11-15  MORIOKA Tomohiko  <tomo@urania.m17n.org>
982
983         * data.c (Fstring_to_number): Don't recognize floating point if
984         base is not 10.
985
986 1999-11-15  MORIOKA Tomohiko  <tomo@urania.m17n.org>
987
988         * mule-charset.c (Fput_char_attribute): Forgot to `CHECK_CHAR'.
989
990 1999-11-14  MORIOKA Tomohiko  <tomo@urania.m17n.org>
991
992         * mule-charset.c (Qsquare): New variable.
993         (to_char_code): Add `Qsquare'.
994         (syms_of_mule_charset): Add new symbol `square'.
995
996 1999-11-14  MORIOKA Tomohiko  <tomo@urania.m17n.org>
997
998         * mule-charset.c (Qcircle): New variable.
999         (to_char_code): Add `Qcircle'.
1000         (syms_of_mule_charset): Add new symbol `circle'.
1001
1002 1999-11-14  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1003
1004         * mule-charset.c (Qfont): New variable.
1005         (to_char_code): Add `Qfont'.
1006         (syms_of_mule_charset): Add new symbol `font'.
1007
1008 1999-11-14  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1009
1010         * mule-charset.c (Qsub): New variable.
1011         (to_char_code): Add `Qsub'.
1012         (syms_of_mule_charset): Add new symbol `sub'.
1013
1014 1999-11-14  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1015
1016         * mule-charset.c (Fput_char_attribute): Convert each element of
1017         VALUE to GL position if ATTRIBUTE is a GR-set,
1018
1019 1999-11-14  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1020
1021         * mule-charset.c (Fput_char_attribute): Allow GR code-point if a
1022         coded-charset is a GR-set.
1023
1024 1999-11-13  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1025
1026         * mule-charset.c (Fput_char_attribute): Check each element of
1027         VALUE is a byte if ATTRIBUTE is a coded-charset or its name.
1028
1029 1999-11-13  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1030
1031         * mule-charset.c (Vcharset_ethiopic_ucs): New variable in
1032         UTF-2000.
1033         (Qethiopic_ucs): New variable in UTF-2000.
1034         (syms_of_mule_charset): Add new symbol `ethiopic-ucs' in UTF-2000.
1035         (complex_vars_of_mule_charset): Add new coded-charset
1036         `ethiopic-ucs' in UTF-2000.
1037
1038         * char-ucs.h (LEADING_BYTE_ETHIOPIC_UCS): New macro.
1039         (LEADING_BYTE_HIRAGANA_JISX0208): Changed to `(CHARSET_ID_OFFSET -
1040         9)'.
1041         (LEADING_BYTE_KATAKANA_JISX0208): Changed to `(CHARSET_ID_OFFSET -
1042         10)'.
1043         (LEADING_BYTE_PRIVATE): Changed to `(CHARSET_ID_OFFSET - 11)'.
1044
1045 1999-11-13  MORIOKA Tomohiko  <tomo@etl.go.jp>
1046
1047         * mule-charset.c (Fset_charset_mapping_table): Fix problem with
1048         `ascii'.
1049
1050 1999-11-12  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1051
1052         * mule-charset.c (Vcharacter_variant_table): New variable.
1053         (Q_ucs): New variable.
1054         (Fchar_variants): New function.
1055         (Fput_char_attribute): Register `->ucs' value to
1056         `Vcharacter_variant_table'.
1057         (syms_of_mule_charset): Add new function `char-variants' and new
1058         symbol `->ucs'.
1059         (vars_of_mule_charset): Setup `Vcharacter_variant_table'.
1060
1061 1999-11-12  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1062
1063         * mule-charset.c (get_char_code_table): Allow negative character
1064         code.
1065         (put_char_code_table): Likewise.
1066         (Vcharacter_composition_table): New variable.
1067         (Q_decomposition): New variable.
1068         (Qwide): New variable.
1069         (Qnarrow): New variable.
1070         (Qcompat): New variable.
1071         (QnoBreak): New variable.
1072         (Qsuper): New variable.
1073         (Qfraction): New variable.
1074         (to_char_code): New function.
1075         (Fget_composite_char): New function.
1076         (Fput_char_attribute): Register `->decomposition' value to
1077         `Vcharacter_composition_table'.
1078         (syms_of_mule_charset): Add new function `get-composite-char', new
1079         symbol `->decomposition', `wide', `narrow', `compat', `noBreak',
1080         `super' and `fraction'.
1081         (vars_of_mule_charset): Setup `Vcharacter_composition_table'.
1082
1083 1999-11-12  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1084
1085         * mule-charset.c (Fchar_attribute_alist): Check the argument is a
1086         character; copy the return value.
1087
1088 1999-11-12  MORIOKA Tomohiko  <tomo@etl.go.jp>
1089
1090         * char-ucs.h (SPLIT_CHAR): Use `split_builtin_char'.
1091
1092         * mule-charset.c (range_charset_code_point): Must use make_int.
1093         (split_builtin_char): New function.
1094
1095 1999-11-12  MORIOKA Tomohiko  <tomo@etl.go.jp>
1096
1097         * mule-charset.c (char_byte_table): Change name from
1098         "char-code-table" to "char-byte-table".
1099         (mark_char_code_table): New function.
1100         (char_code_table_equal): New function.
1101         (char_code_table_hash): New function.
1102         (char_code_table_description): New constant.
1103         (char_code_table): New type.
1104         (make_char_code_table): New function.
1105         (copy_char_code_table): New function.
1106         (get_char_code_table): Modify for `char_code_table' type.
1107         (put_char_code_table): Likewise.
1108         (vars_of_mule_charset): Update `utf-2000-version' to 0.12
1109         (Kashiwara).
1110
1111         * char-ucs.h (char_code_table): New type.
1112         (XCHAR_CODE_TABLE): New macro.
1113         (XSETCHAR_CODE_TABLE): New macro.
1114         (CHAR_CODE_TABLE_P): New macro.
1115         (GC_CHAR_CODE_TABLE_P): New macro.
1116         (struct Lisp_Char_Code_Table): New structure.
1117
1118 1999-11-09  MORIOKA Tomohiko  <tomo@etl.go.jp>
1119
1120         * mule-charset.c (Fmake_charset): Setup byte_offset for
1121         {94|96}^n-set.
1122
1123 1999-11-09  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1124
1125         * mule-charset.c (Fdefine_char): Fix problem with non-UCS
1126         character.
1127
1128 1999-11-09  MORIOKA Tomohiko  <tomo@etl.go.jp>
1129
1130         * char-ucs.h (SPLIT_CHAR): Don't make new cell if a charset slot
1131         is found.
1132
1133 1999-11-09  MORIOKA Tomohiko  <tomo@etl.go.jp>
1134
1135         * mule-charset.c (Fget_char_attribute): If ATTRIBUTE is a name of
1136         charset, it is regarded as a charset.
1137         (put_char_attribute): New function in UTF-2000.
1138         (Fput_char_attribute): If ATTRIBUTE is a charset or a name of
1139         charset, mapping-table of the charset is modified.
1140         (Fdefine_char): New function in UTF-2000.
1141         (Fset_charset_mapping_table): Use `put_char_attribute' instead of
1142         `Fput_char_attribute'.
1143         (syms_of_mule_charset): Add new function `define-char' and new
1144         symbol `ucs' in UTF-2000.
1145         (vars_of_mule_charset): Update `utf-2000-version' to 0.11 (Shiki).
1146
1147 1999-10-29  MORIOKA Tomohiko  <tomo@etl.go.jp>
1148
1149         * mule-charset.c (Fcharset_name): Define `byte_offset' in
1150         non-UTF-2000 configuration.
1151
1152 1999-10-29  MORIOKA Tomohiko  <tomo@etl.go.jp>
1153
1154         * text-coding.c (char_encode_shift_jis): Use `charset_code_point'
1155         not to use `XCHARSET_ENCODING_TABLE (Vcharset_latin_jisx0201)'.
1156
1157         * mule-charset.c (mark_charset): `cs->encoding_table' has been
1158         deleted.
1159         (make_charset): Don't use `CHARSET_ENCODING_TABLE(cs)'.
1160         (Fset_charset_mapping_table): Likewise.
1161
1162         * char-ucs.h (struct Lisp_Charset): Delete `encoding_table'.
1163         (CHARSET_ENCODING_TABLE): Delete.
1164         (XCHARSET_ENCODING_TABLE): Delete.
1165         (charset_code_point): New interface.
1166
1167 1999-10-29  MORIOKA Tomohiko  <tomo@etl.go.jp>
1168
1169         * text-coding.c (char_encode_iso2022): Use `charset_code_point'
1170         instead of `charset_get_byte1' and `charset_get_byte2'.
1171
1172         * mule-charset.c, char-ucs.h (charset_get_byte1): Deleted.
1173         (charset_get_byte2): Deleted.
1174
1175 1999-10-28  MORIOKA Tomohiko  <tomo@etl.go.jp>
1176
1177         * char-ucs.h (SPLIT_CHAR): New inline function.
1178         (breakup_char_1): Use `SPLIT_CHAR'.
1179
1180         * mule-charset.c (range_charset_code_point): New function.
1181         (charset_code_point): New function.
1182
1183         * char-ucs.h (range_charset_code_point): New interface.
1184         (breakup_char_1): Use `range_charset_code_point'.
1185
1186 1999-10-27  MORIOKA Tomohiko  <tomo@etl.go.jp>
1187
1188         * mule-charset.c (Fmake_charset): Delete unused local variable
1189         `code_offset'.
1190
1191         * char-ucs.h (Vcharacter_attribute_table): New extern variable.
1192         (breakup_char_1): Find a charset and code-point in
1193         `Vcharacter_attribute_table'.
1194
1195 1999-10-27  MORIOKA Tomohiko  <tomo@etl.go.jp>
1196
1197         * mule-charset.c (vars_of_mule_charset): Update `utf-2000-version'
1198         to 0.10 (Yao).
1199
1200 1999-10-25  MORIOKA Tomohiko  <tomo@etl.go.jp>
1201
1202         * mule-charset.c (Vcharacter_attribute_table): New variable.
1203         (Fchar_attribute_alist): New function.
1204         (Fget_char_attribute): New function.
1205         (Fput_char_attribute): New function.
1206         (Fset_charset_mapping_table): Setup `Vcharacter_attribute_table'
1207         too.
1208         (syms_of_mule_charset): Add new function `char-attribute-alist',
1209         `get-char-attribute' and `put-char-attribute'.
1210         (vars_of_mule_charset): Setup `Vcharacter_attribute_table'.
1211
1212 1999-10-19  MORIOKA Tomohiko  <tomo@etl.go.jp>
1213
1214         * mule-charset.c (Fmake_charset): Just use
1215         `get_unallocated_leading_byte'.
1216
1217         * char-ucs.h (LEADING_BYTE_*): Use ISO-IR numbers for official
1218         sets; don't use final-byte based number for private sets.
1219
1220 1999-10-12  MORIOKA Tomohiko  <tomo@etl.go.jp>
1221
1222         * doprnt.c (emacs_doprnt_1): Fix problem with %0XXd for a negative
1223         integer.
1224
1225 1999-10-12  MORIOKA Tomohiko  <tomo@etl.go.jp>
1226
1227         * mule-charset.c (vars_of_mule_charset): Update `utf-2000-version'
1228         to 0.9.
1229
1230 1999-10-11  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1231
1232         * regex.c (compile_extended_range): Use `CHAR_CHARSET_ID' instead
1233         of `CHAR_LEADING_BYTE' in UTF-2000.
1234
1235         * insdel.c (find_charsets_in_bufbyte_string): Use
1236         `CHAR_CHARSET_ID' instead of `CHAR_LEADING_BYTE' in UTF-2000.
1237         (find_charsets_in_emchar_string): Likewise.
1238
1239         * chartab.h (CHAR_TABLE_NON_ASCII_VALUE_UNSAFE): Use
1240         `CHAR_CHARSET_ID' instead of `CHAR_LEADING_BYTE' in UTF-2000.
1241
1242         * char-ucs.h (CHAR_LEADING_BYTE): Deleted.
1243         (CHAR_CHARSET_ID): New macro.
1244
1245 1999-10-11  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1246
1247         * chartab.c (get_char_table): Don't use type `Charset_ID' for
1248         charset-id - MIN_LEADING_BYTE.
1249         (put_char_table): Likewise.
1250
1251 1999-10-11  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1252
1253         * char-ucs.h (MIN_LEADING_BYTE): Changed to `-0x40'.
1254         (NUM_LEADING_BYTES): Changed to (80 * 3 - MIN_LEADING_BYTE).
1255         (CHARSET_LEADING_BYTE): Don't cast by `Bufbyte'.
1256         (CHARSET_ID_OFFSET): New macro.
1257         (LEADING_BYTE_CONTROL_1): Changed to (CHARSET_ID_OFFSET - 1).
1258         (LEADING_BYTE_UCS_BMP): Changed to (CHARSET_ID_OFFSET - 2).
1259         (LEADING_BYTE_LATIN_VISCII): Changed to (CHARSET_ID_OFFSET - 3).
1260         (LEADING_BYTE_HIRAGANA_JISX0208): Changed to (CHARSET_ID_OFFSET -
1261         4).
1262         (LEADING_BYTE_KATAKANA_JISX0208): Changed to (CHARSET_ID_OFFSET -
1263         5).
1264         (MIN_LEADING_BYTE_PRIVATE): Changed to `MIN_LEADING_BYTE'.
1265         (MAX_LEADING_BYTE_PRIVATE): Changed to (CHARSET_ID_OFFSET - 6).
1266         (CHARSET_ID_OFFSET_94): Changed to (CHARSET_ID_OFFSET - '0').
1267         (CHARSET_ID_OFFSET_96): Changed to (CHARSET_ID_OFFSET_94 + 80).
1268         (CHARSET_ID_OFFSET_94x94): Changed to (CHARSET_ID_OFFSET_96 + 80).
1269
1270 1999-10-11  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1271
1272         * mule-charset.c (next_allocated_leading_byte): New variable in
1273         UTF-2000.
1274         (next_allocated_1_byte_leading_byte): Don't define in UTF-2000.
1275         (next_allocated_2_byte_leading_byte): Don't define in UTF-2000.
1276         (get_unallocated_leading_byte): Simply use
1277         `next_allocated_leading_byte' [ignore dimension] in UTF-2000.
1278         (vars_of_mule_charset): Setup `next_allocated_leading_byte' in
1279         UTF-2000.
1280
1281         * char-ucs.h (MIN_LEADING_BYTE_PRIVATE): New macro.
1282         (MAX_LEADING_BYTE_PRIVATE): New macro.
1283         (MIN_LEADING_BYTE_OFFICIAL_2): Deleted.
1284         (MAX_LEADING_BYTE_OFFICIAL_2): Deleted.
1285
1286 1999-10-11  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1287
1288         * mule-charset.c (Fmake_charset): Allocate final-byte based
1289         charset-id for 94-set, 96-set and 94x94-set.
1290
1291 1999-10-11  MORIOKA Tomohiko  <tomo@etl.go.jp>
1292
1293         * mule-charset.c (char_byte_table_equal): Fill braces to avoid
1294         ambiguous `else'.
1295         (Fmake_charset): Likewise.
1296         (complex_vars_of_mule_charset): Modify the font registry of
1297         `ucs-bmp' not to match `Ethiopic-Unicode'.
1298
1299 1999-10-10  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1300
1301         * mule-charset.c (complex_vars_of_mule_charset): Add font
1302         registory of `ucs-bmp'.
1303
1304 1999-10-10  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1305
1306         * text-coding.c (char_encode_iso2022): Ignore non-ISO-2022
1307         coded-charsets in `default-coded-charset-priority-list' when
1308         breaking up a character.
1309
1310         * mule-charset.c (Vcharset_latin_viscii): New variable.
1311         (Qlatin_viscii): New variable.
1312         (make_charset): Don't use `decoding_table'.
1313         (Fmake_charset): Regard graphic = 2 as 256^n-set; setup
1314         byte_offset.
1315         (Fset_charset_mapping_table): New implementation.
1316         (syms_of_mule_charset): Add new symbol `latin-viscii'.
1317         (complex_vars_of_mule_charset): Set `graphic' attribute of charset
1318         `ucs-bmp' and `latin_viscii' to 2; change font registry of charset
1319         `latin-viscii-lower' to "MULEVISCII-LOWER"; change font registry
1320         of charset `latin-viscii-upper' to "MULEVISCII-UPPER"; add new
1321         charset `latin_viscii'.
1322
1323         * char-ucs.h (LEADING_BYTE_LATIN_VISCII): New macro.
1324         (CHARSET_TYPE_94X94): Change to 1 from 2.
1325         (CHARSET_TYPE_96): Change to 2 from 1.
1326         (CHARSET_TYPE_128): New macro.
1327         (CHARSET_TYPE_128X128): Change to 5 from 4.
1328         (CHARSET_TYPE_256): New macro.
1329         (CHARSET_TYPE_256X256): Change to 7 from 5.
1330         (MAKE_CHAR): Use `XCHARSET_BYTE_OFFSET(charset)'.
1331
1332 1999-10-10  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1333
1334         * text-coding.c (char_encode_shift_jis): Refer
1335         `XCHARSET_ENCODING_TABLE(Vcharset_latin_jisx0201)' instead of
1336         `XCHARSET_TO_BYTE1_TABLE(Vcharset_latin_jisx0201)'.
1337
1338         * mule-charset.c (mark_char_byte_table): New function in UTF-2000.
1339         (char_byte_table_equal): New function in UTF-2000.
1340         (char_byte_table_hash): New function in UTF-2000.
1341         (char_byte_table_description): New constant in UTF-2000.
1342         (char_byte_table): New type in UTF-2000.
1343         (make_char_byte_table): New function in UTF-2000.
1344         (copy_char_byte_table): New function in UTF-2000.
1345         (make_char_code_table): New macro in UTF-2000.
1346         (get_char_code_table): New function in UTF-2000.
1347         (put_char_code_table): New function in UTF-2000.
1348         (mark_charset): Mark `cs->encoding_table' in UTF-2000.
1349         (charset_description): Add setting in UTF-2000.
1350         (make_charset): Setup `CHARSET_ENCODING_TABLE(cs)' instead of
1351         `CHARSET_TO_BYTE1_TABLE(cs)'.
1352         (charset_get_byte1): Refer `XCHARSET_ENCODING_TABLE(charset)'
1353         instead of `XCHARSET_TO_BYTE1_TABLE(charset)'.
1354         (charset_get_byte2): Refer `XCHARSET_ENCODING_TABLE(charset)'
1355         instead of `XCHARSET_TO_BYTE2_TABLE(charset)'.
1356         (Fset_charset_mapping_table): Setup `CHARSET_ENCODING_TABLE(cs)'
1357         instead of `CHARSET_TO_BYTE1_TABLE(cs)' and
1358         `CHARSET_TO_BYTE2_TABLE(cs)'.
1359
1360         * char-ucs.h (char_byte_table): New type.
1361         (XCHAR_BYTE_TABLE): New macro.
1362         (XSETCHAR_BYTE_TABLE): New macro.
1363         (CHAR_BYTE_TABLE_P): New macro.
1364         (GC_CHAR_BYTE_TABLE_P): New macro.
1365         (struct Lisp_Char_Byte_Table): New structure.
1366         (get_char_code_table): New interface.
1367         (Emchar_to_byte_table): Deleted.
1368         (get_byte_from_character_table): Deleted.
1369         (struct Lisp_Charset): Add `encoding_table'; delete
1370         `to_byte1_table' and `to_byte2_table'.
1371         (CHARSET_ENCODING_TABLE): New macro.
1372         (CHARSET_TO_BYTE1_TABLE): Deleted.
1373         (CHARSET_TO_BYTE2_TABLE): Deleted.
1374         (XCHARSET_ENCODING_TABLE): New macro.
1375         (XCHARSET_TO_BYTE1_TABLE): Deleted.
1376         (XCHARSET_TO_BYTE2_TABLE): Deleted.
1377
1378 1999-10-07  MORIOKA Tomohiko  <tomo@etl.go.jp>
1379
1380         * mule-charset.c (syms_of_mule_charset): Delete charset alias
1381         `vietnamese-viscii-*'.
1382
1383 1999-10-07  MORIOKA Tomohiko  <tomo@etl.go.jp>
1384
1385         * mule-charset.c (Qvietnamese_viscii_lower): New variable.
1386         (Qvietnamese_viscii_upper): New variable.
1387         (Fdefine_charset_alias): New function.
1388         (syms_of_mule_charset): Add new function `define-charset-alias'.
1389         (syms_of_mule_charset): Rename charset `vietnamese-viscii-*' to
1390         `latin-viscii-*'; define `vietnamese-viscii-*' as aliases for
1391         `latin-viscii-*'.
1392
1393 1999-10-04  MORIOKA Tomohiko  <tomo@etl.go.jp>
1394
1395         * char-ucs.h (MIN_CHAR_OBS_94x94): New macro.
1396         (MAX_CHAR_OBS_94x94): New macro.
1397         (breakup_char_1): Support obsolete XEmacs-UCS private code space
1398         for 94x94 sets.
1399
1400         * mule-charset.c (put_byte_from_character_table): Change unit size
1401         from 128 to 256.
1402         (mark_charset): Don't mark `cs->decoding_table' if `UTF2000' is
1403         not defined.
1404         (Fmake_reverse_direction_charset): Modify dummy argument of
1405         `make_charset' for non-UTF-2000 environment.
1406
1407 1999-10-03  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1408
1409         * char-ucs.h (MAKE_CHAR): Allow nested decoding-table.
1410
1411         * mule-charset.c (destroy_byte_from_character_table): New macro.
1412         (latin_jisx0201_to_ucs): Deleted.
1413         (latin_iso8859_2_to_ucs): Deleted.
1414         (latin_iso8859_3_to_ucs): Deleted.
1415         (latin_iso8859_4_to_ucs): Deleted.
1416         (latin_iso8859_9_to_ucs): Deleted.
1417         (latin_viscii_lower_to_ucs): Deleted.
1418         (latin_viscii_upper_to_ucs): Deleted.
1419         (mark_charset): Mark `cs->decoding_table'.
1420         (Fcharset_mapping_table): Fix DOC-string.
1421         (Fset_charset_mapping_table): New function.
1422         (syms_of_mule_charset): Add nwe function
1423         `set-charset-mapping-table'.
1424         (complex_vars_of_mule_charset): Don't setup and use
1425         `latin_*_to_ucs'.
1426
1427 1999-10-01  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1428
1429         * char-ucs.h (MAKE_CHAR): Check the result for range-represented
1430         charset.
1431
1432 1999-09-30  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1433
1434         * mule-charset.c (Vcharset_hiragana_jisx0208): New variable.
1435         (Vcharset_katakana_jisx0208): New variable.
1436         (Qhiragana_jisx0208): New variable.
1437         (Qkatakana_jisx0208): New variable.
1438         (make_charset): Add new argument `byte_offset'.
1439         (charset_get_byte1): Modify for new coded-charset definition; use
1440         `XCHARSET_UCS_MIN', `XCHARSET_UCS_MAX', `XCHARSET_CODE_OFFSET' and
1441         `XCHARSET_BYTE_OFFSET'.
1442         (Fmake_charset): Modify for `make_charset'.
1443         (Fmake_reverse_direction_charset): Likewise.
1444         (syms_of_mule_charset): Add new symbols `hiragana-jisx0208' and
1445         `katakana-jisx0208'.
1446         (complex_vars_of_mule_charset): Modify for `make_charset'; quote
1447         `.'  in font registry of charset `katakana-jisx0201',
1448         `latin-jisx0201', `vietnamese-viscii-lower' and
1449         `vietnamese-viscii-upper'; modify DOC-string of charset
1450         `japanese-jisx0208-1978' and `japanese-jisx0208'; modify font
1451         registry of charset `japanese-jisx0208' not to use font for JIS
1452         X0208:1990; add new charset `hiragana-jisx0208' and
1453         `katakana-jisx0208'.
1454
1455         * char-ucs.h (LEADING_BYTE_HIRAGANA_JISX0208): New macro.
1456         (LEADING_BYTE_KATAKANA_JISX0208): New macro.
1457         (struct Lisp_Charset): Add `byte_offset'.
1458         (CHARSET_BYTE_OFFSET): New macro.
1459         (XCHARSET_UCS_MIN): New macro.
1460         (XCHARSET_UCS_MAX): New macro.
1461         (XCHARSET_CODE_OFFSET): New macro.
1462         (XCHARSET_BYTE_OFFSET): New macro.
1463         (MIN_CHAR_HIRAGANA): New macro.
1464         (MAX_CHAR_HIRAGANA): New macro.
1465         (MIN_CHAR_KATAKANA): New macro.
1466         (MAX_CHAR_KATAKANA): New macro.
1467         (MAKE_CHAR): Modify for new coded-charset definition; use
1468         `XCHARSET_UCS_MIN', `XCHARSET_UCS_MAX', `XCHARSET_CODE_OFFSET' and
1469         `XCHARSET_BYTE_OFFSET'.
1470
1471 1999-09-27  MORIOKA Tomohiko  <tomo@etl.go.jp>
1472
1473         * mule-charset.c (CHAR96): Deleted.
1474         (latin_jisx0201_to_ucs): Type is changed from array of <Emchar> to
1475         <Lisp_Object>.
1476         (latin_iso8859_2_to_ucs): Likewise.
1477         (latin_iso8859_3_to_ucs): Likewise.
1478         (latin_iso8859_4_to_ucs): Likewise.
1479         (latin_iso8859_9_to_ucs): Likewise.
1480         (latin_viscii_lower_to_ucs): Likewise.
1481         (latin_viscii_upper_to_ucs): Likewise.
1482         (latin_tcvn5712_to_ucs): Commented out.
1483         (make_charset): Change type of argument `decoding_table' from
1484         <Emchar*> to <Lisp_Object> [vector of characters].
1485         (Fmake_charset): Modify for `make_charset'.
1486         (Fmake_reverse_direction_charset): Likewise.
1487         (Fcharset_mapping_table): New function in UTF-2000.
1488         (syms_of_mule_charset): Setup `Fcharset_mapping_table' in
1489         UTF-2000.
1490         (complex_vars_of_mule_charset): Modify for type change of
1491         `*_to_ucs'; modify for `make_charset'.
1492
1493         * char-ucs.h (struct Lisp_Charset): Change type of
1494         `decoding_table' from <Emchar*> to <Lisp_Object>.
1495         (MAKE_CHAR): Modify for new specification of `decoding_table'.
1496
1497 1999-09-23  MORIOKA Tomohiko  <tomo@etl.go.jp>
1498
1499         * mule-charset.c (Fmake_reverse_direction_charset): Fix compile
1500         error with non-UTF-2000-Mule.
1501
1502 1999-09-21  MORIOKA Tomohiko  <tomo@etl.go.jp>
1503
1504         * mule-charset.c (Vcharset_chinese_cns11643_3): Deleted [defined
1505         in lisp again].
1506         (Vcharset_chinese_cns11643_4): Likewise.
1507         (Vcharset_chinese_cns11643_5): Likewise.
1508         (Vcharset_chinese_cns11643_6): Likewise.
1509         (Vcharset_chinese_cns11643_7): Likewise.
1510         (Qchinese_cns11643_3): Likewise.
1511         (Qchinese_cns11643_4): Likewise.
1512         (Qchinese_cns11643_5): Likewise.
1513         (Qchinese_cns11643_6): Likewise.
1514         (Qchinese_cns11643_7): Likewise.
1515         (syms_of_mule_charset): Move definitions for `chinese-cns11643-3',
1516         `chinese-cns11643-4', `chinese-cns11643-5', `chinese-cns11643-6'
1517         and `chinese-cns11643-7' to lisp/mule/chinese.el.
1518         (complex_vars_of_mule_charset): Likewise.
1519
1520 1999-09-18  MORIOKA Tomohiko  <tomo@etl.go.jp>
1521
1522         * mule-charset.c (charset_get_byte1): Fix bug about 94- and
1523         96-set.
1524         (Fmake_reverse_direction_charset): Inherit CHARSET_DECODING_TABLE,
1525         CHARSET_UCS_MIN, CHARSET_UCS_MAX and CHARSET_CODE_OFFSET.
1526
1527 1999-09-17  MORIOKA Tomohiko  <tomo@etl.go.jp>
1528
1529         * char-ucs.h (MIN_CHAR_HALFWIDTH_KATAKANA): Changed to 0xFF61 from
1530         0xFF60.
1531         (MAKE_CHAR): Change offset for katakana-jisx0201 to 33 from 0x20.
1532         (breakup_char_1): Likewise.
1533
1534         * text-coding.c (char_encode_iso2022): Keep designated charsets if
1535         one of them includes the specified character.
1536
1537 1999-09-14  MORIOKA Tomohiko  <tomo@etl.go.jp>
1538
1539         * mule-charset.c: Update `utf-2000-version' to 0.8 (Kami).
1540
1541 1999-09-14  MORIOKA Tomohiko  <tomo@etl.go.jp>
1542
1543         * char-ucs.h (MAKE_CHAR): Fix problem in 2-dimension charset.
1544
1545 1999-09-14  MORIOKA Tomohiko  <tomo@etl.go.jp>
1546
1547         * mule-charset.c (latin_iso8859_2_to_ucs NULL): Add pseudo
1548         definition for non-UTF-2000 Mule.
1549         (latin_iso8859_3_to_ucs): Likewise.
1550         (latin_iso8859_4_to_ucs): Likewise.
1551         (latin_iso8859_9_to_ucs): Likewise.
1552         (latin_jisx0201_to_ucs): Likewise.
1553         (MIN_CHAR_THAI): Likewise.
1554         (MAX_CHAR_THAI): Likewise.
1555         (MIN_CHAR_GREEK): Likewise.
1556         (MAX_CHAR_GREEK): Likewise.
1557         (MIN_CHAR_HEBREW): Likewise.
1558         (MAX_CHAR_HEBREW): Likewise.
1559         (MIN_CHAR_HALFWIDTH_KATAKANA): Likewise.
1560         (MAX_CHAR_HALFWIDTH_KATAKANA): Likewise.
1561         (MIN_CHAR_CYRILLIC): Likewise.
1562         (MAX_CHAR_CYRILLIC): Likewise.
1563
1564 1999-09-14  MORIOKA Tomohiko  <tomo@etl.go.jp>
1565
1566         * char-ucs.h (breakup_char_1): Use
1567         `Vdefault_coded_charset_priority_list' for hebrew-iso8859-8,
1568         thai-tis620 and katakana-jisx0201 area.
1569
1570 1999-09-13  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1571
1572         * char-ucs.h (breakup_char_1): Use
1573         `Vdefault_coded_charset_priority_list' for cyrillic-iso8859-5
1574         area.
1575
1576         * text-coding.c (reset_encoding_stream): Fixed.
1577         (char_encode_ucs4): Delete `& 255'.
1578
1579         * char-ucs.h (breakup_char_1): Use
1580         `Vdefault_coded_charset_priority_list' for greek-iso8859-7 area.
1581
1582 1999-09-13  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1583
1584         * file-coding.c (Fmake_coding_system): Don't set up
1585         `codesys->fixed.size'.
1586         (encode_coding_no_conversion): Don't refer
1587         `str->codesys->fixed.size'.
1588
1589 1999-09-13  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1590
1591         * mule-charset.c, char-ucs.h (latin_a_char_to_charset): Deleted.
1592         (latin_a_char_to_byte1): Deleted.
1593         (latin_a_char_to_byte2): Deleted.
1594
1595 1999-09-13  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1596
1597         * mule-charset.c (make_charset): Add new argument `ucs_min',
1598         `ucs_max' and `code_offset'.
1599         (charset_get_byte1): New implementation [delete specific charset
1600         depended implementations].
1601         (Fmake_charset): Modify for `make_charset'.
1602         (Fmake_reverse_direction_charset): Likewise.
1603         (complex_vars_of_mule_charset): Likewise.
1604
1605         * char-ucs.h (struct Lisp_Charset): Add `ucs_min', `ucs_max' and
1606         `code_offset'.
1607         (CHARSET_UCS_MIN): New macro.
1608         (CHARSET_UCS_MAX): New macro.
1609         (CHARSET_CODE_OFFSET): New macro.
1610         (MAKE_CHAR): Delete charset depended definitions [except
1611         katakana-jisx0201].
1612
1613 1999-09-13  MORIOKA Tomohiko  <tomo@etl.go.jp>
1614
1615         * char-ucs.h (breakup_char_1): Use
1616         `Vdefault_coded_charset_priority_list' for C0-Controls,
1617         Basic-Latin, C1-Controls and Latin-1-Supplement area.
1618
1619 1999-09-13  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1620
1621         * char-ucs.h (charset_get_byte1): New function.
1622         (XCHARSET_GET_BYTE1): Deleted.
1623         (charset_get_byte2): New function.
1624         (XCHARSET_GET_BYTE2): Deleted.
1625         (Vdefault_coded_charset_priority_list): New external variable.
1626         (breakup_char_1): Use `charset_get_byte1', `charset_get_byte2' and
1627         `Vdefault_preferred_coded_charset_list'.
1628
1629         * mule-charset.c (charset_get_byte1): New function.
1630         (charset_get_byte2): New function.
1631         (Vdefault_coded_charset_priority_list): New variable.
1632         (vars_of_mule_charset): Add new variable
1633         `default-coded-charset-priority-list'.
1634
1635 1999-09-12  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1636
1637         * char-ucs.h (XCHARSET_GET_BYTE1): New inline function.
1638         (XCHARSET_GET_BYTE2): New inline function.
1639         (breakup_char_1): Use `XCHARSET_GET_BYTE1' and
1640         `XCHARSET_GET_BYTE2'.
1641
1642 1999-09-12  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1643
1644         * mule-charset.c (make_charset): Initialize
1645         `CHARSET_TO_BYTE1_TABLE(cs)' and `CHARSET_TO_BYTE2_TABLE(cs)' by
1646         NULL if table is not defined.
1647
1648 1999-09-11  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1649
1650         * text-coding.c (char_encode_shift_jis): Use
1651         `XCHARSET_TO_BYTE1_TABLE' for `Vcharset_latin_jisx0201' instead of
1652         `ucs_to_latin_jisx0201'.
1653
1654         * mule-charset.c (ucs_to_latin_jisx0201): Deleted.
1655         (ucs_to_latin_iso8859_2): Deleted.
1656         (ucs_to_latin_iso8859_3): Deleted.
1657         (ucs_to_latin_iso8859_4): Deleted.
1658         (ucs_to_latin_iso8859_9): Deleted.
1659         (ucs_to_latin_viscii_lower): Deleted.
1660         (ucs_to_latin_viscii_upper): Deleted.
1661         (ucs_to_latin_tcvn5712): Deleted.
1662         (make_charset): Add new argument `decoding_table'; set up
1663         `CHARSET_DECODING_TABLE(cs)' in UTF-2000; set up
1664         `CHARSET_TO_BYTE1_TABLE(cs)' for 94-set and 96-set if
1665         `decoding_table' is defined in UTF-2000.
1666         (Fmake_charset): Modify for `make_charset'.
1667         (Fmake_reverse_direction_charset): Likewise.
1668         (complex_vars_of_mule_charset): Likewise; delete `GENERATE_94_SET'
1669         and `GENERATE_96_SET'.
1670
1671         * char-ucs.h (latin_jisx0201_to_ucs): Deleted.
1672         (ucs_to_latin_jisx0201): Deleted.
1673         (latin_iso8859_2_to_ucs): Deleted.
1674         (ucs_to_latin_iso8859_2): Deleted.
1675         (latin_iso8859_3_to_ucs): Deleted.
1676         (ucs_to_latin_iso8859_3): Deleted.
1677         (latin_iso8859_4_to_ucs): Deleted.
1678         (ucs_to_latin_iso8859_4): Deleted.
1679         (latin_iso8859_9_to_ucs): Deleted.
1680         (ucs_to_latin_iso8859_9): Deleted.
1681         (latin_viscii_lower_to_ucs): Deleted.
1682         (ucs_to_latin_viscii_lower): Deleted.
1683         (latin_viscii_upper_to_ucs): Deleted.
1684         (ucs_to_latin_viscii_upper): Deleted.
1685         (struct Lisp_Charset): Renamed `encoding_table' to
1686         `to_byte1_table'; add `to_byte2_table'.
1687         (CHARSET_DECODING_TABLE): New macro.
1688         (CHARSET_TO_BYTE1_TABLE): New macro.
1689         (CHARSET_TO_BYTE2_TABLE): New macro.
1690         (XCHARSET_DECODING_TABLE): New macro.
1691         (XCHARSET_TO_BYTE1_TABLE): New macro.
1692         (XCHARSET_TO_BYTE2_TABLE): New macro.
1693         (MAKE_CHAR): Use `XCHARSET_DECODING_TABLE'; don't use `*_to_ucs'
1694         tables.
1695         (breakup_char_1): Use `XCHARSET_TO_BYTE1_TABLE' if it is defined;
1696         don't use `ucs_to_*' tables.
1697
1698 1999-09-11  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1699
1700         * text-coding.c (Fmake_coding_system): Don't set up
1701         `codesys->fixed.size'.
1702         (encode_coding_no_conversion): Use `if' instead of `switch'.
1703
1704         * file-coding.h (struct Lisp_Coding_System): Delete `fixed.size'.
1705
1706 1999-09-11  MORIOKA Tomohiko  <tomo@etl.go.jp>
1707
1708         * mule-charset.c (make_charset): Delete argument `rep_bytes'.
1709         (Fmake_charset): Modify for `make_charset'.
1710         (Fmake_reverse_direction_charset): Likewise.
1711         (complex_vars_of_mule_charset): Likewise.
1712
1713 1999-09-11  MORIOKA Tomohiko  <tomo@etl.go.jp>
1714
1715         * text-coding.c (char_encode_shift_jis): Use table
1716         `ucs_to_latin_jisx0201' and BREAKUP_CHAR.
1717
1718 1999-09-11  MORIOKA Tomohiko  <tomo@etl.go.jp>
1719
1720         * text-coding.c (text_encode_generic): Use `if' instead of
1721         `switch'.
1722         (decode_coding_sjis): Use `MAKE_CHAR' and `DECODE_ADD_UCS_CHAR' to
1723         decode JIS-Latin.
1724
1725 1999-09-10  MORIOKA Tomohiko  <tomo@etl.go.jp>
1726
1727         * text-coding.c (encode_coding_sjis): Deleted.
1728         (char_encode_shift_jis): New function.
1729         (char_finish_shift_jis): New function.
1730         (reset_encoding_stream): Set up `encode_char' and `finish' for
1731         `CODESYS_UCS4' and `CODESYS_SHIFT_JIS'.
1732         (mule_encode): Use generic encoder for `CODESYS_SHIFT_JIS'.
1733         (char_encode_utf8): Treat `eol_type'.
1734
1735 1999-09-10  MORIOKA Tomohiko  <tomo@etl.go.jp>
1736
1737         * file-coding.c (decode_coding_iso2022): Use
1738         `DECODE_ADD_UCS_CHAR'; don't use `XCHARSET_REP_BYTES'.
1739
1740 1999-09-10  MORIOKA Tomohiko  <tomo@etl.go.jp>
1741
1742         * mule-charset.c (vars_of_mule_charset): Update `utf-2000-version'
1743         to 0.7 (Hirano).
1744
1745 1999-09-10  MORIOKA Tomohiko  <tomo@etl.go.jp>
1746
1747         * char-lb.h (CHAR_COLUMNS): New macro.
1748
1749 1999-09-09  MORIOKA Tomohiko  <tomo@etl.go.jp>
1750
1751         * text-coding.c (char_encode_ucs4): New function.
1752         (char_finish_ucs4): New function.
1753         (encode_coding_ucs4): Deleted.
1754         (mule_encode): Use generic encoder for `CODESYS_UCS4'.
1755         (text_encode_generic): Delete local variable `charset' and `half'.
1756         (ucs_to_mule_table): Deleted.
1757         (mule_to_ucs_table): Deleted.
1758         (Fset_ucs_char): Deleted.
1759         (ucs_to_char): Deleted.
1760         (Fucs_char): Deleted.
1761         (Fset_char_ucs): Deleted.
1762         (Fchar_ucs): Deleted.
1763         (decode_ucs4): Deleted.
1764         (mule_char_to_ucs4): Deleted.
1765         (encode_ucs4): Deleted.
1766         (decode_coding_ucs4): Use `DECODE_ADD_UCS_CHAR'.
1767         (decode_coding_utf8): Likewise.
1768         (decode_coding_iso2022): Likewise; don't use `XCHARSET_REP_BYTES'.
1769         (char_encode_iso2022): Fixed.
1770         (syms_of_file_coding): Delete `Fset_ucs_char', `Fucs_char',
1771         `Fset_char_ucs' and `Fchar_ucs'.
1772         (complex_vars_of_file_coding): Don't initialize
1773         `ucs_to_mule_table'.
1774
1775         * objects-tty.c (tty_initialize_font_instance): Don't use
1776         `XCHARSET_COLUMNS'.
1777
1778         * mule-charset.c (make_charset): Don't set up CHARSET_REP_BYTES in
1779         UTF-2000.
1780
1781         * redisplay-tty.c (tty_output_display_block): Use `CHAR_COLUMNS'
1782         instead of `XCHARSET_COLUMNS' and `CHAR_CHARSET'.
1783
1784         * insdel.c (bufbyte_string_displayed_columns): Use `CHAR_COLUMNS'
1785         instead of `XCHARSET_COLUMNS' and `CHAR_CHARSET'.
1786         (emchar_string_displayed_columns): Likewise.
1787
1788         * indent.c (column_at_point): Use `CHAR_COLUMNS' instead of
1789         `XCHARSET_COLUMNS' and `CHAR_CHARSET'.
1790         (string_column_at_point): Likewise.
1791         (Fmove_to_column): Likewise.
1792
1793         * char-ucs.h (struct Lisp_Charset): Delete `rep_bytes'; add
1794         `encoding_table' and `decoding_table'.
1795         (CHARSET_REP_BYTES): Deleted.
1796         (XCHARSET_REP_BYTES): Deleted.
1797         (XCHARSET_COLUMNS): Deleted.
1798         (CHAR_COLUMNS): New macro.
1799         (lookup_composite_char): Deleted unconditionally.
1800         (composite_char_string): Likewise.
1801
1802 1999-09-09  MORIOKA Tomohiko  <tomo@etl.go.jp>
1803
1804         * char-ucs.h (Emchar_to_byte_table): New type.
1805         (get_byte_from_character_table): New function interface.
1806         (Vcharset_latin_jisx0201): New variable.
1807         (latin_jisx0201_to_ucs): New variable.
1808         (ucs_to_latin_jisx0201): New variable.
1809         (Vcharset_latin_iso8859_2): New variable.
1810         (latin_iso8859_2_to_ucs): New variable.
1811         (ucs_to_latin_iso8859_2): New variable.
1812         (Vcharset_latin_iso8859_3): New variable.
1813         (latin_iso8859_3_to_ucs): New variable.
1814         (ucs_to_latin_iso8859_3): New variable.
1815         (Vcharset_latin_iso8859_4): New variable.
1816         (latin_iso8859_4_to_ucs): New variable.
1817         (ucs_to_latin_iso8859_4): New variable.
1818         (Vcharset_latin_iso8859_9): New variable.
1819         (latin_iso8859_9_to_ucs): New variable.
1820         (ucs_to_latin_iso8859_9): New variable.
1821         (Vcharset_latin_viscii_lower): New variable.
1822         (latin_viscii_lower_to_ucs): New variable.
1823         (ucs_to_latin_viscii_lower): New variable.
1824         (Vcharset_latin_viscii_upper): New variable.
1825         (latin_viscii_upper_to_ucs): New variable.
1826         (ucs_to_latin_viscii_upper): New variable.
1827         (CHARSET_ID_OFFSET_94): Changed from 0x60 to 0x55.
1828         (LEADING_BYTE_LATIN_VISCII_LOWER): New macro.
1829         (LEADING_BYTE_LATIN_VISCII_UPPER): New macro.
1830         (MAKE_CHAR): Map `latin-iso8859-2', `latin-iso8859-3',
1831         `latin-iso8859-4', `latin-iso8859-9', `latin-jisx0201',
1832         `vietnamese-viscii-lower' and `vietnamese-viscii-upper' to BMP.
1833         (breakup_char_1): Use `ucs_to_latin_iso8859_2',
1834         `ucs_to_latin_iso8859_3', `ucs_to_latin_iso8859_4',
1835         `ucs_to_latin_iso8859_9', `ucs_to_latin_viscii_lower',
1836         `ucs_to_latin_viscii_upper' and `ucs_to_latin_jisx0201' tables.
1837
1838         * mule-charset.c (Vcharset_latin_viscii_lower): New variable.
1839         (Vcharset_latin_viscii_upper): New variable.
1840         (make_byte_from_character_table): New function.
1841         (put_byte_from_character_table): New function.
1842         (get_byte_from_character_table): New function.
1843         (CHAR96): New macro.
1844         (ucs_to_latin_jisx0201): New variable.
1845         (latin_jisx0201_to_ucs): New variable.
1846         (ucs_to_latin_iso8859_2): New variable.
1847         (latin_iso8859_2_to_ucs): New variable.
1848         (ucs_to_latin_iso8859_3): New variable.
1849         (latin_iso8859_3_to_ucs): New variable.
1850         (ucs_to_latin_iso8859_4): New variable.
1851         (latin_iso8859_4_to_ucs): New variable.
1852         (ucs_to_latin_iso8859_9): New variable.
1853         (latin_iso8859_9_to_ucs): New variable.
1854         (ucs_to_latin_viscii_lower): New variable.
1855         (latin_viscii_lower_to_ucs): New variable.
1856         (ucs_to_latin_viscii_upper): New variable.
1857         (latin_viscii_upper_to_ucs): New variable.
1858         (ucs_to_latin_tcvn5712): New variable.
1859         (latin_tcvn5712_to_ucs): New variable.
1860         (Qlatin_viscii_lower): New variable.
1861         (Qlatin_viscii_upper): New variable.
1862         (syms_of_mule_charset): Set up new symbol
1863         `vietnamese-viscii-lower' and `vietnamese-viscii-upper'.
1864         (complex_vars_of_mule_charset): Set up new charset
1865         `vietnamese-viscii-lower' and `vietnamese-viscii-upper'; new macro
1866         `GENERATE_94_SET' and `GENERATE_96_SET'; use them to generate
1867         `ucs_to_<CHARSET>' tables.
1868
1869 1999-09-08  MORIOKA Tomohiko  <tomo@etl.go.jp>
1870
1871         * text-coding.c: New file.
1872
1873 1999-09-07  MORIOKA Tomohiko  <tomo@etl.go.jp>
1874
1875         * mule-charset.c (Fmake_char): Fix problem of 256-set.
1876
1877         * char-ucs.h (Vcharset_ucs_bmp): New variable.
1878         (MAKE_CHAR): Modify for `ucs-bmp'.
1879         (breakup_char_1): Return `ucs-bmp' and code point of BMP for
1880         non-MULE characters of BMP.
1881
1882 1999-09-06  MORIOKA Tomohiko  <tomo@etl.go.jp>
1883
1884         * mule-charset.c (vars_of_mule_charset): Update `utf-2000-version'
1885         to 0.6.
1886
1887 1999-09-05  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1888
1889         * lstream.h:
1890         - Include multibyte.h instead of character.h for `BYTE_ASCII_P'.
1891         - Include character.h for `CHAR_ASCII_P'.
1892
1893         * mb-multibyte.h (CHAR_MULTIBYTE_P): Moved from mule-charset.h.
1894
1895         * mule-charset.h (CHAR_MULTIBYTE_P): Moved to mb-multibyte.h.
1896         (CHAR_ASCII_P): Don't use `CHAR_MULTIBYTE_P'.
1897
1898         * mb-multibyte.h (BYTE_ASCII_P): Moved from char-ucs.h.
1899         (BYTE_C0_P): Likewise.
1900         (BYTE_C1_P): Likewise.
1901         (Lstream_get_emchar_1): Likewise.
1902         (Lstream_fput_emchar): Likewise.
1903         (Lstream_funget_emchar): Likewise.
1904         (copy_internal_to_external): Likewise.
1905         (copy_external_to_internal): Likewise.
1906
1907         * char-ucs.h (BYTE_ASCII_P): Moved to mb-multibyte.h.
1908         (BYTE_C0_P): Likewise.
1909         (BYTE_C1_P): Likewise.
1910         (Lstream_get_emchar_1): Likewise.
1911         (Lstream_fput_emchar): Likewise.
1912         (Lstream_funget_emchar): Likewise.
1913         (copy_internal_to_external): Likewise.
1914         (copy_external_to_internal): Likewise.
1915
1916         * mb-1byte.h (BYTE_ASCII_P): Moved from buffer.h.
1917         (REP_BYTES_BY_FIRST_BYTE): Likewise.
1918
1919         * buffer.h (REP_BYTES_BY_FIRST_BYTE): Moved to mb-1byte.h.
1920         (BYTE_ASCII_P): Moved to mb-1byte.h.
1921
1922 1999-09-04  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1923
1924         * mb-utf-8.h, mb-lb.h: Include mb-multibyte.h.
1925
1926         * multibyte.h: Include mb-1byte.h in unibyte-XEmacs.
1927         (MAX_EMCHAR_LEN): Moved to mb-1byte.h.
1928         (VALID_CHARPTR_P): Moved to mb-*byte.h.
1929         (VALIDATE_CHARPTR_BACKWARD): Likewise.
1930         (VALIDATE_CHARPTR_FORWARD): Likewise.
1931         (simple_charptr_emchar): Moved to mb-multibyte.h.
1932         (simple_set_charptr_emchar): Likewise.
1933         (simple_charptr_copy_char): Likewise.
1934         (non_ascii_charptr_emchar): Likewise.
1935         (non_ascii_set_charptr_emchar): Likewise.
1936         (non_ascii_charptr_copy_char): Likewise.
1937         (charptr_emchar): Moved to mb-*byte.h.
1938         (set_charptr_emchar): Likewise.
1939         (charptr_copy_char): Likewise.
1940
1941         * mb-1byte.h, mb-multibyte.h: New files.
1942
1943 1999-09-03  MORIOKA Tomohiko  <tomo@urania.m17n.org>
1944
1945         * mb-utf-8.h (MULTIBYTE): New macro.
1946         (MAX_EMCHAR_LEN): Moved from buffer.h.
1947         (REP_BYTES_BY_FIRST_BYTE): Moved from char-ucs.h.
1948
1949         * char-ucs.h (REP_BYTES_BY_FIRST_BYTE): Moved to mb-utf-8.h.
1950
1951         * mb-lb.h, multibyte.h: New files.
1952
1953         * char-1byte.h (Charset_ID): Moved from buffer.h.
1954         (MIN_LEADING_BYTE): Likewise.
1955         (LEADING_BYTE_ASCII): Likewise.
1956         (NUM_LEADING_BYTES): Likewise.
1957         (CHARSETP): Likewise.
1958         (CHARSET_BY_LEADING_BYTE): Likewise.
1959         (XCHARSET_LEADING_BYTE): Likewise.
1960         (XCHARSET_GRAPHIC): Likewise.
1961         (XCHARSET_COLUMNS): Likewise.
1962         (XCHARSET_DIMENSION): Likewise.
1963         (CHAR_CHARSET): Likewise.
1964         (CHAR_LEADING_BYTE): Likewise.
1965         (BREAKUP_CHAR): Likewise.
1966         (Vcharset_ascii): Likewise.
1967
1968         * buffer.h: Include multibyte.h unconditionally.
1969         (VALID_CHARPTR_P): Moved to multibyte.h.
1970         (ASSERT_VALID_CHARPTR): Likewise.
1971         (REAL_INC_CHARPTR): Likewise.
1972         (REAL_INC_CHARBYTIND): Likewise.
1973         (REAL_DEC_CHARPTR): Likewise.
1974         (INC_CHARPTR): Likewise.
1975         (INC_CHARBYTIND): Likewise.
1976         (DEC_CHARPTR): Likewise.
1977         (VALIDATE_CHARPTR_BACKWARD): Likewise.
1978         (VALIDATE_CHARPTR_FORWARD): Likewise.
1979         (charptr_n_addr): Likewise.
1980         (MAX_EMCHAR_LEN): Moved to mb-*.h.
1981         (simple_charptr_emchar): Moved to multibyte.h.
1982         (simple_set_charptr_emchar): Likewise.
1983         (simple_charptr_copy_char): Likewise.
1984         (non_ascii_charptr_emchar): Likewise.
1985         (non_ascii_set_charptr_emchar): Likewise.
1986         (non_ascii_charptr_copy_char): Likewise.
1987         (charptr_emchar): Likewise.
1988         (set_charptr_emchar): Likewise.
1989         (charptr_copy_char): Likewise.
1990         (charptr_emchar_n): Likewise.
1991         (Charset_ID): Moved to char-1byte.h.
1992         (Vcharset_ascii): Likewise.
1993         (CHAR_CHARSET): Likewise.
1994         (CHAR_LEADING_BYTE): Likewise.
1995         (LEADING_BYTE_ASCII): Likewise.
1996         (NUM_LEADING_BYTES): Likewise.
1997         (MIN_LEADING_BYTE): Likewise.
1998         (CHARSETP): Likewise.
1999         (CHARSET_BY_LEADING_BYTE): Likewise.
2000         (XCHARSET_LEADING_BYTE): Likewise.
2001         (XCHARSET_GRAPHIC): Likewise.
2002         (XCHARSET_COLUMNS): Likewise.
2003         (XCHARSET_DIMENSION): Likewise.
2004         (BREAKUP_CHAR): Likewise.
2005
2006 1999-09-02  MORIOKA Tomohiko  <tomo@urania.m17n.org>
2007
2008         * character.h: Add document about interface for characters.
2009
2010         * char-ucs.h (CHAR_ASCII_P): Modify name of argument.
2011         (MAKE_CHAR): Delete comment about
2012         `FIELD2_TO_OFFICIAL_LEADING_BYTE' and
2013         `FIELD2_TO_PRIVATE_LEADING_BYTE'.
2014         (BREAKUP_CHAR): Modify name of arguments.
2015         (CHAR_CHARSET): Modify name of argument.
2016
2017         * buffer.h: Delete document about Emchar accessors.
2018
2019 1999-09-02  MORIOKA Tomohiko  <tomo@urania.m17n.org>
2020
2021         * character.h (CHAR_INTP): Moved from buffer.h
2022         (CHAR_OR_CHAR_INTP): Likewise.
2023         (XCHAR_OR_CHAR_INT): Likewise.
2024         (CHECK_CHAR_COERCE_INT): Likewise.
2025
2026         * buffer.h (CHAR_INTP): Moved to character.h
2027         (CHAR_OR_CHAR_INTP): Likewise.
2028         (XCHAR_OR_CHAR_INT): Likewise.
2029         (CHECK_CHAR_COERCE_INT): Likewise.
2030
2031 1999-09-02  MORIOKA Tomohiko  <tomo@urania.m17n.org>
2032
2033         * character.h:
2034         - Move definitions about UCS-2000 (UCS-4) to char-ucs.h.
2035         - Include char-1byte.h, char-lb.h or char-ucs.h.
2036
2037         * mb-utf-8.h (CHAR_ASCII_P): Moved to char-ucs.h.
2038
2039         * buffer.h: Include character unconditionally.
2040         (valid_char_p): Moved to char-*.h.
2041         (non_ascii_valid_char_p): Moved to char-lb.h.
2042
2043         * char-1byte.h, char-lb.h, char-ucs.h: New files.
2044
2045 1999-09-02  MORIOKA Tomohiko  <tomo@urania.m17n.org>
2046
2047         * mule-ccl.c (ccl_driver): Don't define `CCL_WriteMultibyteChar2'
2048         in UTF-2000 because it is not ported yet and not to use
2049         `FIELD2_TO_OFFICIAL_LEADING_BYTE', `MIN_LEADING_BYTE_OFFICIAL_2',
2050         `FIELD1_TO_OFFICIAL_LEADING_BYTE' and
2051         `FIELD1_TO_PRIVATE_LEADING_BYTE'.
2052
2053         * mb-utf-8.h (CHAR_MULTIBYTE_P): Moved from character.h.
2054         (CHAR_ASCII_P): Moved from character.h.
2055
2056         * character.h (CHAR_MULTIBYTE_P): Moved to mb-utf-8.h.
2057         (CHAR_ASCII_P): Likewise.
2058         (CHAR_FIELD1_MASK): Deleted.
2059         (CHAR_FIELD2_MASK): Deleted.
2060         (CHAR_FIELD3_MASK): Deleted.
2061         (MAX_CHAR_BASIC_LATIN): New macro.
2062         (CHAR_FIELD1): Deleted.
2063         (CHAR_FIELD2_INTERNAL): Deleted.
2064         (CHAR_FIELD3_INTERNAL): Deleted.
2065         (FIELD1_TO_PRIVATE_LEADING_BYTE): Deleted.
2066         (FIELD1_TO_OFFICIAL_LEADING_BYTE): Deleted.
2067         (FIELD2_TO_PRIVATE_LEADING_BYTE): Deleted.
2068         (FIELD2_TO_OFFICIAL_LEADING_BYTE): Deleted.
2069         (MIN_CHAR_FIELD1_OFFICIAL): Deleted.
2070         (MAX_CHAR_FIELD1_OFFICIAL): Deleted.
2071         (MIN_CHAR_FIELD2_PRIVATE): Deleted.
2072         (MAX_CHAR_FIELD2_PRIVATE): Deleted.
2073         (MIN_CHAR_FIELD1_PRIVATE): Deleted.
2074         (MAX_CHAR_FIELD1_PRIVATE): Deleted.
2075         (MULE_CHAR_PRIVATE_OFFSET): Deleted.
2076         (MIN_CHAR_PRIVATE_TYPE9N): Deleted.
2077         (MAX_CHAR_PRIVATE_TYPE9N): Deleted.
2078         (MIN_CHAR_PRIVATE_TYPE9NX9N): Deleted.
2079         (MIN_CHAR_OFFICIAL_TYPE9NX9N): Deleted.
2080         (MIN_CHAR_COMPOSITION): Deleted.
2081         (breakup_char_1): Use `MAX_CHAR_BASIC_LATIN' instead of
2082         `CHAR_ASCII_P'; use `0x7f' instead of `CHAR_FIELD3_INTERNAL'.
2083
2084 1999-09-02  MORIOKA Tomohiko  <tomo@m17n.org>
2085
2086         * buffer.h: Include mb-utf-8.h in UTF-2000.
2087
2088         * character.h (BUFBYTE_FIRST_BYTE_P): Moved to mb-utf-8.h.
2089
2090         * mb-utf-8.h: New file.
2091
2092 1999-09-02  MORIOKA Tomohiko  <tomo@etl.go.jp>
2093
2094         * chartab.h (CHAR_TABLE_NON_ASCII_VALUE_UNSAFE): Use `Charset_ID'
2095         instead of `int'.
2096
2097         * mule-charset.h, buffer.h (Charset_ID): New type.
2098
2099 1999-09-01  MORIOKA Tomohiko  <tomo@etl.go.jp>
2100
2101         * mule-canna.c (c2mu): Use `MAKE_CHAR',
2102         `Vcharset_japanese_jisx0212' and `Vcharset_japanese_jisx0208'
2103         instead of `MULE_CHAR_PRIVATE_OFFSET',
2104         `LEADING_BYTE_JAPANESE_JISX0212', `LEADING_BYTE_JAPANESE_JISX0208'
2105         and `FIELD1_TO_OFFICIAL_LEADING_BYTE'.
2106         (m2c): Use `BREAKUP_CHAR' and `XCHARSET_FINAL'.
2107
2108         * character.h (Vcharset_japanese_jisx0212): New variable
2109         definition.
2110
2111 1999-09-01  MORIOKA Tomohiko  <tomo@etl.go.jp>
2112
2113         * mule-charset.c (Vcharset_ucs_bmp): New variable in UTF-2000.
2114         (charset_by_attributes): Delete array about direction.
2115         (latin_a_char_to_charset): New variable in UTF-2000.
2116         (latin_a_char_to_byte1): New variable in UTF-2000.
2117         (latin_a_char_to_byte2): New variable in UTF-2000.
2118         (Qucs_bmp): New variable.
2119         (next_allocated_1_byte_leading_byte): Use `Charset_ID' instead of
2120         `Bufbyte'.
2121         (next_allocated_2_byte_leading_byte): Likewise.
2122         (non_ascii_set_charptr_emchar): Likewise.
2123         (make_charset): Likewise; add `CHARSET_TYPE_128X128' and
2124         `CHARSET_TYPE_256X256' in UTF-2000; modify for
2125         `charset_by_attributes'.
2126         (get_unallocated_leading_byte): Use `Charset_ID' instead of `int'.
2127         (char-charset): Use `CHAR_CHARSET' instead of `CHAR_LEADING_BYTE'
2128         and `CHARSET_BY_LEADING_BYTE'.
2129         (syms_of_mule_charset): Set up `ucs-bmp'; move setting of
2130         `utf-2000-version' to `vars_of_mule_charset'.
2131         (vars_of_mule_charset): Modify for `charset_by_attributes'; don't
2132         define `leading-code-private-11' in UTF-2000; move setting of
2133         `utf-2000-version' from `syms_of_mule_charset'.
2134         (complex_vars_of_mule_charset): Set up charset `ucs-bmp' in
2135         UTF-2000.
2136
2137         * character.h (Charset_ID): New type.
2138         (LEADING_BYTE_UCS_BMP): New macro.
2139         (LEADING_BYTE_CONTROL_1): Changed from 0x8F to 0x81.
2140         (CHARSET_ID_OFFSET_94): New macro.
2141         (MIN_CHARSET_ID_PRIVATE_94): New macro.
2142         (MAX_CHARSET_ID_PRIVATE_94): New macro.
2143         (LEADING_BYTE_ASCII): Changed to use CHARSET_ID_OFFSET_94 and
2144         final-byte.
2145         (LEADING_BYTE_KATAKANA_JISX0201): Likewise.
2146         (LEADING_BYTE_LATIN_JISX0201): Likewise.
2147         (CHARSET_ID_OFFSET_96): New macro.
2148         (LEADING_BYTE_LATIN_ISO8859_1): Changed to use
2149         CHARSET_ID_OFFSET_96 and final-byte.
2150         (LEADING_BYTE_LATIN_ISO8859_2): Likewise.
2151         (LEADING_BYTE_LATIN_ISO8859_3): Likewise.
2152         (LEADING_BYTE_LATIN_ISO8859_4): Likewise.
2153         (LEADING_BYTE_GREEK_ISO8859_7): Likewise.
2154         (LEADING_BYTE_ARABIC_ISO8859_6): Likewise.
2155         (LEADING_BYTE_HEBREW_ISO8859_8): Likewise.
2156         (LEADING_BYTE_CYRILLIC_ISO8859_5): Likewise.
2157         (LEADING_BYTE_LATIN_ISO8859_9): Likewise.
2158         (LEADING_BYTE_THAI_TIS620): Likewise.
2159         (MIN_LEADING_BYTE_PRIVATE_1): Changed from 0x0D0 to 0xD0.
2160         (MAX_LEADING_BYTE_PRIVATE_1): Changed from 0x11f to 0xDF.
2161         (CHARSET_ID_OFFSET_94x94): New macro.
2162         (LEADING_BYTE_CHINESE_BIG5_1): Changed to use
2163         CHARSET_ID_OFFSET_94x94 and final-byte.
2164         (LEADING_BYTE_CHINESE_BIG5_2): Likewise.
2165         (MIN_LEADING_BYTE_PRIVATE_2): Likewise.
2166         (MAX_LEADING_BYTE_PRIVATE_2): Likewise.
2167         (LEADING_BYTE_JAPANESE_JISX0208_1978): Likewise.
2168         (LEADING_BYTE_CHINESE_GB2312): Likewise.
2169         (LEADING_BYTE_JAPANESE_JISX0208): Likewise.
2170         (LEADING_BYTE_KOREAN_KSC5601): Likewise.
2171         (LEADING_BYTE_JAPANESE_JISX0212): Likewise.
2172         (LEADING_BYTE_CHINESE_CCITT_GB): Likewise.
2173         (LEADING_BYTE_CHINESE_CNS11643_*): Likewise.
2174         (LEADING_BYTE_KOREAN_KPS9566): Likewise.
2175         (CHARSET_TYPE_128X128): New macro.
2176         (CHARSET_TYPE_256X256): New macro.
2177         (XCHARSET_PRIVATE_P): Delete unconditionally.
2178         (charset_by_attributes): Delete array about direction.
2179         (CHARSET_BY_LEADING_BYTE): Use `Charset_ID' instead of `int'.
2180         (CHARSET_BY_ATTRIBUTES): Modify for `charset_by_attributes'.
2181         (MIN_CHAR_94): New macro.
2182         (MAX_CHAR_94): New macro.
2183         (MIN_CHAR_96): New macro.
2184         (MAX_CHAR_96): New macro.
2185         (MIN_CHAR_94x94): New macro.
2186         (MAX_CHAR_94x94): New macro.
2187         (MIN_CHAR_96x96): New macro.
2188         (MAX_CHAR_96x96): New macro.
2189         (FIELD1_TO_PRIVATE_LEADING_BYTE): Use `CHARSET_ID_OFFSET_94x94'.
2190         (FIELD1_TO_OFFICIAL_LEADING_BYTE): Likewise.
2191         (FIELD2_TO_PRIVATE_LEADING_BYTE): Use `(MIN_LEADING_BYTE_PRIVATE_1
2192         - 32)'.
2193         (FIELD2_TO_OFFICIAL_LEADING_BYTE): Use `LEADING_BYTE_ASCII'.
2194         (MIN_CHAR_FIELD2_OFFICIAL): Deleted.
2195         (MAX_CHAR_FIELD2_OFFICIAL): Deleted.
2196         (MIN_CHAR_OFFICIAL_TYPE9N): Deleted.
2197         (MAX_CHAR_PRIVATE_TYPE9N): Changed.
2198         (MAKE_CHAR): Use `XCHARSET_FINAL' instead of
2199         `XCHARSET_LEADING_BYTE' to make code-point.
2200         (latin_a_char_to_charset): New variable.
2201         (latin_a_char_to_byte1): New variable.
2202         (latin_a_char_to_byte2): New variable.
2203         (breakup_char_1): Use `latin_a_char_to_{charset|byte1|byte2}' for
2204         Latin Extended-A; use `CHARSET_BY_ATTRIBUTES' instead of
2205         `CHARSET_BY_LEADING_BYTE' to get charset for ISO-2022 characters.
2206
2207         * insdel.c (find_charsets_in_bufbyte_string): Use `Charset_ID'
2208         instead of `unsigned char'; use `MIN_LEADING_BYTE' instead of 128.
2209         (find_charsets_in_emchar_string): Likewise.
2210         (vars_of_insdel): Don't define local variable `i' in UTF-2000.
2211
2212         * file-coding.c (Fdecode_big5_char): Use `Charset_ID' instead of
2213         `int'.
2214         (decode_coding_iso2022): Likewise.
2215
2216         * toolbar-x.c (x_output_toolbar_button): Use `Charset_ID' instead
2217         of `unsigned char'.
2218
2219         * redisplay.c (redisplay_text_width_emchar_string): Use
2220         `Charset_ID' instead of `unsigned char'.
2221         (redisplay_frame_text_width_string): Likewise.
2222
2223         * glyphs.c (glyph_height_internal): Use `Charset_ID' instead of
2224         `unsigned char'.
2225
2226         * faces.h, faces.c (ensure_face_cachel_complete): Use `Charset_ID'
2227         instead of `unsigned char'.
2228         (face_cachel_charset_font_metric_info): Likewise.
2229
2230         * chartab.c (print_char_table): Use `Charset_ID' instead of `int'.
2231         (get_non_ascii_char_table_value): Likewise.
2232         (get_char_table): Likewise.
2233         (put_char_table): Likewise.
2234         (map_over_other_charset): Likewise.
2235         (map_char_table): Likewise.
2236
2237         * buffer.h (find_charsets_in_bufbyte_string): Use `Charset_ID'
2238         instead of `unsigned char'.
2239
2240 1999-08-31  MORIOKA Tomohiko  <tomo@etl.go.jp>
2241
2242         * character.h (PRE_LEADING_BYTE_PRIVATE_1): Deleted.
2243         (PRE_LEADING_BYTE_PRIVATE_2): Deleted.
2244
2245         * mule-charset.c (leading_code_private_11): Don't define in
2246         UTF-2000.
2247
2248         * mule-ccl.c (ccl_driver): Don't define `CCL_ReadMultibyteChar2'
2249         in UTF-2000 because it is not ported yet and not to use
2250         `PRE_LEADING_BYTE_PRIVATE_1' and `PRE_LEADING_BYTE_PRIVATE_2'.
2251
2252 1999-08-30  MORIOKA Tomohiko  <tomo@etl.go.jp>
2253
2254         * character.h (LEADING_BYTE_COMPOSITE): Deleted.
2255
2256 1999-08-29  MORIOKA Tomohiko  <tomo@etl.go.jp>
2257
2258         * regex.c (re_compile_fastmap): Don't use `LEADING_BYTE_PREFIX_P'
2259         in UTF-2000.
2260
2261         * chartab.h (CHAR_TABLE_NON_ASCII_VALUE_UNSAFE): Use int instead
2262         of unsigned char to store leading-byte.
2263
2264         * chartab.c (get_non_ascii_char_table_value): Don't use
2265         `BREAKUP_CHAR_1_UNSAFE' in UTF-2000.
2266
2267         * file-coding.c (encode_coding_big5): Delete bogus implementation
2268         in UTF2000.
2269
2270         * character.h (LEADING_BYTE_*): Delete definition for
2271         non-UTF-2000.
2272         (LEADING_BYTE_PRIVATE_P): Deleted unconditionally.
2273         (LEADING_BYTE_PREFIX_P): Deleted.
2274         (PRIVATE_LEADING_BYTE_PREFIX): Deleted.
2275         (BUFBYTE_FIRST_BYTE_P): Delete definition for non-UTF-2000.
2276         (BUFBYTE_LEADING_BYTE_P): Deleted.
2277         (CHARSET_PRIVATE_P): Deleted unconditionally.
2278         (rep_bytes_by_first_byte): Deleted unconditionally.
2279         (REP_BYTES_BY_FIRST_BYTE): Delete definition for non-UTF-2000.
2280         (FIELD1_TO_PRIVATE_LEADING_BYTE): Likewise.
2281         (FIELD1_TO_OFFICIAL_LEADING_BYTE): Likewise.
2282         (FIELD2_TO_PRIVATE_LEADING_BYTE): Likewise.
2283         (CHAR_FIELD2): Deleted.
2284         (CHAR_FIELD3): Deleted.
2285         (MAKE_CHAR): Delete definition for non-UTF-2000.
2286         (BREAKUP_CHAR_1_UNSAFE): Deleted.
2287         (breakup_char_1): New implementation.
2288         (CHAR_CHARSET): Use `BREAKUP_CHAR'.
2289         (CHAR_LEADING_BYTE): Use `CHAR_CHARSET'.
2290
2291 1999-08-29  MORIOKA Tomohiko  <tomo@etl.go.jp>
2292
2293         * character.h (REP_BYTES_BY_FIRST_BYTE): Change order of
2294         condition.
2295
2296 1999-08-28  MORIOKA Tomohiko  <tomo@etl.go.jp>
2297
2298         * character.h (LEADING_BYTE_PRIVATE_P): Don't define in UTF2000.
2299         (CHARSET_PRIVATE_P): Likewise.
2300         (XCHARSET_PRIVATE_P): Likewise.
2301         (MAKE_CHAR): Don't use XCHARSET_PRIVATE_P in UTF2000.
2302
2303         * file-coding.c (encode_coding_ucs4): Delete bogus implement in
2304         UTF2000.
2305         (decode_coding_iso2022): Don't use XCHARSET_PRIVATE_P in UTF2000.
2306
2307 1999-08-28  MORIOKA Tomohiko  <tomo@etl.go.jp>
2308
2309         * character.h (LEADING_BYTE_*): Changed in UTF2000.
2310         (NUM_LEADING_BYTES): Changed from 128 to 256.
2311         (FIELD1_TO_PRIVATE_LEADING_BYTE): Change value to 0x80 in UTF2000.
2312         (FIELD1_TO_OFFICIAL_LEADING_BYTE): Change value to 0x80 in
2313         UTF2000.
2314         (FIELD2_TO_PRIVATE_LEADING_BYTE): Change value to 0x80 in UTF2000.
2315
2316         * mule-charset.c (Vcharset_chinese_cns11643_3): New variable in
2317         UTF2000.
2318         (Vcharset_chinese_cns11643_4): New variable in UTF2000.
2319         (Vcharset_chinese_cns11643_5): New variable in UTF2000.
2320         (Vcharset_chinese_cns11643_6): New variable in UTF2000.
2321         (Vcharset_chinese_cns11643_7): New variable in UTF2000.
2322         (Qchinese_cns11643_3): New variable in UTF2000.
2323         (Qchinese_cns11643_4): New variable in UTF2000.
2324         (Qchinese_cns11643_5): New variable in UTF2000.
2325         (Qchinese_cns11643_6): New variable in UTF2000.
2326         (Qchinese_cns11643_7): New variable in UTF2000.
2327         (syms_of_mule_charset): Define `chinese-cns11643-3',
2328         `chinese-cns11643-4', `chinese-cns11643-5', `chinese-cns11643-6'
2329         and `chinese-cns11643-7' in UTF2000.
2330         (vars_of_mule_charset): Initialize
2331         next_allocated_2_byte_leading_byte by LEADING_BYTE_CHINESE_BIG5_2
2332         + 1 in UTF2000.
2333         (complex_vars_of_mule_charset): Setup charset
2334         `chinese-cns11643-3', `chinese-cns11643-4', `chinese-cns11643-5',
2335         `chinese-cns11643-6' and `chinese-cns11643-7' in UTF2000.
2336
2337 1999-08-27  MORIOKA Tomohiko  <tomo@etl.go.jp>
2338
2339         * mule-charset.c: Move setting for `leading-code-private-11' from
2340         `syms_of_mule_charset' to `vars_of_mule_charset'.
2341
2342 1999-08-27  MORIOKA Tomohiko  <tomo@etl.go.jp>
2343
2344         * mule-charset.h (CHARSET_BY_LEADING_BYTE): Use `MIN_LEADING_BYTE'
2345         and `NUM_LEADING_BYTES' in assert.
2346
2347 1999-08-27  MORIOKA Tomohiko  <tomo@etl.go.jp>
2348
2349         * character.h (charset_by_leading_byte): Use `NUM_LEADING_BYTES'
2350         instead of 128.
2351         (CHARSET_BY_LEADING_BYTE): Use `MIN_LEADING_BYTE' and
2352         `NUM_LEADING_BYTES' instead of 128.
2353
2354 1999-08-26  MORIOKA Tomohiko  <tomo@etl.go.jp>
2355
2356         * mule-charset.h (charset_by_leading_byte): Use
2357         `NUM_LEADING_BYTES' instead of 128.
2358         (CHARSET_BY_LEADING_BYTE): Use `MIN_LEADING_BYTE' instead of 128.
2359
2360         * mule-charset.c (charset_by_leading_byte): Use
2361         `NUM_LEADING_BYTES' instead of 128.
2362         (make_charset): Use `MIN_LEADING_BYTE' instead of 128.
2363
2364         * faces.h (FACE_CACHEL_FONT): Use `MIN_LEADING_BYTE' instead of
2365         128.
2366
2367 1999-08-25  MORIOKA Tomohiko  <tomo@etl.go.jp>
2368
2369         * mule-charset.c (syms_of_mule_charset): Update to
2370         0.4 (Shin-Imamiya).
2371
2372 1999-07-13 Daiki Ueno <ueno@ueda.info.waseda.ac.jp>
2373
2374         * file-coding.c (encode_coding_sjis): New implementation for
2375         UTF2000.  (decode_coding_sjis): Ditto.
2376
2377 1999-06-17  MORIOKA Tomohiko  <tomo@etl.go.jp>
2378
2379         * mule-charset.c, character.h (Bytecount rep_bytes_by_first_byte):
2380         Don't define in UTF2000.
2381
2382         * character.h: Include mule-charset.h if CHAR_IS_UCS4 is not
2383         defined.
2384
2385         * redisplay-msw.c, objects-tty.c, objects-msw.c, mule-wnnfns.c,
2386         mule-ccl.c, lstream.h, buffer.h: Include character.h in every
2387         MULE.
2388
2389 1999-06-17  MORIOKA Tomohiko  <tomo@etl.go.jp>
2390
2391         * config.h.in (CHAR_IS_UCS4): New macro.
2392
2393         * mule-charset.c (rep_bytes_by_first_byte): Modify for
2394         conventional MULE representation.
2395         (syms_of_mule_charset): Update to 0.3 (Imamiya).
2396
2397         * mule-charset.h: Reverted to original.
2398
2399         * redisplay-msw.c, objects-tty.c, objects-msw.c, mule-wnnfns.c,
2400         mule-ccl.c, lstream.h, buffer.h: Use "character.h" instead of
2401         "mule-charset.h" if CHAR_IS_UCS4 is defined.
2402
2403         * character.h: New file.
2404
2405         * file-coding.c (Fmake_coding_system): Set 1 to
2406         `codesys->fixed.size' if TYPE is `no-conversion' and UTF2000 is
2407         defined.
2408         (encode_coding_no_conversion): New implementation for UTF2000.
2409
2410         * file-coding.h (struct Lisp_Coding_System): Add new member
2411         `fixed.size'.
2412
2413 1999-06-16  MORIOKA Tomohiko  <tomo@etl.go.jp>
2414
2415         * file-coding.c (decode_coding_iso2022): Code-point arguments of
2416         `MAKE_CHAR' must be smaller than 0x80 in UTF2000.
2417         (encode_coding_iso2022): New implementation for UTF2000.
2418
2419 1999-06-15  MORIOKA Tomohiko  <tomo@etl.go.jp>
2420
2421         * mule-canna.c (c2mu): New implementation for UTF2000.
2422         (m2c): Likewise.
2423
2424 1999-06-15  MORIOKA Tomohiko  <tomo@etl.go.jp>
2425
2426         * file-coding.c (encode_coding_no_conversion): Modify for UTF2000.
2427
2428 1999-06-15  MORIOKA Tomohiko  <tomo@etl.go.jp>
2429
2430         * file-coding.c (reset_encoding_stream): Set 0 to
2431         `str->iso2022.current_char_boundary' in UTF2000.
2432         (encode_utf8): Don't define in UTF2000.
2433         (encode_coding_utf8): New implementation for UTF-8 representation
2434         of UTF2000.
2435         (complex_vars_of_file_coding): Define coding-system `utf-8'.
2436
2437 1999-06-15  MORIOKA Tomohiko  <tomo@etl.go.jp>
2438
2439         * mule.c (vars_of_mule): Provide `utf-2000' in UTF2000.
2440
2441         * mule-charset.h (BUFBYTE_FIRST_BYTE_P): Modify for UTF-8 in
2442         UTF2000.
2443         (REP_BYTES_BY_FIRST_BYTE): Likewise.
2444
2445         * buffer.h (non_ascii_valid_char_p): Don't define in UTF2000.
2446
2447         * mule-charset.c (non_ascii_set_charptr_emchar): Don't define
2448         local variables `lb', `c1', `c2' and `charset' in UTF2000; encode
2449         as UTF-8 in UTF2000.
2450         (non_ascii_charptr_emchar): Decode as UTF-8 in UTF2000.
2451         (non_ascii_valid_char_p): Don't define in UTF2000.
2452         (non_ascii_charptr_copy_char): Add case 5 and 6 in UTF2000.
2453         (Lstream_get_emchar_1): Likewise.
2454         (utf-2000-version): New variable in UTF2000.
2455
2456         * lread.c (read_escape): Add new reader `u'.
2457
2458         * insdel.c (three_to_one_table): Don't define in UTF2000.
2459         (bufpos_to_bytind_func): Use `buf->text->mule_size' instead of
2460         `buf->text->mule_shifter' and `buf->text->mule_three_p' in
2461         UTF2000.
2462         (bytind_to_bufpos_func): Likewise.
2463         (buffer_mule_signal_inserted_region): Likewise.
2464         (vars_of_insdel): Don't initialize `three_to_one_table'.
2465         (init_buffer_text): Use `buf->text->mule_size' instead of
2466         `buf->text->mule_shifter' and `buf->text->mule_three_p' in
2467         UTF2000.
2468
2469         * file-coding.c (DECODE_ADD_BINARY_CHAR): New implementation for
2470         UTF-8 representation in UTF2000.
2471         (DECODE_ADD_UCS_CHAR): New macro in UTF2000.
2472         (decode_ucs4): Use `DECODE_ADD_UCS_CHAR' in UTF2000.
2473         (decode_coding_iso2022): Don't define local variable `lb' in
2474         UTF2000; don't use LEADING_BYTE in UTF2000; use
2475         `DECODE_ADD_UCS_CHAR' in UTF2000.
2476         (convert_to_external_format): Decode as UTF-8 in UTF2000.
2477
2478         * config.h.in (UTF2000): New macro.
2479
2480         * buffer.h (struct buffer_text): Add new member `mule_size' and
2481         don't add `mule_shifter' and `mule_three_p' in UTF2000.
2482         (valid_char_p): Return always 1 in UTF2000.
2483         (MAX_EMCHAR_LEN): 6 in UTF2000.
2484         (three_to_one_table): Don't define in UTF2000.
2485         (real_bufpos_to_bytind): Modify for UTF-8 representation in
2486         UTF2000.
2487         (real_bytind_to_bufpos): Likewise.
2488
2489         * alloc.c (Fmake_string): Add case 5 and 6 for UTF2000.
2490
2491 1999-06-10  MORIOKA Tomohiko  <tomo@etl.go.jp>
2492
2493         * mule-charset.c (rep_bytes_by_first_byte): Modified for character
2494         representation change.
2495         (Vutf_2000_version): New variable.
2496         (leading_code_private_11): New variable.
2497         (syms_of_mule_charset): Add new variables `utf-2000-version' and
2498         `leading-code-private-11'.
2499
2500         * mule-charset.h (LEADING_BYTE_CHINESE_CCITT_GB): New macro.
2501         (LEADING_BYTE_CHINESE_BIG5_1): Changed to 0x96 temporally.
2502         (LEADING_BYTE_CHINESE_CNS11643_1): Changed to 0x97.
2503         (LEADING_BYTE_CHINESE_CNS11643_2): Changed to 0x98.
2504         (LEADING_BYTE_CHINESE_CNS11643_3): New macro.
2505         (LEADING_BYTE_CHINESE_CNS11643_4): Likewise.
2506         (LEADING_BYTE_CHINESE_CNS11643_5): Likewise.
2507         (LEADING_BYTE_CHINESE_CNS11643_6): Likewise.
2508         (LEADING_BYTE_CHINESE_CNS11643_7): Likewise [but not used].
2509         (LEADING_BYTE_CHINESE_BIG5_2): Changed to 0x9D temporally.
2510         (LEADING_BYTE_KOREAN_KPS9566): New macro [but not used].
2511         (CHAR_FIELD1_MASK): Changed to (0x7F << 14).
2512         (MIN_CHAR_GREEK): New macro.
2513         (MAX_CHAR_GREEK): New macro.
2514         (MIN_CHAR_CYRILLIC): New macro.
2515         (MAX_CHAR_CYRILLIC): New macro.
2516         (MIN_CHAR_HEBREW): New macro.
2517         (MAX_CHAR_HEBREW): New macro.
2518         (MIN_CHAR_THAI): New macro.
2519         (MAX_CHAR_THAI): New macro.
2520         (MIN_CHAR_HALFWIDTH_KATAKANA): New macro.
2521         (MAX_CHAR_HALFWIDTH_KATAKANA): New macro.
2522         (CHAR_FIELD2_INTERNAL): New macro [renamed from `CHAR_FIELD2'.
2523         (CHAR_FIELD3_INTERNAL): New macro [renamed from `CHAR_FIELD3'.
2524         (FIELD1_TO_PRIVATE_LEADING_BYTE): Changed to 0xc0.
2525         (FIELD1_TO_OFFICIAL_LEADING_BYTE): Changed to 0x50.
2526         (CHAR_FIELD2): New inline function.
2527         (CHAR_FIELD3): New inline function.
2528         (MULE_CHAR_PRIVATE_OFFSET): New macro.
2529         (MIN_CHAR_OFFICIAL_TYPE9N): Shifted to `MULE_CHAR_PRIVATE_OFFSET'.
2530         (MIN_CHAR_PRIVATE_TYPE9N): Likewise.
2531         (MIN_CHAR_PRIVATE_TYPE9NX9N): Likewise.
2532         (MIN_CHAR_OFFICIAL_TYPE9NX9N): Likewise.
2533         (MIN_CHAR_COMPOSITION): Likewise.
2534         (CHAR_LEADING_BYTE): Modified for character representation change.
2535         (MAKE_CHAR): Likewise.
2536
2537         * lisp.h (Vcharset_latin_iso8859_1): New variable.
2538         (Vcharset_greek_iso8859_7): Likewise.
2539         (Vcharset_cyrillic_iso8859_5): Likewise.
2540         (Vcharset_hebrew_iso8859_8): Likewise.
2541         (Vcharset_thai_tis620): Likewise.
2542         (Vcharset_katakana_jisx0201): Likewise.
2543
2544 2000-05-28  Martin Buchholz <martin@xemacs.org>
2545
2546         * XEmacs 21.2.34 is released.
2547
2548 2000-05-22  Jan Vroonhof  <vroonhof@math.ethz.ch>
2549
2550         * redisplay.c (VERTICAL_CLIP): No longer reset when updating line
2551         start cache.
2552         (updating_line_start_cache): Gone.
2553         (regenerate_window): Replace resetting of VERTICAL_CLIP by
2554         generic code to force a minimum of 1 line laid out in the
2555         CMOTION_DISP case.
2556
2557 2000-05-22  Jan Vroonhof  <vroonhof@math.ethz.ch>
2558
2559         * glyphs.c (instantiate_image_instantiator): Check for initialized
2560         height & width no longer special cases IMAGE_NOTHING.
2561         (nothing_instantiate): Set height and width of instance.
2562
2563 2000-05-24  Yoshiki Hayashi  <yoshiki@xemacs.org>
2564
2565         * unexelf.c (unexec): Search for ".data" section.
2566         Initialize new_data2_offset from old_data_index.
2567         Remove redundant check for ElfW.
2568
2569 2000-05-23  Andy Piper  <andy@xemacs.org>
2570
2571         * glyphs.c (get_image_instantiator_governing_domain): allow more
2572         specific domains as the governing domain rather than expecting an
2573         exact match. This fixes problems with layouts.
2574
2575 2000-05-22  Andy Piper  <andy@xemacs.org>
2576
2577         * redisplay-output.c (compare_runes): check for non-images
2578
2579         * glyphs.c (set_glyph_dirty_p): ditto.
2580         (update_glyph_cachel_data): ditto.
2581
2582         * glyphs-widget.c (layout_post_instantiate): ditto.
2583         (layout_post_instantiate): ditto.
2584
2585         * event-msw.c (mswindows_wnd_proc): warning removal.
2586
2587 2000-05-12  Craig Lanning  <CraigL@DyCon.com>
2588
2589         * s\mingw32.h: Added #undef for CLASH_DETECTION.
2590
2591         * syswindows.h: Moved PBS_SMOOTH definition to syscommctrl.h.
2592
2593         * syscommctrl.h (PBS_SMOOTH): Moved from syswindows.h.
2594
2595         * nt.c (rva_to_section): mingw32 needs rva_to_section.
2596         (mswindows_executable_type): mingw32 now has enough headers for
2597         this to work.
2598
2599 2000-05-20  Andy Piper  <andy@xemacs.org>
2600
2601         * console-msw.c (mswindows_output_last_error): ; -> ,
2602
2603 2000-05-12  Andy Piper  <andy@xemacs.org>
2604
2605         * console-msw.c (FROB): compare ints with ints.
2606
2607 2000-05-11  Andy Piper  <andy@xemacs.org>
2608
2609         * glyphs-x.c (x_finalize_image_instance): make minimal build
2610         happy.
2611
2612 2000-05-20  Ben Wing  <ben@xemacs.org>
2613
2614         * event-Xt.c:
2615         * event-Xt.c (vars_of_event_Xt):
2616         move modifier-keys-are-sticky to event-stream.c.
2617         
2618         * event-msw.c:
2619         * event-msw.c (mswindows_enqueue_mouse_button_event):
2620         * event-msw.c (key_needs_default_processing_p):
2621         * event-msw.c (XEMSW_LCONTROL):
2622         * event-msw.c (mswindows_handle_sticky_modifiers):
2623         * event-msw.c (FROB):
2624         * event-msw.c (clear_sticky_modifiers):
2625         * event-msw.c (output_modifier_keyboard_state):
2626         * event-msw.c (output_alt_keyboard_state):
2627         * event-msw.c (mswindows_wnd_proc):
2628         * event-msw.c (mswindows_modifier_state):
2629         * event-msw.c (emacs_mswindows_handle_magic_event):
2630         implement sticky modifiers.
2631         
2632         * event-stream.c:
2633         * event-stream.c (vars_of_event_stream):
2634         move modifier-keys-are-sticky here.
2635
2636         * lisp.h:
2637         add CHECK_FUNCTION.
2638         
2639         * rangetab.c:
2640         implement map-range-table.
2641
2642
2643 2000-05-17  Yoshiki Hayashi  <yoshiki@xemacs.org>
2644
2645         * redisplay-tty.c (reset_tty_modes):
2646         (tty_redisplay_shutdown): Adjust argument type to
2647         tty_frame_output_end.
2648
2649 2000-05-11  Yoshiki Hayashi  <yoshiki@xemacs.org>
2650
2651         * eval.c (Fbacktrace): Don't output a line with only right
2652         parenthesis.
2653
2654 2000-05-17  Kenji Itoh  <keit@tpj.co.jp>
2655
2656         * postgresql.c (Fpq_connect_poll): Replace `PS' with `polling_status'.
2657         (Fpq_reset_poll): Ditto.
2658
2659 2000-05-16  Katsumi Yamaoka  <yamaoka@jpl.org>
2660
2661         * redisplay-tty.c: Replace tty_output_end with tty_frame_output_end.
2662
2663 2000-05-16  Ben Wing  <ben@xemacs.org>
2664
2665         * buffer.c:
2666         * buffer.c (dfc_convert_to/from_internal_format):
2667         * buffer.c (reinit_vars_of_buffer):
2668         Fix conversion functions to allow reentrancy.
2669         
2670         * console-msw.c:
2671         * console-msw.c (mswindows_output_last_error):
2672         New fun, generally useful -- output a human-readable
2673         version of GetLastError() on the console.
2674         
2675         * console-msw.h:
2676         * console-msw.h (struct mswindows_frame):
2677         Changes for DeferWindowPos.  Declare mswindows_output_last_error().
2678         
2679         * console-stream.c (stream_output_begin):
2680         * console-stream.c (stream_output_end):
2681         * console-stream.c (stream_output_vertical_divider):
2682         * console-stream.c (stream_clear_region):
2683         * console-stream.c (stream_flash):
2684         * console-stream.c (console_type_create_stream):
2685         Delete blank stream methods, not needed.
2686         
2687         * console.h (struct console_methods):
2688         Split begin/end methods into window and frame.
2689         
2690         * event-msw.c:
2691         * event-msw.c (mswindows_handle_paint):
2692         * event-msw.c (output_alt_keyboard_state):
2693         * event-msw.c (mswindows_wnd_proc):
2694         * event-msw.c (vars_of_event_mswindows):
2695         Comment about problems with ignored-expose.
2696         Define mswindows-debug-events; not really implemented.
2697         
2698         * frame-msw.c (mswindows_init_frame_1):
2699         random cleanups.
2700         
2701         * glyphs-msw.c:
2702         * glyphs-msw.c (begin_defer_window_pos):
2703         * glyphs-msw.c (mswindows_unmap_subwindow):
2704         * glyphs-msw.c (mswindows_map_subwindow):
2705         * glyphs-msw.c (mswindows_resize_subwindow):
2706         Use DeferWindowPos to reduce flashing when mapping/unmapping.
2707         
2708         * glyphs.c (make_image_instance_1):
2709         Fix crash.
2710         
2711         * gutter.c (Fredisplay_gutter_area):
2712         Use new begin/end methods.
2713         
2714         * lisp.h (Dynarr_new2):
2715         New creation fun.
2716         
2717         * redisplay-msw.c:
2718         * redisplay-msw.c (mswindows_frame_output_begin):
2719         * redisplay-msw.c (mswindows_frame_output_end):
2720         * redisplay-msw.c (console_type_create_redisplay_mswindows):
2721         New begin/end methods -- handle DeferWindowPos.
2722         
2723         * redisplay-output.c (redisplay_move_cursor):
2724         * redisplay-output.c (redraw_cursor_in_window):
2725         * redisplay-output.c (redisplay_update_line):
2726         * redisplay-output.c (redisplay_output_window):
2727         New begin/end methods.
2728
2729         * redisplay-tty.c:
2730         * redisplay-tty.c (tty_frame_output_begin):
2731         * redisplay-tty.c (tty_frame_output_end):
2732         * redisplay-tty.c (console_type_create_redisplay_tty):
2733         New begin/end methods.
2734
2735         * redisplay-x.c:
2736         * redisplay-x.c (x_window_output_begin):
2737         * redisplay-x.c (x_window_output_end):
2738         * redisplay-x.c (console_type_create_redisplay_x):
2739         New begin/end methods.
2740
2741         * redisplay.c (redisplay_frame):
2742         * redisplay.c (Fredisplay_echo_area):
2743         New begin/end methods.
2744         use MAYBE_DEVMETH for clear_frame; it may not exist.
2745
2746         * window.h (WINDOW_XFRAME):
2747         WINDOW_XFOO macros -- get locale and decode struct pointer.
2748
2749
2750 2000-05-12  Ben Wing  <ben@xemacs.org>
2751
2752         * emacs.c:
2753         * emacs.c (ensure_no_quitting_from_now_on):
2754         * emacs.c (fatal_error_signal):
2755         * emacs.c (mswindows_handle_hardware_exceptions):
2756         * emacs.c (main):
2757         * emacs.c (Fkill_emacs):
2758         * emacs.c (shut_down_emacs):
2759         * emacs.c (assert_failed):
2760         various improvements in fatal error handling.
2761         
2762         * eval.c:
2763         move preparing_for_armageddon to emacs.c.
2764         
2765         * lisp.h:
2766         declare fatal_error_in_progress.
2767         
2768         * print.c:
2769         * print.c (std_handle_out_external):
2770         * print.c (std_handle_out_va):
2771         * print.c (stderr_out):
2772         * print.c (stdout_out):
2773         use console under mswin when no standard output.
2774         don't do code conversion during fatal error.
2775         
2776         * scrollbar.c (Fscrollbar_page_up):
2777         * scrollbar.c (Fscrollbar_page_down):
2778         fix missing else.  reindent.
2779
2780 2000-05-11  Jan Vroonhof  <vroonhof@math.ethz.ch>
2781
2782         Emergency fix.  
2783         
2784         * glyphs.h (GLYPH_CACHEL_DESCENT): 
2785         (GLYPH_CACHEL_DESCENT): 
2786         (GLYPH_CACHEL_DESCENT): 
2787         * glyphs.h (GLYPH_CACHEL_ASCENT): Match parameters to variables
2788         used in case these are inline functions.
2789         Use more absurd values to error check.
2790
2791         include window.h for error check functions.
2792
2793 2000-05-11  Ben Wing  <ben@xemacs.org>
2794
2795         * cmdloop.c (Freally_early_error_handler):
2796         Display message box under windows; otherwise, message will disappear
2797         before it can be viewed.
2798
2799         * console-msw.c:
2800         * console-msw.c (Fmswindows_message_box):
2801         * console-msw.c (FROB):
2802         * console-msw.c (syms_of_console_mswindows):
2803         Define new fun `mswindows-message-box'.
2804         #### I will merge this into `popup-dialog-box'; just give me
2805         a bit of time.
2806         
2807         * general.c:
2808         * general.c (syms_of_general):
2809         Some new symbols used in `mswindows-message-box'.
2810         
2811         * glyphs.c:
2812         * glyphs.c (Fset_image_instance_property):
2813         put warning in this fun.
2814         
2815         * glyphs.h:
2816         * glyphs.h (GLYPH_CACHEL_WIDTH):
2817         * glyphs.h (GLYPH_CACHEL_ASCENT):
2818         * glyphs.h (GLYPH_CACHEL):
2819         * glyphs.h (GLYPH_CACHEL_GLYPH):
2820         define error-checking versions to try to catch a bug i've seen --
2821         redisplay gets in an infinite loop because the glyph width of the
2822         continuation glyph is 65535.
2823         
2824         * lisp.h:
2825         Extern message-box stuff.
2826
2827         * window.c (allocate_window):
2828         * window.c (make_dummy_parent):
2829         * window.c (Fset_window_configuration):
2830         Use EQUAL not EQ for subwindow caches to make them work a bit
2831         better. (Something is still very broken.)
2832         
2833
2834 2000-05-11  Yoshiki Hayashi  <yoshiki@xemacs.org>
2835
2836         * glyphs.c (image_instantiate): Suppress gcc warnings.
2837         (Fmake_image_instance): Fix doc string.
2838         * specifier.c (Fmake_specifier): Ditto.
2839
2840 2000-05-02  Yoshiki Hayashi  <yoshiki@xemacs.org>
2841
2842         * paths.h.in (PATH_LOCK): Removed.
2843         * config.h.in (LOCKDIR_USER_DEFINED): Removed.
2844         * emacs.c (complex_vars_of_emacs): Remove configure-lock-directory.
2845
2846 2000-05-08  Yoshiki Hayashi  <yoshiki@xemacs.org>
2847
2848         * fns.c (Ffeaturep): Update e-mail address in doc-string.
2849         Document (featurep '(and xemacs 21.02)).
2850
2851 2000-05-09  Ben Wing  <ben@xemacs.org>
2852
2853         * buffer.c (complex_vars_of_buffer):
2854         update modeline-format doc.
2855         
2856         * device.h:
2857         comment about how DFW_DEVICE should be merged with DOMAIN_DEVICE.
2858         
2859         * emacs.c:
2860         timeline of all released versions of Emacs, for use in creating
2861         authorship comments and in synching up.
2862         
2863         * glyphs-widget.c (image_instantiator_buttons):
2864         * glyphs-widget.c (image_instantiator_edit_fields):
2865         * glyphs-widget.c (image_instantiator_combo_box):
2866         * glyphs-widget.c (image_instantiator_scrollbar):
2867         * glyphs-widget.c (image_instantiator_progress_guage):
2868         * glyphs-widget.c (image_instantiator_tree_view):
2869         * glyphs-widget.c (image_instantiator_tab_control):
2870         * glyphs-widget.c (image_instantiator_labels):
2871         * glyphs-widget.c (image_instantiator_layout):
2872         * glyphs-widget.c (image_instantiator_native_layout):
2873         rename decode_domain method to governing_domain.
2874         
2875         * glyphs.c:
2876         * glyphs.c (Fvalid_image_instantiator_format_p): doc update.
2877         * glyphs.c (add_entry_to_device_ii_format_list):
2878         make sure we don't put an entry more than once into the list.
2879         * glyphs.c (check_instance_cache_mapper):
2880         *************************************************************
2881         allow for nil.  THIS SHOULD FIX A REAL CRASH THAT MANY PEOPLE
2882         HAVE BEEN GETTING.
2883         *************************************************************
2884         * glyphs.c (get_image_instantiator_governing_domain):
2885         clean up, expand on new concept of governing domain.
2886         * glyphs.c (instantiate_image_instantiator):
2887         * glyphs.c (allocate_image_instance):
2888         use governing_domain instead of cache_domain in naming.
2889         * glyphs.c (Fvalid_image_instance_type_p): fix docs.
2890         * glyphs.c (make_image_instance_1):
2891         * glyphs.c (Fmake_image_instance):
2892         allow for any domain (not just device), and process the
2893         governing domain correctly.  very big doc fix.
2894         * glyphs.c (Fimage_instance_domain):
2895         new primitive, to retrieve the governing domain of an image instance.
2896         * glyphs.c (image_instantiate):
2897         use new governing_domain stuff.  this fixes a crash you could get
2898         by instantiating certain widget glyphs in frame locales. (should
2899         signal an error instead of crashing.)
2900         * glyphs.c (Fimage_specifier_p): move doc to make-image-specifier.
2901         * glyphs.c (Fglyphp): clean up doc.
2902         * glyphs.c (subwindow_governing_domain): renamed from *_decode_domain.
2903         * glyphs.c (syms_of_glyphs):
2904         declare Fimage_instance_domain, remove unused Qlayout_image_instance_p.
2905         * glyphs.c (image_instantiator_format_create): add some comments about
2906         bogus code.
2907         * glyphs.c (specifier_vars_of_glyphs): totally rewrite the doc string
2908         for current-display-table. (Apparently Hrjove implemented in 1998 a
2909         design I wrote up in 1996, but didn't update the doc string.)
2910         
2911         * glyphs.h: clean up a doc string.
2912         * glyphs.h (governing_domain):
2913         * glyphs.h (struct image_instantiator_methods):
2914         changes for governing_domain stuff.
2915         
2916         * gutter.c:
2917         * gutter.c (Fgutter_specifier_p):
2918         * gutter.c (Fgutter_size_specifier_p):
2919         * gutter.c (Fgutter_visible_specifier_p):
2920         * objects.c:
2921         * objects.c (Fcolor_specifier_p):
2922         * objects.c (Ffont_specifier_p):
2923         * objects.c (Fface_boolean_specifier_p):
2924         doc strings moved to make-*-specifier.
2925         
2926         * redisplay.c (add_disp_table_entry_runes_1):
2927         * redisplay.c (generate_fstring_runes):
2928         * redisplay.c (screen):
2929         add random comments and doc strings.
2930         
2931         * specifier.c:
2932         * specifier.c (Fmake_specifier):
2933         major overhaul of this doc string.
2934         
2935         * specifier.c (Fvalid_specifier_domain_p):
2936         comment about the bogosity of image instances being domains.
2937         * specifier.c (decode_domain):
2938         now non-static, used in glyphs.c.
2939         * specifier.c (specifier_instance):
2940         comment about the bogosity of image instances being domains.
2941         * specifier.c (Fgeneric_specifier_p):
2942         move doc string to make-generic-specifier.
2943         * specifier.c (VALID_SINGLE_DISPTABLE_INSTANTIATOR_P):
2944         rebackslashify.
2945         
2946         * specifier.h:
2947         * specifier.h (DOMAIN_FRAME):
2948         * specifier.h (DOMAIN_LIVE_P):
2949         * specifier.h (DOMAIN_XDEVICE):
2950         rebackslashify.
2951         add comments about problems with these macros.
2952         prototype for decode_domain.
2953         
2954         * toolbar.c:
2955         * toolbar.c (Ftoolbar_specifier_p):
2956         move doc string to `make-toolbar-specifier'.
2957         
2958         * window.c (window_unmap_subwindows_cache_mapper):
2959         *************************************************************
2960         allow for nil.  THIS SHOULD FIX A REAL CRASH THAT MANY PEOPLE
2961         HAVE BEEN GETTING.
2962         *************************************************************
2963
2964 2000-05-09  Andy Piper  <andy@xemacs.org>
2965
2966         * glyphs.h: declare reset_frame_subwindow_instance_cache.
2967
2968         * window.c (Fset_window_configuration): reset the frame subwindow
2969         cache and re-initialize the window subwindow caches.
2970
2971         * glyphs.c (reset_frame_subwindow_instance_cache): new function.
2972
2973 2000-05-09  Ben Wing  <ben@xemacs.org>
2974
2975         * ntheap.c (recreate_heap): Changed unknown (VC6 only?) SIZE_T to
2976         DWORD.
2977
2978 2000-04-26  Mike Woolley  <mike@bulsara.com>
2979
2980         * ntheap.c: Changed recreate_heap to limit the amount reserved
2981         for the heap to that which is actually available. Also now
2982         displays a message box (with some dignostics) in the event that
2983         it still can't start.
2984
2985 2000-05-07  Jan Vroonhof  <vroonhof@math.ethz.ch>
2986
2987         * callproc.c (Fold_call_process_internal): GCPRO path
2988
2989 2000-05-08  Jan Vroonhof  <jan@xemacs.org>
2990
2991         Patch by Bill Perry.
2992         
2993         * scrollbar.c (Fscrollbar_page_up): Conditionalize on type of call 
2994         back data instead of #ifdef.
2995         (Fscrollbar_page_down): ditto.
2996
2997 2000-05-07  Ben Wing  <ben@xemacs.org>
2998
2999         * buffer.h:
3000         Kludge for defining Qmswindows_tstr.
3001         
3002         * nt.c:
3003         * nt.c (open_input_file):
3004         * nt.c (open_output_file):
3005         * nt.c (rva_to_section):
3006         * nt.c (mswindows_executable_type):
3007         Move all memory-mapped-file routines here (some were in unexnt.c,
3008         which is bad because they are used by process-nt.c, and unexnt
3009         won't be around when portable dumping).  Synched the above routines
3010         with FSF 20.6.
3011         
3012         * nt.h:
3013         Removed ifdef'd out bogus code.
3014         Fixed some prototypes.
3015         
3016         * nt.h (file_data):
3017         * nt.h (OFFSET_TO_RVA):
3018         * nt.h (RVA_TO_OFFSET):
3019         * nt.h (RVA_TO_PTR):
3020         Moved the memory-mapped-file structures, macros and prototypes
3021         here, to parallel nt.c.  ntheap.h should really be removed
3022         entirely, and it's a non-portable-dumper specific file.
3023         
3024         * ntheap.h (round_to_next):
3025         Moved the memory-mapped-file structures, macros and prototypes
3026         to nt.h.
3027
3028         * ntproc.c (compare_env):
3029         Moved rva_to_section and mswindows_executable_type to nt.c.
3030         Moved compare_env to process-nt.c.
3031         ntproc.c will die, one day.
3032
3033         * ntproc.c (sys_spawnve):
3034         Account for win32_ -> mswindows_.
3035
3036         * process-nt.c:
3037         * process-nt.c (struct nt_process_data):
3038         * process-nt.c (ensure_console_window_exists):
3039         * process-nt.c (compare_env):
3040         * process-nt.c (nt_create_process):
3041         * process-nt.c (nt_kill_process_by_pid):
3042         * process-nt.c (syms_of_process_nt):
3043         * process-nt.c (vars_of_process_nt):
3044         Introduce variable `mswindows-quote-process-args', from FSF 20.6.
3045         Copy argument quoting code from FSF 20.6 (with appropriate Mule-ization
3046         changes).  Eliminate our old `nt-quote-process-args' mechanism.
3047         Synch up nt_create_process with FSF 20.6 sys_spawnve.
3048         Move compare_env here from ntproc.c.
3049         
3050         * process.c (Fprocess_send_region):
3051         Takes an optional fourth argument, BUFFER, which should fix some
3052         problems with call-process.
3053         
3054         * syscommctrl.h:
3055         Move ICC_BAR_CLASSES here from syswindows.h, to avoid a warning.
3056         
3057         * syswindows.h:
3058         Move ICC_BAR_CLASSES to syscommctrl.h.
3059         Add preliminary macros for MSWindows/Mule.  More to come.
3060
3061         * unexnt.c:
3062         * unexnt.c (unexec):
3063         open_output_file moved to nt.c.
3064
3065
3066 2000-05-05  Andy Piper  <andy@xemacs.org>
3067
3068         * window.c (window_unmap_subwindows_cache_mapper): remove the dead
3069         instance from the frame cache also since GC may catch up too late
3070         to make frame deletion sane.
3071
3072 2000-05-04  Andy Piper  <andy@xemacs.org>
3073
3074         * glyphs-x.c (x_widget_instantiate): gcpro widget callbacks.
3075         (x_finalize_image_instance): ungcpro on deletion.
3076
3077         * glyphs.c (image_instantiator_format_create): give pointers a
3078         query geometry method so that the geometry is at least set.
3079
3080         * glyphs-x.c (image_instantiator_format_create_glyphs_x): only
3081         initialize layouts if using widgets.
3082
3083 2000-05-03  Andy Piper  <andy@xemacs.org>
3084
3085         * nt.c: remove bogus reference to sysmmsystem.h
3086
3087         * gui-x.c (popup_selection_callback): fix no selection abort.
3088
3089 2000-05-02  Andy Piper  <andy@xemacs.org>
3090
3091         * glyphs-msw.c (mswindows_update_widget): cope with nil text.
3092         (mswindows_widget_instantiate): ditto.
3093
3094         * glyphs-widget.c (initialize_widget_image_instance): initialize
3095         children correctly.
3096         (widget_instantiate): cope with children and items in the same
3097         instance.
3098
3099         * glyphs.c (mark_image_instance): cope with children as a first
3100         class member.
3101         (image_instance_equal): ditto.
3102         (image_instance_hash): ditto.
3103         (image_instance_changed): ditto.
3104
3105 2000-04-30  Andy Piper  <andy@xemacs.org>
3106
3107         * glyphs.c (subwindow_query_geometry): new function. Return some
3108         defaults.
3109         (subwindow_instantiate): don't assign dimensions if none have been
3110         given.
3111         (image_instantiator_format_create): add subwindow_query_geometry.
3112         (print_image_instance): cope with layouts as widgets.
3113
3114 2000-04-29  Andy Piper  <andy@xemacs.org>
3115
3116         * frame.c (delete_frame_internal): call
3117         free_frame_subwindow_instance_cache so that all subwindows are
3118         finalized before their parent.
3119         (mark_frame): remove subwindow_cachels.
3120         (Fmake_frame): remove subwindow_cachel manipulation.
3121         (allocate_frame_core): subwindow_instance_cache is a weak list.
3122         (delete_frame_internal): set subwindow_instance_cache to nil.
3123
3124         * glyphs-msw.c (mswindows_finalize_image_instance): make double
3125         finalization safe.
3126         (mswindows_finalize_image_instance): use the device
3127         not the domain as the domain may have died already.
3128
3129         * glyphs-x.c (x_finalize_image_instance): ditto.
3130         (x_subwindow_instantiate): remove SUBWINDOW_WIDTH &
3131         HEIGHT.
3132
3133         * redisplay-output.c (redisplay_unmap_subwindows): update for
3134         subwindow instance cache as a weak list.
3135         (redisplay_unmap_subwindows_maybe): ditto.
3136         (redisplay_unmap_subwindows_except_us): ditto.
3137
3138         * glyphs.c (unmap_subwindow): error checking will check the domain
3139         so don't deal with it here. Don't use cachels anymore.
3140         (map_subwindow): ditto.
3141         (update_subwindow_cachel_data): remove old accessor names.
3142         (subwindow_instantiate): remove SUBWINDOW_WIDTH & HEIGHT.
3143         (Fresize_subwindow): don't update cachel.
3144         (mark_subwindow_cachels):
3145         (update_subwindow_cachel_data):
3146         (add_subwindow_cachel):
3147         (get_subwindow_cachel_index):
3148         (update_subwindow_cachel):
3149         (reset_subwindow_cachels):
3150         (mark_subwindow_cachels_as_not_updated): deleted.
3151         (cache_subwindow_instance_in_frame_maybe): new function. Add a
3152         subwindow instance to the frame cache.
3153         (find_matching_subwindow): update for subwindow instance cache as
3154         a weak list.
3155         (update_widget_instances): ditto.
3156         (image_instance_type_to_mask):inlined.
3157         (free_frame_subwindow_instance_cache): new function. finalize all
3158         subwindows that are instantiated.
3159
3160         * glyphs.h (struct Lisp_Image_Instance): add display_data instead
3161         of cachel information.
3162         (IMAGE_INSTANCE_DISPLAY_X):
3163         (IMAGE_INSTANCE_DISPLAY_Y):
3164         (IMAGE_INSTANCE_DISPLAY_WIDTH):
3165         (IMAGE_INSTANCE_DISPLAY_HEIGHT):
3166         (XIMAGE_INSTANCE_DISPLAY_X):
3167         (XIMAGE_INSTANCE_DISPLAY_Y):
3168         (XIMAGE_INSTANCE_DISPLAY_WIDTH):
3169         (XIMAGE_INSTANCE_DISPLAY_HEIGHT): new accessors.  
3170         remove subwindow_cachel structure and function references.
3171         (image_instance_type_to_mask): inline from glyphs.c
3172
3173         * redisplay.c (redisplay_frame): remove subwindow_cachel
3174         references.
3175
3176         * frame.h (struct frame): remove subwindow_cachels.
3177         (FRAME_SUBWINDOW_CACHE): access subwindow_instance_cache.
3178
3179         * frameslots.h: add subwindow_instance_cache.
3180
3181         * window.c (replace_window): check subwindow cache of replacement.
3182         (window_unmap_subwindows_cache_mapper):
3183         (window_unmap_subwindows): new functions. Unmap all subwindows
3184         cached on this window.
3185         (mark_window_as_deleted): unmap all subwindows.
3186
3187 2000-04-27  Andy Piper  <andy@xemacs.org>
3188
3189         * glyphs.h (IIFORMAT_METH_OR_GIVEN): cope with null meths.
3190
3191         * glyphs-widget.c (widget_layout): return something.
3192         (layout_layout): return something. Fail if not intialized.
3193         (layout_query_geometry): ditto.
3194         (image_instantiator_native_layout): new function. Initialized the
3195         native layout type.
3196         (widget_instantiate): don't do layout stuff here.
3197
3198         * glyphs.c (instantiate_image_instantiator): reorded calling or
3199         instantiate and post_instantiate with layout in between.
3200         (image_instance_layout): be more selective about deciding whether
3201         the layout has been done or not.
3202
3203         * glyphs.h (struct image_instantiator_methods): return a value
3204         from layout_method.
3205
3206 2000-04-26  Andy Piper  <andy@xemacs.org>
3207
3208         * glyphs.c (allocate_image_instance): make initial width and
3209         height unspecified. Set initialized to 0.
3210
3211         * syscommctrl.h new file. Encapsulates commctrl.h.
3212
3213         * syswindows.h new file. Encapsulates windows.h.
3214
3215         * ntplay.c: use new syswindows.h and syscommctrl.h header.
3216         * nt.c: ditto.
3217         * console-msw.h: ditto.
3218         
3219         * redisplay-tty.c (tty_output_display_block): remove layout references.
3220
3221         * glyphs-msw.c (mswindows_widget_instantiate): use the domain
3222         window handle rather than just the frame.
3223
3224         * glyphs.c (mark_image_instance): remove layout references.
3225         (print_image_instance): ditto.
3226         (image_instance_equal): ditto.
3227         (image_instance_hash): ditto.
3228         (decode_image_instance_type): ditto.
3229         (encode_image_instance_type): ditto.
3230         (image_instantiate): ditto.
3231         (allocate_glyph): ditto.
3232         (Fimage_instance_height): ditto.
3233         (Fimage_instance_width): ditto.
3234         (update_subwindow): ditto.
3235
3236         * redisplay-x.c (x_output_display_block): recode for layouts as
3237         widgets.
3238
3239         * redisplay-output.c (redisplay_output_layout): recode for layouts
3240         as widgets.
3241         (compare_runes): remove layout references.
3242
3243         * redisplay-msw.c (mswindows_output_display_block): recode for
3244         layouts as widgets.
3245
3246         * glyphs-widget.c (image_instantiator_layout): remove
3247         layout_possible_dest_types.
3248         (layout_possible_dest_types): deleted.
3249
3250         * glyphs.h (image_instance_type): remove layout references.
3251         (struct Lisp_Image_Instance): ditto. Add initialized flag.
3252         (IMAGE_INSTANCE_INITIALIZED): new accessor.
3253         (XIMAGE_INSTANCE_INITIALIZED): ditto.
3254         
3255 2000-04-25  Andy Piper  <andy@xemacs.org>
3256
3257         * glyphs-widget.c (image_instantiator_buttons):
3258         (image_instantiator_edit_fields):
3259         (image_instantiator_combo_box):
3260         (image_instantiator_scrollbar):
3261         (image_instantiator_progress_guage):
3262         (image_instantiator_tree_view):
3263         (image_instantiator_tab_control):
3264         (image_instantiator_labels):
3265         (image_instantiator_layout): call default post_instantiate method.
3266         (widget_post_instantiate): new function. Simply lays out the
3267         widgets.
3268
3269         * glyphs.h (struct image_instantiator_methods): add
3270         post_instantiate method.
3271
3272         * glyphs.c (instantiate_image_instantiator): add post_instantiate
3273         method calls.
3274
3275 2000-04-23  Andy Piper  <andy@xemacs.org>
3276
3277         * glyphs.h (struct image_instantiator_methods): add
3278         decode_domain_method.
3279         (struct Lisp_Image_Instance): remove subwindow frame - it can be
3280         derived from the domain.
3281         (IMAGE_INSTANCE_FRAME): new accessor.
3282         (XIMAGE_INSTANCE_FRAME): ditto.
3283
3284         * glyphs.c (print_image_instance): use IMAGE_INSTANCE_FRAME
3285         instead of _SUBWINDOW_FRAME.
3286         (finalize_image_instance): ditto.
3287         (Fimage_instance_foreground): ditto.
3288         (Fimage_instance_background): ditto.
3289         (image_instantiate): ditto.
3290         (update_subwindow_cachel): ditto.
3291         (update_subwindow): ditto.
3292         (unmap_subwindow): ditto.
3293         (map_subwindow): ditto
3294         (subwindow_instantiate): ditto.
3295         * glyphs-msw.c (mswindows_update_widget): ditto.
3296         (mswindows_progress_gauge_instantiate): ditto.
3297         (mswindows_tab_control_update): ditto.
3298         * glyphs-x.c (x_update_widget): ditto.
3299         (x_widget_instantiate): ditto.
3300         (x_tab_control_instantiate): ditto.
3301         (x_tab_control_update): ditto.
3302         * event-msw.c (mswindows_wnd_proc): ditto
3303
3304         * glyphs-widget.c (image_instantiator_layout): use
3305         subwindow_decode_domain.
3306         (image_instantiator_buttons): ditto.
3307         (image_instantiator_edit_fields): ditto.
3308         (image_instantiator_combo_box): ditto.
3309         (image_instantiator_scrollbar): ditto.
3310         (image_instantiator_progress_guage): ditto.
3311         (image_instantiator_tree_view): ditto.
3312         (image_instantiator_tab_control): ditto.
3313         (image_instantiator_labels): ditto.
3314         (image_instantiator_layout): ditto.
3315
3316         * glyphs.c: add instance error checking to many functions.
3317         (instantiate_image_instantiator): decode device from cache_domain.
3318         (image_instantiate): partially rewrite by using
3319         decode_image_instantiator_domain to determine what domain the
3320         instance needs to be cached in.
3321         (decode_image_instantiator_domain): new function. Determine what
3322         domain the image needs to be cached in.
3323         (check_window_subwindow_cache): new error checking function.
3324         (check_instance_cache_mapper): ditto.
3325         (check_image_instance_structure): ditto.
3326         (subwindow_decode_domain): new function. Encodes a window as a
3327         subwindow's cache domain.
3328         (image_instantiator_format_create): use it for text and
3329         subwindows.
3330
3331 2000-04-21  Andy Piper  <andy@xemacs.org>
3332
3333         * glyphs.c (image_instance_device): new function.
3334         (image_instance_frame): new function.
3335         (image_instance_window): new function.
3336         (image_instance_live_p): new function.
3337
3338         * window.c (mark_window_as_deleted): reset the subwindow_instance_
3339         cache to nil.
3340
3341         * glyphs.h (struct Lisp_Image_Instance): device->domain.
3342         (IMAGE_INSTANCE_DOMAIN): new accessor.
3343         (XIMAGE_INSTANCE_DOMAIN): ditto.
3344
3345         * glyphs-x.c (x_finalize_image_instance): device->domain.
3346
3347         * glyphs-msw.c (init_image_instance_geometry): device->domain.
3348         (mswindows_finalize_image_instance): ditto.
3349
3350         * glyphs-eimage.c (jpeg_instantiate): device->domain.
3351         (gif_instantiate): ditto.
3352         (png_instantiate): ditto.
3353         (tiff_instantiate): ditto.
3354
3355         * glyphs.c (instantiate_image_instantiator): use domain rather
3356         than device.
3357         (mark_image_instance): device -> domain.
3358         (print_image_instance): ditto.
3359         (finalize_image_instance): ditto.
3360         (image_instance_equal): ditto.
3361         (allocate_image_instance): ditto.
3362         (Fcolorize_image_instance): ditto.
3363         (query_string_geometry): ditto.
3364         (image_instantiate): ditto
3365         (query_string_font): ditto.
3366         (image_instantiate): ditto.
3367         (update_subwindow): ditto.
3368         (unmap_subwindow): ditto.
3369         (map_subwindow): ditto.
3370         (subwindow_instantiate): ditto.
3371
3372         * specifier.h (DOMAIN_DEVICE): new, semantically correct, decoder.
3373         (DOMAIN_FRAME): ditto.
3374         (DOMAIN_WINDOW): ditto.
3375         (DOMAIN_LIVE_P): ditto.
3376         (XDOMAIN_DEVICE): ditto.
3377         (XDOMAIN_FRAME): ditto.
3378         (XDOMAIN_WINDOW): ditto.
3379
3380         * specifier.c (Fvalid_specifier_domain_p): add image instances as
3381         a valid specifier domain.
3382
3383 2000-04-19  Andy Piper  <andy@xemacs.org>
3384
3385         * glyphs-widget.c (syms_of_glyphs_widget): remove
3386         widget-callback-current-channel.
3387         (vars_of_glyphs_widget): ditto.
3388         * glyphs.h: ditto
3389
3390         * gui.c (get_gui_callback): revert to previous behaviour.
3391
3392 2000-04-18  Andy Piper  <andy@xemacs.org>
3393
3394         * glyphs.h (struct Lisp_Image_Instance): add margin_width.
3395         (IMAGE_INSTANCE_MARGIN_WIDTH): new.
3396         (XIMAGE_INSTANCE_MARGIN_WIDTH): new.
3397
3398         * glyphs.c (image_instance_equal): add margin_width.
3399         (image_instance_hash): ditto.
3400
3401         * glyphs-widget.c (widget_instantiate): deal with margin-width.
3402         (layout_query_geometry): ditto.
3403         (layout_layout): ditto.
3404         (syms_of_glyphs_widget): add margin-width.
3405         (image_instantiator_layout): allow margin-width.
3406
3407         * glyphs.c (update_widget_instances): make a normal function.
3408         (syms_of_glyphs): remove Qupdate_widget_instances.
3409         * glyphs.h: ditto.
3410
3411         * gui-x.c (popup_selection_callback): use enqueue_magic_eval_event
3412         so that we don't corrupt ideas about the last event or
3413         command. Remove widget-callback-current-channel fiddling.
3414         * gui-msw.c (mswindows_handle_gui_wm_command): ditto.
3415
3416 2000-05-01  Martin Buchholz <martin@xemacs.org>
3417
3418         * XEmacs 21.2.33 is released.
3419
3420 2000-05-01  Yoshiki Hayashi  <yoshiki@xemacs.org>
3421
3422         * make-src-depend: Allow dots in header file name.
3423
3424 2000-05-01  Yoshiki Hayashi  <yoshiki@xmacs.org>
3425
3426         * mule-charset.h (struct charset_lookup): Add
3427         next_allocated_1_byte_leading_byte and
3428         next_allocated_2_byte_leading_byte.
3429         * mule-charset.c: Move above two variables so that those values
3430         will be dumped.
3431
3432 2000-04-26  Yoshiki Hayashi  <yoshiki@xemacs.org>
3433
3434         * insdel.c (find_charsets_in_bufbyte_string): Add Vcharset_ascii
3435         when string length is zero.
3436         (find_charsets_in_emchar_string): Ditto.
3437
3438 2000-04-29  Bjrn Torkelsson  <torkel@hpc2n.umu.se>
3439
3440         * lisp.h: extern Qdialog and Qmenubar.
3441
3442         * gui-x.c: added events.h.
3443                 also fixed typo which made the file uncompilable.
3444
3445         * general.c: Added Qmenubar and Qdialog
3446
3447 2000-04-28  Ben Wing  <ben@xemacs.org>
3448
3449         * frame-msw.c (mswindows_init_frame_1):
3450         * frame-msw.c (mswindows_mark_frame):
3451         * event-msw.c (mswindows_enqueue_dispatch_event):
3452         * console-msw.h:
3453         * console-msw.h (struct mswindows_frame):
3454         * console-msw.h (FRAME_MSWINDOWS_WIDGET_HASH_TABLE1):
3455         there are now three hash tables for callbacks.
3456         mswindows_enqueue_dispatch_event is no longer static.
3457         
3458         * dialog-x.c (maybe_run_dbox_text_callback):
3459         * dialog-x.c (dbox_descriptor_to_widget_value):
3460         switch to new cons3 form for callbacks.
3461         
3462         * glyphs-msw.c (mswindows_register_gui_item):
3463         * glyphs-msw.c (mswindows_widget_instantiate):
3464         * glyphs-msw.c (add_tree_item):
3465         * glyphs-msw.c (add_tab_item):
3466         new image instance parameter, so it can be passed to callback-ex.
3467         respect :callback-ex as well as :callback.
3468         
3469         * glyphs-widget.c (VALID_GUI_KEYWORDS):
3470         add :callback-ex.
3471         
3472         * glyphs.c (print_image_instance):
3473         prettify, e.g. now prints widget type.
3474         
3475         * gui-x.h:
3476         certain funs have new image instance parameter.
3477         
3478         * gui.c:
3479         * gui.c (get_gui_callback):
3480         * gui.c (gui_item_add_keyval_pair):
3481         * gui.c (gui_item_init):
3482         * gui.c (gui_add_item_keywords_to_plist):
3483         * gui.c (mark_gui_item):
3484         * gui.c (gui_item_hash):
3485         * gui.c (gui_item_equal):
3486         * gui.c (copy_gui_item):
3487         * gui.c (syms_of_gui):
3488         recognize callback-ex in a number of places.
3489         also, fix the annoying "can't get out of yes-no dialog" bug.
3490         
3491         * gui.h:
3492         * gui.h (struct Lisp_Gui_Item):
3493         recognize callback-ex in a number of places.
3494
3495         * menubar-x.c (menu_item_descriptor_to_widget_value_1):
3496         new parameter in button_item_to_widget_value.
3497         
3498         * glyphs-x.c (x_update_widget):
3499         * glyphs-x.c (x_button_instantiate):
3500         * glyphs-x.c (x_button_update):
3501         * glyphs-x.c (x_progress_gauge_instantiate):
3502         * glyphs-x.c (x_edit_field_instantiate):
3503         * glyphs-x.c (x_combo_box_instantiate):
3504         * glyphs-x.c (x_tab_control_instantiate):
3505         * glyphs-x.c (x_label_instantiate):
3506         new image instance parameter in various places.
3507         
3508         * event-Xt.c:
3509         * event-Xt.c (enqueue_Xt_dispatch_event):
3510         this fun gets exported.
3511         
3512         * gui-msw.c:
3513         * gui-msw.c (mswindows_handle_gui_wm_command):
3514         handle both :callback and :callback-ex, and generate our own
3515         event because it's one of the callback-ex arguments.
3516         
3517         * gui-x.c:
3518         * gui-x.c (popup_selection_callback):
3519         handle both :callback and :callback-ex, and generate our own
3520         event because it's one of the callback-ex arguments.
3521         * gui-x.c (button_item_to_widget_value):
3522         * gui-x.c (gui_items_to_widget_values_1):
3523         * gui-x.c (gui_item_children_to_widget_values):
3524         * gui-x.c (gui_items_to_widget_values):
3525         new image instance parameter in various places.
3526
3527         * fns.c (Freplace_list):
3528         fix small typo in doc string.
3529         
3530         * lisp.h:
3531         declare enqueue_Xt_dispatch_event.
3532
3533 2000-04-28  Ben Wing  <ben@xemacs.org>
3534
3535         * buffer.c:
3536         * buffer.c (Frecord_buffer):
3537         * buffer.c (syms_of_buffer):
3538         delete record-buffer-hook.
3539         
3540         * fns.c:
3541         * fns.c (Freplace_list):
3542         * fns.c (syms_of_fns):
3543         new primitive replace-list.
3544         
3545         * frameslots.h:
3546         slot for old buffer-alist.
3547         
3548         * lisp.h:
3549         exfun replace-list.
3550         
3551         * redisplay.c:
3552         * redisplay.c (redisplay_frame):
3553         * redisplay.c (syms_of_redisplay):
3554         * redisplay.c (vars_of_redisplay):
3555         new hook buffer-list-changed-hook.
3556         call it.
3557
3558 2000-04-27  Ben Wing  <ben@xemacs.org>
3559
3560         * extents.h: extern in_modeline_generation.
3561
3562         * redisplay.c (generate_formatted_string_db): set
3563         in_modeline_generation.
3564
3565         * extents.c (extent_changed_for_redisplay): don't mark redisplay
3566         flags if in modeline generation.  otherwise frame-modified-tick
3567         is ticked far too often.
3568         Declare in_modeline_generation.
3569
3570 2000-04-26  Ben Wing  <ben@xemacs.org>
3571
3572         * emacs.c (vars_of_emacs): document quick-build "error-checking"
3573         option.
3574         (vars_of_emacs): add quick-build as an error-checking option.
3575         A bit kludgy, but there doesn't seem much point in creating
3576         a real var for this.
3577
3578         * config.h.in: put in an entry for QUICK_BUILD; remove NO_DOC_FILE.
3579
3580 2000-04-14  IKEYAMA Tomonori  <tomonori@suiyokai.org>
3581
3582         * redisplay.h (struct display_line): Add a new variable,
3583         line_continuation.
3584
3585         * redisplay.c (create_text_block): Set dl->line_continuation if
3586         the line continues.
3587         (create_string_text_block): Ditto.
3588         (regenerate_window_incrementally): Use line_continuation instead
3589         of searching continuation glyph.
3590         (add_margin_runes): Call add_glyph_rune.
3591         (add_glyph_rune): Handle margin glyph.
3592
3593 2000-04-20  Martin Buchholz  <martin@xemacs.org>
3594
3595         * filelock.c (fill_in_lock_file_name): 
3596         ANSIfy.
3597         Check for IS_ANY_SEP instead of '/'.
3598         (lock_file_1): 
3599         Avoid generating gratuitous garbage.  Call user_login_name() directly.
3600         Never check errno without first seeing that system call failed.
3601         (unlock_file): Add GCPRO.
3602         (Flock_buffer): Fix docstring.
3603         (Ffile_locked_p): Fix docstring.  Add GCPRO.
3604
3605 2000-04-19  Martin Buchholz  <martin@xemacs.org>
3606
3607         * sysdep.c (get_pty_max_bytes): 
3608         Fix hangs on DEC OSF 4.0 when (process-send-string) sends
3609         strings longer than 252 bytes.
3610
3611         * md5.c: Unconditionally include ANSI header <limits.h>
3612
3613         * glyphs-x.c (convert_EImage_to_XImage): 
3614         * lisp-union.h (union Lisp_Object): 
3615         Use consistently the syntax #ifdef FEATURE, not #if FEATURE.
3616
3617 2000-04-13  Yoshiki Hayashi  <yoshiki@xemacs.org>
3618
3619         * filelock.c (current_lock_owner): Remove unused variable o, p.
3620
3621 2000-04-17  Norbert Koch  <n.koch@eai-delta.de>
3622
3623         * callint.c: Remove multiply defined symbol Qlet
3624         (syms_of_callint): ditto.
3625
3626 2000-04-14  Andy Piper  <andy@xemacs.org>
3627
3628         * general.c (syms_of_general): add last-command, this-command, let
3629         and funcall.
3630
3631         * lisp.h: declare various symbols.
3632
3633         * glyphs.h: declare Qwidget_callback_current_channel;
3634
3635         * glyphs-widget.c (syms_of_glyphs_widget): add
3636         Qgui_callback_current_channel.
3637         (vars_of_glyphs_widget): add Vgui_callback_current_channel.
3638
3639         * gui-msw.c (mswindows_handle_gui_wm_command): bind
3640         widget-callback-current-channel when invoking the interactive
3641         arg. Also bind last-command and next-command when invoking the
3642         widget updates.
3643         * gui-x.c (popup_selection_callback): ditto.
3644
3645         * gui.c (get_gui_callback): massage args so that we are always
3646         calling eval. This allows us to add our own variable bindings
3647         outside.
3648
3649         * glyphs-x.c (x_button_instantiate): use
3650         gui_items_to_widget_values since this is GC safe.
3651         (x_progress_gauge_instantiate): ditto.
3652         (x_edit_field_instantiate): ditto.
3653         (x_label_instantiate): ditto.
3654
3655         * event-Xt.c (emacs_Xt_handle_magic_event): remove old printfs.
3656         (emacs_Xt_event_widget_focus_out): new function
3657         (emacs_Xt_event_widget_focus_in): new function. Set the keyboard
3658         focus.
3659         (emacs_Xt_event_add_widget_actions): new function. add focus
3660         functions as actions.
3661         (init_event_Xt_late): use it.
3662
3663 2000-04-14  Hrvoje Niksic  <hniksic@iskon.hr>
3664
3665         * event-stream.c (Fdispatch_event): Doc fix.
3666
3667 2000-03-29  SL Baur  <steve@musashimaru.m17n.org>
3668
3669         * postgresql.c: Remove all references to PQsetenv*.
3670
3671         * postgresql.h: Remove references to PGsetenvHandler object.
3672         * lrecord.h (lrecord_type): Ditto.
3673
3674 2000-04-11  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
3675
3676         * glyphs-msw.h (struct mswindows_image_instance_data): Added
3677         real_heigh and real_width members, and accessor macros for these.
3678
3679         * glyphs-msw.c (init_image_instance_geometry): New function.
3680         (init_image_instance_from_dibitmap): Use it.
3681         (mswindows_resource_instantiate): Use it.
3682         (init_image_instance_from_xbm_inline): Use it.
3683         (mswindows_initialize_image_instance_mask): Use real bitmap
3684         geometry.
3685         (mswindows_create_resized_bitmap): Ditto.
3686         (mswindows_create_resized_mask): Ditto.
3687         
3688         * redisplay-msw.c (mswindows_output_dibitmap): Stretch real mask
3689         and bitmap to their surface size.
3690
3691 2000-04-11  Jan Vroonhof  <jan@xemacs.org>
3692
3693         * process-unix.c (unix_send_process): Guard against process MIA
3694         after Faccept_process_output.
3695
3696 2000-04-11  Ben Wing  <ben@xemacs.org>
3697
3698         * eval.c (unbind_to_hairy): fix brokenness introduced by
3699         nanosecond speed improvements.
3700
3701 2000-04-07  Raymond Toy  <toy@rtp.ericsson.se>
3702
3703         * sunplay.c (init_device): To play sounds correctly, the device
3704         apparently needs to be initialized at least once by XEmacs.  Make
3705         it so.
3706
3707 2000-04-10  IKEYAMA Tomonori  <tomonori@suiyokai.org>
3708
3709         * redisplay.c (add_margin_runes): Add text image glyph
3710           handling.
3711
3712 2000-04-06  Yoshiki Hayashi  <yoshiki@xemacs.org>
3713
3714         * lisp.h (DOESNT_RETURN): Don't declare as volatile when
3715         gcc is newer than 2.5.
3716
3717 2000-04-06  Colin Rafferty  <colin@xemacs.org>
3718
3719         * lisp.h (FLEXIBLE_ARRAY_STRUCT_SIZEOF): Created.
3720         
3721         * fns.c (size_bit_vector):
3722         * alloc.c (size_vector):
3723         (make_vector_internal):
3724         (make_bit_vector_internal):
3725         (sweep_bit_vectors_1):
3726         Replace calls to offsetof with FLEXIBLE_ARRAY_STRUCT_SIZEOF macro.
3727
3728 2000-04-06  Andy Piper  <andy@xemacs.org>
3729
3730         * gmalloc.c (malloc): undo previous change.
3731         (malloc): ditto.
3732         (free): ditto.
3733         (realloc): ditto.
3734
3735 2000-04-06  IKEYAMA Tomonori <tomonori@suiyokai.org>
3736
3737         * line-number.c (buffer_line_number): Revert to former version.
3738
3739 2000-04-06  Andy Piper  <andy@xemacs.org>
3740
3741         * gmalloc.c (malloc): add error checking.
3742         (malloc): ditto.
3743         (free): ditto.
3744         (realloc): ditto.
3745
3746         * dialog-x.c (dbox_descriptor_to_widget_value): add extra
3747         button_item_to_widget_value arg.
3748
3749         * glyphs-x.c (x_button_instantiate): add extra
3750         button_item_to_widget_value arg.
3751         (x_progress_gauge_instantiate): ditto.
3752         (x_edit_field_instantiate): ditto.
3753         (x_label_instantiate): ditto.
3754
3755         * gui-x.c (gui_items_to_widget_values_1): add extra
3756         button_item_to_widget_value arg.
3757         (button_item_to_widget_value): add extra menu_item_p arg.
3758
3759         * gui-x.h: change signature of button_item_to_widget_value.
3760
3761         * menubar-x.c (menu_item_descriptor_to_widget_value_1): add extra
3762         button_item_to_widget_value arg.
3763
3764 2000-04-03  Yoshiki Hayashi  <yoshiki@xemacs.org>
3765
3766         * buffer.h (struct buffer): auto_save_modified should be long.
3767
3768 2000-04-05  Andy Piper  <andy@xemacs.org>
3769
3770         * glyphs-widget.c (widget_instantiate): pixwidth != pixheight
3771         type.
3772         (button_query_geometry): give a little more room so that athena
3773         buttons fit.
3774
3775 2000-04-05  Andy Piper  <andy@xemacs.org>
3776
3777         * faces.c (complex_vars_of_faces): The widget face should inherit
3778         the font of the gui-element face.
3779
3780 2000-04-04  Andy Piper  <andy@xemacs.org>
3781
3782         * glyphs-x.c (x_button_update): new function. unconditionally
3783         update a button's state when the instance is dirty.
3784         (image_instantiator_format_create_glyphs_x): add x_button_update.
3785         (x_widget_instantiate): remove old resize cruft.
3786
3787 2000-04-02  Andy Piper  <andy@xemacs.org>
3788
3789         * frame.c (change_frame_size_1): The introduction of gutters means
3790         that we need to allow 0 as a potential frame dimension.
3791
3792 2000-04-02  IKEYAMA Tomonori  <tomonori@suiyokai.org>
3793
3794         * redisplay.c (add_glyph_rune): Don't set 0 to bufpos for text
3795         image glyph if allow_cursor.
3796         (add_hscroll_rune): Don't allow cursor to border glyph.
3797         (create_text_block): Ditto.
3798
3799         * redisplay-output.c (redisplay_move_cursor): Do nothing even if
3800         text not in buffer.
3801         (redisplay_output_layout): Call ensure_face_cachel_complete for
3802         text image glyph.
3803
3804
3805 2000-03-16  IKEYAMA Tomonori  <tomonori@suiyokai.org>
3806
3807         * redisplay.c (add_glyph_rune): Adding text image as text runes.
3808
3809         * redisplay-output.c (redisplay_move_cursor): NO_CURSOR if text
3810         not in buffer
3811
3812         * redisplay-tty.c (tty_output_display_block): Delete the routine
3813         for text image glyph
3814         * redisplay-x.c (x_output_display_block): ditto
3815         * redisplay-msw.c (mswindows_output_display_block): ditto
3816
3817 2000-02-02  Mike Alexander  <mta@arbortext.com>
3818
3819         Note: Some of these were committed by accident as part of other
3820         patches.
3821         
3822         * regex.c (regex_compile): Avoid compiler warnings.
3823
3824         * ntproc.c (sys_spawnve): Avoid compiler warnings.
3825
3826         * nt.h: Declare term_ntproc correctly.
3827
3828         * nt.c: Remove incorrect declaration of get_home_directory which
3829         is declared correctly in lisp.h.
3830
3831         * keymap.c (get_keyelt): Avoid compiler warnings.
3832         (raw_lookup_key_mapper): Avoid compiler warnings.
3833
3834         * gutter.c (gutter_was_visible): Add return statement to avoid warning.
3835
3836         * glyphs-eimage.c (png_instantiate): Avoid compiler warnings.
3837
3838         * filemode.c (mode_string): Avoid compiler warnings.
3839
3840         * file-coding.c (Fcoding_system_aliasee): Add return statement to
3841         avoid warning.
3842
3843         * events-mod.h: Undef some things that winuser.h defines differently.
3844
3845         * data.c (Faset): Avoid compiler warnings.
3846
3847         * alloc.c (Fmake_byte_code): Avoid compiler warnings.
3848
3849 2000-03-03  Jan Vroonhof  <vroonhof@math.ethz.ch>
3850
3851         * sound.c (Fplay_sound_file): Wrap ESD in start/stop_interrupts.
3852         Fall through to simple beep on error.
3853         Replace "extern" by real header file.
3854
3855         * linuxplay.c: Use nativesound.h
3856         (play_sound_data): Return error code. Be less verbose on error.
3857
3858         * sunplay.c: Use nativesound.h
3859         (play_sound_data): Return error code. Be less verbose on error.
3860
3861         * ntplay.c: Use nativesound.h
3862         (play_sound_data): Return fake error code
3863
3864         * sgiplay.c: Use nativesound.h
3865         (play_sound_data): Return error code
3866
3867         * hpplay.c: Use nativesound.h, partially implement
3868         new error code. Break compilation until finished.
3869         (play_sound_data): error code.
3870
3871         * nativesound.h (play_sound_file): 
3872           (play_sound_data): Prototype in new header.
3873
3874 2000-03-31  Andy Piper  <andy@xemacs.org>
3875
3876         * glyphs-widget.c: (button_query_geometry): new function. Adjust
3877         for toggle and radio buttons.
3878         (image_instantiator_buttons): use it.
3879
3880 2000-03-03  Jan Vroonhof  <vroonhof@math.ethz.ch>
3881
3882         * scrollbar-x.c (x_update_vertical_scrollbar_callback): 
3883         (x_update_horizontal_scrollbar_callback): Return if no mirror was
3884         found. Scrollbar event probably belonged to some old config.
3885
3886 2000-03-31  Andy Piper  <andy@xemacs.org>
3887
3888         * glyphs-widget.c (widget_instantiate): use LAYOUT_VERTICAL rather
3889         than 1.
3890         (initialize_widget_image_instance): default layout to
3891         LAYOUT_HORIZONTAL rather than 0.
3892         (widget_instantiate): reverse the item list at the end rather than
3893         every iteration.
3894         (layout_layout): re-code for the border text at the front of the
3895         item list rather than at the end.
3896         (layout_query_geometry): ditto. Pick up fixed and dynamic sizes
3897         provided by the user.
3898         (widget_query_geometry): comment.
3899
3900 2000-03-30  Andy Piper  <andy@xemacs.org>
3901
3902         * glyphs-widget.c (image_instantiator_layout): allow standard
3903         widget keywords in layouts.
3904
3905         * gutter.c (output_gutter): cope with nil gutter contents.
3906
3907         * frame.c (Fset_frame_properties): add gutter docs.
3908
3909 2000-03-29  Andy Piper  <andy@xemacs.org>
3910
3911         * toolbar-msw.c (TBSTYLE_FLAT): add.
3912         (mswindows_output_toolbar): minor fiddling.
3913
3914 2000-03-29  Andy Piper  <andy@xemacs.org>
3915
3916         * gutter.c (output_gutter): force gutter size recalculation if
3917         what we are trying to display won't fit.
3918         (update_gutter_geometry): new function. A per-gutter version of
3919         update_frame_gutter_geometry.
3920         (update_frame_gutter_geometry): use it.
3921         (redraw_exposed_gutter): add extra debugging output.
3922
3923 2000-03-28  Mike Alexander  <mta@arbortext.com>
3924
3925         * dumper.c: Declare pdump_hFile and pdump_hMap (Windows only)
3926         (pdump_file_unmap): Implement it on Windows
3927         (pdump_file_get): Save alocated handles for pdump_file_unmap
3928
3929 2000-03-28  Andy Piper  <andy@xemacs.org>
3930
3931         * gui.c (get_gui_callback): treat Quit specially.
3932
3933 2000-03-27  Andy Piper  <andy@xemacs.org>
3934
3935         * glyphs.c (image_instantiate): be careful to check in the same
3936         way we assigned.
3937
3938 2000-03-27  Didier Verna  <didier@xemacs.org>
3939
3940         * config.h.in: define the proper SMART_INCLUDE macro.
3941         handle renaming of `foo_h_path' to `foo_h_file'.
3942
3943         * database.c: ditto.
3944
3945         * emacs.c: ditto.
3946
3947         * linuxplay.c: ditto.
3948
3949         * terminfo.c: ditto.
3950
3951         * tooltalk.h: ditto.
3952
3953 2000-03-27  Andy Piper  <andy@xemacs.org>
3954
3955         * glyphs-msw.c (mswindows_update_widget): make sure the widget
3956         gets updated whenever the face might have changed.
3957
3958 2000-03-26  Mike Alexander  <mta@arbortext.com>
3959
3960         * dumper.c (pdump_resource_free): Fix the comment.
3961
3962 2000-03-21  Olivier Galibert  <galibert@pobox.com>
3963
3964         * input-method-xlib.c (XIM_init_frame): Remove painful warning.
3965
3966 2000-03-22  Mike Alexander  <mta@arbortext.com>
3967
3968         * dumper.c: Include Windows headers on Windows
3969         (pdump_resource_free): Add a body to the function
3970         (pdump_load): exe_name -> exe_path and add some comments.
3971
3972 2000-03-25  Mike Alexander  <mta@arbortext.com>
3973
3974         * gui.c (copy_gui_item_tree): Return a value in all cases
3975
3976 2000-03-21  Didier Verna  <didier@xemacs.org>
3977
3978         * config.h.in: move INCLUDE_GLUE_1 and INCLUDE_GLUE_2 here from
3979         lwlib/config.h.in.
3980         (SMART_INCLUDE): new macro.
3981         (POSTGRES_INCLUDE): new macro to include postgresql headers from
3982         the proper location.
3983
3984         * postgresql.c: use it.
3985
3986         * inline.c: ditto.
3987
3988 2000-03-24  Andy Piper  <andy@xemacs.org>
3989
3990         * gutter.c (redraw_exposed_gutters): must be "in display" when we
3991         do this.
3992
3993 2000-03-24  Andy Piper  <andy@xemacs.org>
3994
3995         * redisplay-output.c (compare_runes): use image_instance_changed
3996         to detect changes. Do not depend on glyphs_changed, only depend on
3997         dirtiness.
3998          (redisplay_output_layout): add debug messages.
3999         (compare_runes): ditto.
4000
4001         * glyphs.h: declare new functions.
4002         (struct Lisp_Image_Instance): remove percent and associated
4003         accessors.
4004
4005         * gui.h: declare new copying functions.
4006
4007         * gui.c (copy_gui_item_tree): new function.
4008         (copy_gui_item): new function.
4009         (gui_item_id_hash): revert to standard hash.
4010         (gui_item_hash): ditto.
4011         (gui_item_hash_internal): deleted.
4012         (mark_gui_item): mark value.
4013         (gui_item_add_keyval_pair): add value.
4014         (gui_item_init): ditto.
4015         (gui_add_item_keywords_to_plist): ditto.
4016         (gui_item_equal): ditto.
4017         (syms_of_gui): add Q_value.
4018
4019         * glyphs-x.c (x_progress_gauge_update): use pending items and
4020         value for setting the state.
4021         (x_update_widget): don't set items from pending here.
4022
4023         * glyphs-widget.c (update_widget): update items here.
4024         (progress_gauge_set_property): use items for storing value. Put
4025         new value in pending items.
4026
4027         * glyphs-msw.c (mswindows_progress_gauge_update): use pending
4028         items for new value. Convert percent -> value.
4029         (mswindows_tab_control_update): don't update items here.
4030
4031         * glyphs.c (Fupdate_widget_instances): use image_instance_changed.
4032         (update_subwindow): ditto.
4033         (image_instance_changed): new function. Compare hash values and
4034         past and present widget items.
4035         (image_instantiate): We more careful about where we instantiate
4036         things.
4037         (image_instantiate): add error checking.
4038
4039         * gutter.c (syms_of_gutter): use -hook.
4040
4041 2000-03-20  Yoshiki Hayashi  <yoshiki@xemacs.org>
4042
4043         * console-tty.c (Fset_console_tty_input_coding_system): Use
4044         Qkeyboard.
4045         (Fset_console_tty_output_coding_system): Use Qterminal.
4046         (tty_init_console): Use Qkeyboard and Qterminal.
4047
4048 2000-03-21  Ben Wing  <ben@xemacs.org>
4049
4050         * ntproc.c (create_child): remove bogus HAVE_NTGUI's.
4051         From Mike Alexander <mta@arbortext.com>.
4052
4053 2000-03-21  Ben Wing  <ben@xemacs.org>
4054
4055         * event-msw.c (mswindows_need_event): Horrible kludge to fix
4056         process brokenness.  Proper implementation to come.
4057         * callproc.c:
4058         Rename call-process-internal to old-call-process-internal.
4059         New impl. in process.el.
4060
4061 2000-03-21  Martin Buchholz  <martin@xemacs.org>
4062
4063         * Makefile.in.in: Coalesce HAVE_NATIVE_SOUND code fragments.
4064
4065 2000-03-20  Andy Piper  <andy@xemacs.org>
4066
4067         * glyphs.c (full_list_hash): make hashes of the same elements in
4068         different orders return different values.
4069
4070 2000-03-20  Martin Buchholz <martin@xemacs.org>
4071
4072         * XEmacs 21.2.32 is released.
4073
4074 2000-03-20  Martin Buchholz  <martin@xemacs.org>
4075
4076         * buffer.h (DFC_ALLOCA_USE_CONVERTED_DATA):
4077         (DFC_MALLOC_USE_CONVERTED_DATA):
4078         Add aliasing-safe casts to allow use with char* or unsigned char*
4079         lvalues.
4080
4081         * eldap.c (Fldap_open):
4082         (Fldap_search_basic):
4083         (Fldap_add):
4084         (Fldap_modify):
4085         Make C++-compilable.
4086         Make sure GCPRO'ed variables are initialized.
4087         Use temp variables to avoid repeated calls to Flength.
4088
4089 2000-03-16  Martin Buchholz  <martin@xemacs.org>
4090
4091         * sysfile.h:
4092         Make sure PATH_MAX is always defined.
4093         Include limits.h for PATH_MAX.
4094         Deprecate use of MAXPATHLEN.
4095
4096 2000-03-10  Martin Buchholz  <martin@xemacs.org>
4097
4098         * emacs.c: Add reinit_vars_of_fileio.
4099         * symsinit.h: Add reinit_vars_of_fileio.
4100         * fileio.c (reinit_vars_of_fileio): New.
4101         * fileio.c (Fmake_temp_name):
4102         Initialize temp_name random number from microseconds to make
4103         collisions even less likely.  Initialize always at process startup
4104         time.  (make-temp-name) used to return the same file name twice in
4105         a row when PDUMP.
4106         Random stylistic fiddling.
4107         Comment fixes.
4108
4109 2000-03-20  Andy Piper  <andy@xemacs.org>
4110
4111         * glyphs.c (image_instantiate): allow text glyphs to be
4112         instantiated in the minibuffer window.
4113
4114 2000-03-19  Andy Piper  <andy@xemacs.org>
4115
4116         * glyphs.c (image_instance_hash): be careful about which items we
4117         hash on.
4118
4119         * glyphs-widget.c (tab_control_set_property): record into pending
4120         items rather than the actual items.
4121
4122         * glyphs-x.c (x_update_widget): use pending items to update with.
4123
4124         * glyphs-msw.c (mswindows_tab_control_update): use pending items
4125         to update with.
4126
4127         * glyphs.c (mark_image_instance): mark pending items.
4128
4129         * window.c (Fset_window_configuration): record the buffer.
4130         (Fselect_window): totally revert previous change which breaks many
4131         things.
4132
4133 2000-03-18  Andy Piper  <andy@xemacs.org>
4134
4135         * glyphs-msw.c (mswindows_tab_control_update): force selected
4136         item.
4137
4138         * glyphs.c (image_instantiate): don't allow the minibuffer as a
4139         window domain cache, otherwise we get inconsistencies at
4140         startup. There is something fishy at startup which can lead to the
4141         minibuffer being the selected window when the gutter content is
4142         instantiated.
4143
4144         * gui.c (parse_gui_item_tree_list): add probably unneccessary
4145         gcpros.
4146         (parse_gui_item_tree_children): ditto.
4147         (parse_gui_item_tree_item): ditto.
4148
4149         * glyphs.c (Fupdate_widget_instances): return something.
4150
4151 2000-03-18  Yoshiki Hayashi  <yoshiki@xemacs.org>
4152
4153         * window.c (Fselect_window): Undo 2000-03-17 change.
4154
4155 2000-03-17  SL Baur  <steve@musashimaru.m17n.org>
4156
4157         * postgresql.c (Fpq_setenv): Remove this turkey when linking
4158         against v7.0 libraries.  Insta-coredump city until the postgres
4159         folks fix it.
4160
4161 2000-03-17  Andy Piper  <andy@xemacs.org>
4162
4163         * faces.c (complex_vars_of_faces): don't give the widget face an
4164         inherited background pixmap.
4165
4166         * glyphs-msw.c (mswindows_tab_control_instantiate): select the
4167         selected item.
4168
4169         * event-stream.c (Fdispatch_non_command_events): return something.
4170
4171         * gutter.c (output_gutter): use widget face.
4172         (clear_gutter): ditto.
4173
4174         * NEWS: adjust again.
4175
4176         * window.c (Fselect_window): make sure this runs to completion to
4177         avoid oddities with Fset_window_configuration.
4178         (Fcurrent_window_configuration): in general do not save the
4179         minibuffer as the selected window.
4180
4181         * glyphs.h (IMAGE_INSTANCE_HASH_DEPTH): increase.
4182
4183 2000-03-16  Olivier Galibert  <galibert@pobox.com>
4184
4185         * emacs.c (Frunning_temacs_p): Revert previous patch.
4186         (main_1): Reinitialize running_temacs_argc if pdump_load succeeds.
4187
4188 2000-03-16  Andy Piper  <andy@xemacs.org>
4189
4190         * glyphs-x.c (x_tab_control_update): if no widget values then
4191         return.
4192
4193         * NEWS: update for new features.
4194
4195         * event-Xt.c (emacs_Xt_force_event_pending): new function. Post a
4196         synthetic event to the native system.
4197         (reinit_vars_of_event_Xt): set force_event_pending to
4198         emacs_Xt_force_event_pending.
4199
4200         * events.h (struct event_stream): add force_event_pending.
4201
4202         * specifier.c (recompute_one_cached_specifier_in_window): add
4203         comment.
4204
4205         * redisplay.c (redisplay_frame): don't call
4206         update_frame_subwindows. Reset subwindow cachels when
4207         subwindows_changed, removing this was an optimization too far.
4208
4209         * redisplay-output.c (compare_runes): reorganize so that we catch
4210         glyph changes when we want them. Set optimize_output when this
4211         would help layouts.
4212         (redisplay_output_layout): remove frame_really_changed, use
4213         optimize_output instead.
4214
4215         * redisplay-msw.c (mswindows_output_display_block): reset
4216         optimize_output after outputting a glyph.
4217         * redisplay-x.c (x_output_display_block): ditto.
4218         * redisplay-tty.c (tty_output_display_block): ditto.
4219
4220         * gutter.c: (specifier_vars_of_gutter): use new spec changed
4221         functions.
4222         (gutter_specs_changed): do specific gutter positions.
4223         (top_gutter_specs_changed): new function. Only update the
4224         specified gutter specs.
4225         (bottom_gutter_specs_changed): ditto.
4226         (left_gutter_specs_changed): ditto.
4227         (right_gutter_specs_changed): ditto.
4228
4229         * gui.c (gui_item_hash_internal): new function, does a real hash.
4230         (gui_item_id_hash): use it.
4231         (gui_item_hash): hash the eval'ed gui_item.
4232
4233         * gui-x.c (popup_selection_callback): send an eval event to call
4234         Fupdate_widget_instances.
4235
4236         * gui-msw.c (mswindows_handle_gui_wm_command): send an eval event
4237         to call Fupdate_widget_instances.
4238
4239         * glyphs.h (struct Lisp_Image_Instance): add optimize_output flag.
4240         (IMAGE_INSTANCE_OPTIMIZE_OUTPUT): access it.
4241
4242         * glyphs.c: (update_frame_subwindows): deleted.
4243         (Fupdate_widget_instances): new function for updating the dirty
4244         state of widgets that might have changed.
4245         (syms_of_glyphs): add Qupdate_widget_instances.
4246         (full_list_hash): hash a list completely.
4247         (image_instance_hash): use it for items and properties.
4248
4249         * frame-msw.c (mswindows_size_frame_internal): remove unused
4250         variable.
4251
4252         * faces.h (struct face_cachel): fix comment.
4253
4254         * event-stream.c (Fdispatch_non_command_events): new
4255         function. Process non-command events, forcing an event cycle
4256         beforehand.
4257         (syms_of_event_stream): declare.
4258         (event_stream_force_event_pending): new function. Force an event
4259         on the native event queue so that an event cycle will occur next
4260         time we check.
4261
4262         * event-msw.c:
4263         (struct ntpipe_shove_stream):
4264         (mswindows_enqueue_dispatch_event):
4265         (mswindows_dequeue_dispatch_event):
4266         (mswindows_cancel_dispatch_event):
4267         (mswindows_pump_outstanding_events):
4268         (mswindows_drain_windows_queue):
4269         (mswindows_handle_paint):
4270         (mswindows_wnd_proc):
4271         (mswindows_key_to_emacs_keysym):
4272         (get_process_input_waitable):
4273         (emacs_mswindows_delete_stream_pair): re-indent file.
4274         (mswindows_need_event): do not process further fds if the windows
4275         fd is set, otherwise you get endless XM_BUMPQUEUE cycles. This
4276         fixes the 100% cpu problem.
4277         (reinit_vars_of_event_mswindows): set force_event_pending to 0.
4278
4279 2000-03-15  Olivier Galibert  <galibert@pobox.com>
4280
4281         * alloc.h: New.
4282         * dumper.h: New.
4283         * dumper.c: New.
4284
4285         * emacs.c: Moved dump file searching to dumper.c.
4286         (Frunning_temacs_p): Fixed.
4287
4288         * alloc.c: Moved everything pdump-related to dumper.c.  Removed
4289         last_lrecord_type_index_assigned.
4290
4291 2000-02-20  Olivier Galibert  <galibert@pobox.com>
4292
4293         * symsinit.h: Added reinit parameter to init_console_stream
4294         declaration.
4295
4296         * lisp.h: Added file parameter to pdump_load declaration.
4297
4298         * emacs.c (main_1): Added -nd/--nodump-file and -sd/--show-dump-id
4299         support.  Added dump file searching.
4300
4301         * config.h.in: Added EMACS_PROGNAME.
4302
4303         * console-stream.c (init_console_stream): Fix reinitialisation
4304         when running from temacs.
4305
4306         * alloc.c (pdump): Add id support.
4307         (pdump_load): Add file parameter and signature/id support.
4308
4309         * Makefile.in.in: Add full pdump support.
4310
4311 2000-03-15  SL Baur  <steve@musashimaru.m17n.org>
4312
4313         * postgresql.c: Update documentation to reflect latest code
4314         status.
4315         (print_result): Show tuple counts in printed representation when
4316         appropriate.
4317         (Fpq_put_nbytes): MULE-ize.
4318         (Fpq_get_line_async): Ditto.
4319
4320 2000-03-14  SL Baur  <steve@musashimaru.m17n.org>
4321
4322         * postgresql.c (Fpq_lo_import): Fix return value.
4323         Suggested by: Kenji Itoh <keit@tpj.co.jp>.
4324
4325 2000-03-13  Ben Wing  <ben@xemacs.org>
4326
4327         * alloc.c (pdump_load):
4328         Fix compile warning under mswin.
4329
4330 2000-03-14  SL Baur  <steve@musashimaru.m17n.org>
4331
4332         * postgresql.c: Mule-ization, bug fixes.
4333         Use PG_CODING to encapsulate coding system name changes.
4334         Backport a version of TO_EXTERNAL format for 21.1/InfoDock.
4335         (pg-coding-system): Create.
4336
4337         (Fpq_conn_defaults): Mule-ize.
4338         (Fpq_connectdb): Mule-ize & bug fix.
4339         (Fpq_connect_start): Mule-ize.
4340         (Fpq_set_client_encoding): Mule-ize.
4341         (Fpq_finish): Document `DEAD' connection status.
4342         (Fpq_clear): Ditto.
4343         (Fpq_pgconn): Mule-ize.
4344         (Fpq_exec): Mule-ize & bug fix.
4345         (Fpq_send_query): Ditto.
4346         (Fpq_get_result): Ditto.
4347         (Fpq_res_status): Mule-ize.
4348         (Fpq_result_error_message): Mule-ize.
4349         (Fpq_ntuples): fix comments.
4350         (Fpq_fname): Mule-ize.
4351         (Fpq_fnumber): Mule-ize.
4352         (Fpq_ftype): fix comments.
4353         (Fpq_get_value): Mule-ize.
4354         (Fpq_cmd_status): Ditto.
4355         (Fpq_cmd_tuples): Ditto.
4356         (Fpq_oid_value): Ditto.
4357         (Fpq_notifies): Ditto.
4358         (Fpq_lo_import): Ditto.
4359         (Fpq_lo_export): Ditto.
4360         (Fpq_get_line): Ditto.
4361         (Fpq_put_line): Mule-ize and bug fix.
4362         (syms_of_postgresql): Fix ifdef'ing, add pg-coding-system.
4363
4364 2000-03-10  SL Baur  <steve@musashimaru.m17n.org>
4365
4366         * postgresql.c (vars_of_postgresql): Mule-ize.
4367         (Fpq_conn_defaults): Ditto.
4368
4369 2000-03-12  Ben Wing  <ben@xemacs.org>
4370
4371         * alloc.c (Fmake_byte_code):
4372         * alloc.c (debug_string_purity_print):
4373         * alloc.c (pdump_backtrace):
4374         * alloc.c (pdump_get_indirect_count):
4375         * alloc.c (pdump_register_sub):
4376         * alloc.c (pdump_register_object):
4377         * alloc.c (pdump_register_struct):
4378         * alloc.c (pdump_dump_data):
4379         * alloc.c (pdump_reloc_one):
4380         Minor cleanups.
4381
4382         * console-msw.c:
4383         * console-msw.c (GetConsoleHwnd):
4384         * console-msw.c (msw_hide_console):
4385         * console-msw.c (msw_show_console):
4386         * console-msw.c (msw_ensure_console_buffered):
4387         * console-msw.c (msw_output_console_string):
4388         * console-msw.c (console_type_create_mswindows):
4389
4390         a) Added functions to manipulate the console window for use with
4391         shell support.
4392
4393         b) Added support for writing text to the console, which is now
4394         used under Windows when xemacs is not being run non-interactively,
4395         to write text that would otherwise be destined for stdout because
4396         under these circumstances, text written to stdout tends to
4397         disappear and not be seen.
4398
4399         * console-msw.h:
4400         * event-Xt.c:
4401         * event-Xt.c (x_event_to_emacs_event):
4402         * event-Xt.c (describe_event_window):
4403         * events-mod.h (XEMACS_MOD_CONTROL):
4404         * events.c:
4405         * events.c (Fmake_event):
4406         * events.c (character_to_event):
4407         * events.c (event_to_character):
4408         * events.c (format_event_object):
4409         * events.c (Fevent_modifiers):
4410         * events.h:
4411         * events.h (struct key_data):
4412         * events.h (struct button_data):
4413         * events.h (struct misc_user_data):
4414         * frame-x.c (Fcde_start_drag_internal):
4415         * frame-x.c (Foffix_start_drag_internal):
4416         * gpmevent.c (Freceive_gpm_event):
4417         * keymap.c:
4418         * keymap.c (bucky_sym_to_bucky_bit):
4419         * keymap.c (control_meta_superify):
4420         * keymap.c (make_key_description):
4421         * keymap.c (keymap_lookup_directly):
4422         * keymap.c (create_bucky_submap):
4423         * keymap.c (keymap_store):
4424         * keymap.c (define_key_check_and_coerce_keysym):
4425         * keymap.c (define_key_parser):
4426         * keymap.c (define_key_alternate_name):
4427         * keymap.c (Fdefine_key):
4428         * keymap.c (raw_lookup_key_mapper):
4429         * keymap.c (struct map_keymap_unsorted_closure):
4430         * keymap.c (map_keymap_unsorted_mapper):
4431         * keymap.c (map_keymap_sort_predicate):
4432         * keymap.c (map_keymap_sorted):
4433         * keymap.c (accessible_keymaps_mapper_1):
4434         * keymap.c (where_is_recursive_mapper):
4435         * keymap.c (describe_map_mapper):
4436         * keymap.c (describe_map_sort_predicate):
4437         * keymap.c (describe_map):
4438         * keymap.c (complex_vars_of_keymap):
4439         And a number of other files, the key modifier preprocessor
4440         constants that xemacs uses have names that conflict with constants
4441         defined under MS Windows for other purposes, so they were renamed
4442         to begin with the prefix XEMACS_. The variables that hold such
4443         modifiers were changed to consistently be of type int to fix
4444         various compile warnings.
4445
4446         * console.c (complex_vars_of_console):
4447         * device.c:
4448         * device-msw.c:
4449         * device-msw.c (mswindows_finish_init_device):
4450         * device-msw.c (msw_get_workspace_coords):
4451         * device-msw.c (mswindows_device_system_metrics):
4452         and various other files, added support for a new
4453         device property called offset-workspace which returns the position
4454         of the upper left corner of the workspace area and goes along with
4455         the existing size-workspace property.
4456
4457         * dialog-msw.c:
4458         * dialog-msw.c (push_bufbyte_string_as_unicode):
4459         * dialog-msw.c (mswindows_popup_dialog_box):
4460         Added support for XEmacs-style accelerator specifications in
4461         button text.  Note: I didn't add support for this under X Windows,
4462         and somebody needs to do this.
4463
4464         * dialog.c:
4465         * dialog.c (Fpopup_dialog_box):
4466         Documented the support for accelerators that was just mentioned.
4467
4468         editfns.c (get_home_directory): Changed behavior under Windows
4469         when HOME not defined; former behavior was irretrievably broken.
4470
4471         * emacs.c:
4472         * emacs.c (main_1):
4473         * emacs.c (main):
4474         * minibuf.c (clear_echo_area_internal):
4475         * minibuf.c (echo_area_append):
4476         * print.c:
4477         * print.c (std_handle_out_external):
4478         * print.c (std_handle_out_va):
4479         * print.c (fatal):
4480         * print.c (write_string_to_stdio_stream):
4481         * print.c (output_string):
4482         * print.c (debug_print):
4483         * print.c (debug_backtrace):
4484         * print.c (debug_short_backtrace):
4485         Cleaned up the code that prints text to stdout so that this can be
4486         changed to output into a console window instead under MS Windows,
4487         as described above.
4488
4489         * eval.c:
4490         * eval.c (DEFEND_AGAINST_THROW_RECURSION):
4491         * eval.c (internal_catch):
4492         * eval.c (unwind_to_catch):
4493         * eval.c (throw_or_bomb_out):
4494         * eval.c (condition_case_1):
4495         * eval.c (signal_1):
4496         * eval.c (check_error_state_sanity):
4497         * eval.c (call_with_suspended_errors_1):
4498         * eval.c (call_with_suspended_errors):
4499         * eval.c (reinit_vars_of_eval):
4500         Added code to catch throw loops and check for a pesky bug that may
4501         be gone now.
4502
4503         * event-msw.c:
4504         * event-msw.c (key_needs_default_processing_p):
4505         * event-msw.c (mswindows_wnd_proc):
4506         * event-msw.c (mswindows_modifier_state):
4507         * event-msw.c (emacs_mswindows_quit_p):
4508         * event-msw.c (vars_of_event_mswindows):
4509         a) Added support for using the alt key to select menu items as is
4510         standard under MS Windows.  This is controlled using the variable
4511         menu-accelerator-enabled, just like under X Windows.  There is an
4512         option on the options menu to turn this support on.  I really
4513         think that it should be on by default under Windows, but I'm not
4514         going to make this change yet.
4515
4516         b)  Added support for dynamic display size changes under Windows.
4517
4518         * event-stream.c:
4519         * event-stream.c (maybe_echo_keys):
4520         * event-stream.c (Fnext_event):
4521         * event-stream.c (command_builder_find_leaf):
4522         * event-stream.c (lookup_command_event):
4523         * event-stream.c (execute_command_event):
4524         * event-stream.c (pre_command_hook):
4525         * event-stream.c (post_command_hook):
4526         * event-stream.c (syms_of_event_stream):
4527         * event-stream.c (vars_of_event_stream):
4528         * event-stream.c (complex_vars_of_event_stream):
4529         * events.h (struct command_builder):
4530
4531         a) Tried to clean up a little bit the horribly written x-specific
4532         accelerator code that crept into this file.  I moved this code
4533         into menubar-x.c where it belongs. I also needed to move the
4534         command builder structure into the file events.h because it is
4535         accessed directly by this accelerator code.  What I didn't do, but
4536         which should be done at some point, is to properly abstract this
4537         code using device methods instead of the kludgy way that it
4538         currently hooks into the event code.
4539
4540         b) Added the lisp variables this-command-properties and
4541         last-command- properties, which should be used to synchronize two
4542         adjacent commands in preference to playing games with the variable
4543         this-command, which is typically what happens.
4544
4545         c) Added some slightly nasty code to hook into the lisp support
4546         for shifted- motion-key selection.  This is actually necessary for
4547         somewhat complicated reasons, which are described in
4548         simple.el. (NB: I think the proper thing would be to have the code
4549         that calls the pre and post command hooks also call out to generic
4550         lisp functions in simple.el, where all built-in stuff could be
4551         added.  I will think about this more.)
4552
4553         * event-unixoid.c (poll_fds_for_input):
4554         * lread.c (readchar):
4555         * redisplay-tty.c (tty_clear_frame):
4556         * redisplay-x.c (x_get_gc):
4557         * signal.c (interrupt_signal):
4558         And a whole bunch of other files: fixed up places that printed
4559         directly to stderr to instead call the function stderr_out so that
4560         the changes I made under Windows work correctly.
4561
4562         * filemode.c (mode_string):
4563         Warning fixes.
4564
4565         * frame-msw.c:
4566         * frame-msw.c (mswindows_size_frame_internal):
4567         Fixed the computation of frame size and position to keep the frame
4568         within the workspace area, rather than within the physical
4569         dimensions of the screen, so that the frame doesn't overlap window
4570         manager decorations, such as the start menu and toolbar, typically
4571         at the bottom of the screen.
4572
4573         * frame.c (vars_of_frame):
4574         Changed the default frame title format under MS Windows to consist
4575         of buffername-XEmacs, which is standard under MS Windows.  I think
4576         it might be a good idea to change this everywhere because I think
4577         it is superior to the current frame title format, but this is the
4578         kind of change that is likely to cause some people to get annoyed,
4579         so I'm not making it.
4580
4581         * glyphs-eimage.c (png_instantiate): Fixed some compile warnings.
4582
4583         * gui-msw.c (mswindows_handle_gui_wm_command):
4584         Fixed compile warnings.
4585
4586         * gui-x.c:
4587         * gui-x.c (strdup_and_add_accel):
4588         * gui-x.c (button_item_to_widget_value):
4589         * gui-x.h:
4590         Added code to automatically put an accelerator onto the beginning
4591         of menu items that don't have one as is now the standard, and is
4592         described more later.  Also fixed things so that the menu item
4593         name can be an evaluated expression, again a new standard.
4594
4595         * gui.c:
4596         * gui.c (gui_item_add_keyval_pair):
4597         * gui.c (make_gui_item_from_keywords_internal):
4598         * gui.c (gui_add_item_keywords_to_plist):
4599         * gui.c (gui_item_accelerator):
4600         * gui.c (gui_name_accelerator):
4601         * gui.c (gui_item_included_p):
4602         * gui.c (gui_item_display_flush_left):
4603         * gui.c (gui_item_display_flush_right):
4604         * gui.c (parse_gui_item_tree_item):
4605         * gui.c (parse_gui_item_tree_children):
4606         * gui.c (parse_gui_item_tree_list):
4607         Mule-ized.  Cleanup.  GCPRO addition.
4608
4609         * line-number.c (buffer_line_number):
4610         * lisp.h:
4611         * lisp.h (EMACS_INT_MAX):
4612         Added the manifest constant EMACS_INT_MIN corresponding to the
4613         existing constant EMACS_INT_MAX.  This is partially to fix compile
4614         warnings under Windows, and partly for cleanliness.
4615
4616         * menubar-msw.c:
4617         * menubar-msw.c (REPLACE_ME_WITH_GLOBAL_VARIABLE_WHICH_CONTROLS_RIGHT_FLUSH):
4618         * menubar-msw.c (msw_translate_menu_or_dialog_item):
4619         * menubar-msw.c (displayable_menu_item):
4620         * menubar-msw.c (populate_menu_add_item):
4621         * menubar-msw.c (populate_or_checksum_helper):
4622         * menubar-msw.c (populate_menu):
4623         * menubar-msw.c (update_frame_menubar_maybe):
4624         * menubar-msw.c (prune_menubar):
4625         * menubar-msw.c (msw_char_is_accelerator):
4626         * menubar-msw.c (unsafe_handle_wm_initmenu_1):
4627         * menubar-msw.c (mswindows_handle_wm_command):
4628         * menubar-msw.c (mswindows_handle_wm_initmenupopup):
4629         * menubar-msw.c (mswindows_handle_wm_initmenu):
4630         * menubar-msw.c (mswindows_update_frame_menubars):
4631         * menubar-msw.c (mswindows_free_frame_menubars):
4632         * menubar-msw.c (mswindows_popup_menu):
4633         Fixed a bug in handling accelerators where an extra character
4634         would be displayed in the menu item.  Also generalized the
4635         function displayable_menu_item because it is now used by the
4636         dialog box code as well.  And finally, added code in the functions
4637         that create the menubar to extract a list of accelerators for the
4638         top level menubar, which is used in the event code to determine
4639         whether a particular alt-key combination should be used to invoke
4640         a menu item, or should be passed through to access the standard
4641         XEmacs keymap binding for this key combination.
4642
4643         Much needed GCPROing.
4644
4645         * menubar-x.c:
4646         * menubar-x.c (menu_item_descriptor_to_widget_value_1):
4647         * menubar-x.c (menu_item_descriptor_to_widget_value):
4648         * menubar-x.c (restore_in_menu_callback):
4649         * menubar-x.c (x_popup_menu):
4650         * menubar-x.c (menu_move_up):
4651         * menubar-x.c (menu_move_down):
4652         * menubar-x.c (menu_move_left):
4653         * menubar-x.c (menu_move_right):
4654         * menubar-x.c (menu_select_item):
4655         * menubar-x.c (command_builder_operate_menu_accelerator):
4656         * menubar-x.c (menu_accelerator_junk_on_error):
4657         * menubar-x.c (command_builder_find_menu_accelerator):
4658         * menubar-x.c (Faccelerate_menu):
4659         * menubar.h:
4660         Moved a whole bunch of code here that was previously in
4661         event-stream.c as described above.  There is also code connected
4662         to the new standard of adding an accelerator to the beginning of
4663         menu items that don't have one as described above and below.
4664
4665         * menubar.c:
4666         * menubar.c (menu_parse_submenu_keywords):
4667         * menubar.c (Fmenu_find_real_submenu):
4668         * menubar.c (Fnormalize_menu_item_name):
4669         * menubar.c (syms_of_menubar):
4670         * menubar.c (vars_of_menubar):
4671         * menubar.c (complex_vars_of_menubar):
4672
4673         a) Cleaned up a bunch of documentation and improved it.
4674
4675         b) XEmacs now automatically adds an accelerator onto the beginning
4676         of any menu items that don't have one.  I did this because there
4677         will inevitably be some menu items on the main menubar that don't
4678         have accelerators on them because the package that adds that
4679         particular menu item hasn't yet been fixed up to have accelerators
4680         in them and it looked rather strange to have some items with and
4681         some items without accelerators, especially since even in items
4682         without accelerators, you can, at least under windows, still
4683         access the item through an accelerator corresponding to the first
4684         character in the item's name.  If people don't like this behavior,
4685         I can add a variable to turn it off optionally, but I'm not sure
4686         this is a good idea because we really do need to have accelerators
4687         on all of the menu items, and if a package doesn't like the
4688         accelerators being put on the first character, then it should put
4689         the accelerators where they belong.
4690
4691         c) I made a behavior change, which is that the descriptor that
4692         specifies the text of the menu item, which formerly was just a
4693         string, can now also be an evaluated expression.  This makes this
4694         descriptor parallel with all of the others, which could also be
4695         evaluated expressions.  This also obviates the need for the
4696         keyword :label, which was previously listed in the documentation
4697         as unimplemented, and which was for the same purpose.
4698
4699         d) GCPROing.
4700
4701         * ntproc.c:
4702         * ntproc.c (new_child):
4703         * ntproc.c (sys_spawnve):
4704         * ntproc.c (find_child_console):
4705         * ntproc.c (sys_kill):
4706         Fixed compile warnings.  By the way, this file should really go
4707         away entirely, and this will happen as soon as Kirill makes his
4708         final round of process cleanups, which affect the function
4709         call-process.
4710
4711         * process-nt.c:
4712         * process-nt.c (struct nt_process_data):
4713         * process-nt.c (find_process_from_pid):
4714         * process-nt.c (send_signal_the_nt_way):
4715         * process-nt.c (enable_child_signals):
4716         * process-nt.c (find_child_console):
4717         * process-nt.c (send_signal_the_95_way):
4718         * process-nt.c (nt_finalize_process_data):
4719         * process-nt.c (ensure_console_window_exists):
4720         * process-nt.c (nt_create_process):
4721         * process-nt.c (nt_kill_child_process):
4722         * process-nt.c (nt_kill_process_by_pid):
4723         * process-nt.c (nt_open_network_stream):
4724         * process-nt.c (vars_of_process_nt):
4725         Copied over code from Emacs 20.5 to correctly send signals to sub-
4726         processes under Windows 95.  Also added code to automatically
4727         create and hide console window when a sub-process is created under
4728         Windows 95, which obviates the need for the separate runemacs.exe
4729         executable, and finally implemented some variables that were
4730         implemented in Emacs 20.5, but previously not in XEmacs.  These
4731         include mswindows- start-process-share-console and
4732         mswindows-start-process-inherit-error-mode. (Both of these only
4733         apply to Windows 95.)
4734
4735         * regex.c (regex_compile): Fixed a compile warning.
4736
4737         * select-msw.c:
4738         * select-msw.c (mswindows_own_selection):
4739         * select-msw.c (mswindows_get_foreign_selection):
4740         * select-msw.c (mswindows_disown_selection):
4741         * select-msw.c (console_type_create_select_mswindows):
4742         * select-msw.c (syms_of_select_mswindows):
4743         Cleaned up the file and implemented the device method
4744         selection_exists_p, which had accidentally been left out.  Also
4745         removed four lisp functions that were remnants from before the
4746         time when the selection code was properly device abstracted.
4747         These functions are no longer needed because there are generic
4748         equivalents, and because they were added recently and don't exist
4749         in FSF Emacs, I don't think there's any problem with just deleting
4750         them.
4751
4752         * sysdep.c:
4753         * sysdep.c (sys_subshell):
4754         Fixed a compile warning, although in this case there's probably
4755         something wrong with this code, and it ought to be looked into
4756         more thoroughly by somebody who understands it.
4757
4758         * window.c:
4759         * window.c (Fwindow_text_area_height):
4760         * window.c (Fwindow_width):
4761         * window.c (Fwindow_full_width):
4762         * window.c (Fwindow_pixel_width):
4763         * window.c (debug_print_window):
4764         * window.c (syms_of_window):
4765         Added functions window-text-area-height and window-full-width,
4766         which are functions for returning various width and height
4767         characteristics of a window. (One of these functions is necessary
4768         for making the file dialog box work correctly, and the other one
4769         was added for completeness.)  Also added a table to the
4770         documentation for window-height which describes the entire scheme
4771         for accessing width and height characteristics of a window.
4772
4773 2000-03-12  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
4774
4775         * nt.c (fstat): Added a comment for another problem with
4776         non-encapsulated [f]stat(), reported by Adrian Aichner
4777         <aichner@ecf.teradyne.com>.
4778
4779 2000-03-11  Andy Piper  <andy@xemacs.org>
4780
4781         * window.c (make_dummy_parent): initialize subwindow instance
4782         cache.
4783         (Fset_window_configuration): zero extent_modiff.
4784
4785 2000-03-10  Andy Piper  <andy@xemacs.org>
4786
4787         * redisplay.c (Fredraw_frame): reset the changed_set flags so that
4788         more changes can be triggered.
4789         (Fredisplay_frame): ditto.
4790         (Fredraw_device): ditto.
4791         (Fredisplay_device): ditto.
4792         (redisplay_frame): make non-static.
4793         (redisplay_frame): call update_frame_gutter_geometry outside of
4794         display proper.
4795
4796         * gutter.h: declare update_frame_gutter_geometry.
4797
4798         * redisplay.h: declare redisplay_frame.
4799
4800         * gutter.c (update_frame_gutter_geometry): move geometry changes
4801         in update_frame_gutters here. Geometry changes can only occur
4802         outside of redisplay.
4803         (update_frame_gutters): remove geometry change code.
4804         (Fredisplay_gutter_area): make sure that we are in display when we
4805         update and that we have flushed any size changes.
4806
4807 2000-03-11  Andy Piper  <andy@xemacs.org>
4808
4809         * alloc.c (pdump_dump_data): remove i & count shadows.
4810
4811 2000-02-27  Mike Alexander  <mta@arbortext.com>
4812
4813         * sysdep.h: Declare pdump_read_file
4814
4815         * sysdep.c (pdump_read_file): New function
4816
4817         * alloc.c (pdump_load): Call pdump_read_file to get the portable
4818         dump data
4819
4820 2000-03-10  SL Baur  <steve@musashimaru.m17n.org>
4821
4822         * lrecord.h: add `lrecord_type_pgsetenv'.
4823
4824 2000-03-08  SL Baur  <steve@musashimaru.m17n.org>
4825
4826         * symsinit.h: declare (vars|syms)_of* functions.
4827         * lrecord.h: add `lrecord_type_pgconn' and 'lrecord_type_pgresult'.
4828
4829 2000-03-06  SL Baur  <steve@musashimaru.m17n.org>
4830
4831         * config.h.in: Add symbols HAVE_POSTGRESQL and HAVE_POSTGRESQLV7
4832
4833         * inline.c: Include postgresql.h lrecord stuffs to placate buggy
4834         GCCs.
4835
4836         * emacs.c (main_1): Call postgres initialization code.
4837
4838         * postgresql.h: New file.  PostgreSQL RDBMS support.
4839         * postgresql.c: New file.
4840
4841 2000-03-08  Yoshiki Hayashi  <yoshiki@xemacs.org>
4842
4843         * redisplay-output.c (redisplay_output_display_block): Disable
4844         redundant code.
4845
4846 2000-03-09  Yoshiki Hayashi  <yoshiki@xemacs.org>
4847
4848         * mule-canna.c (Fcanna_henkan_region): Translate doc-string.
4849         (Fcanna_henkan_next): Ditto.
4850         (Fcanna_bunsetu_henkou): Ditto.
4851         (Fcanna_henkan_kakutei): Ditto.
4852         (Fcanna_henkan_end): Ditto.
4853         (Fcanna_henkan_quit): Ditto.
4854         (Fcanna_henkan_next): Set retun value correctly.
4855         (c2mu): Use unsigned char instead of signed char.
4856
4857 2000-03-09  Yoshiki Hayashi  <yoshiki@xemacs.org>
4858
4859         * emacs.c (main_1): Always call syms_of_gui.
4860         * inline.c: include gui.h
4861
4862 2000-03-09  Yoshiki Hayashi  <yoshiki@xemacs.org>
4863
4864         * redisplay.c (Vvisible_bell): Renamed from visible_bell and
4865         converted to Lisp_Object.
4866         (Qtop_bottom): New variable.
4867         (syms_of_redisplay): Initialize it.
4868         * redisplay.h (Vvisible_bell): Ditto.
4869         * sound.c (ding): Ditto and check if Vvisible_bell is nil.
4870         * redisplay-x.c (x_flash): When Vvisible_bell is top-bottom,
4871         only flash top and bottom.
4872
4873 2000-03-08  Andy Piper  <andy@xemacs.org>
4874
4875         * buffer.c (Frename_buffer): record new buffer name the right way.
4876
4877 2000-03-08  Andy Piper  <andy@xemacs.org>
4878
4879         * glyphs.c (update_subwindow): increase hash depth so that widget
4880         items get picked up properly.
4881
4882         * redisplay-output.c (compare_runes): increase hash depth so that
4883         widget items get picked up properly.
4884
4885 2000-03-08  Andy Piper  <andy@xemacs.org>
4886
4887         * gutter.c (output_gutter): add some debug.
4888
4889         * glyphs.h (struct Lisp_Image_Instance): add display_hash.
4890         (IMAGE_INSTANCE_DISPLAY_HASH): new macro.
4891         (XIMAGE_INSTANCE_DISPLAY_HASH): ditto.
4892
4893         * redisplay-output.c (compare_runes): use display_hash to
4894         determine if glyphs really are not the same.
4895
4896         * glyphs.c (update_subwindow): check display_hash to see if
4897         anything really needs to be updated. If not then do
4898         nothing. Record the display_hash after updating.
4899         (image_instance_equal): compare the image_instance face also.
4900
4901 2000-03-07  Yoshiki Hayashi  <yoshiki@xemacs.org>
4902
4903         * redisplay.h: Fix comment style.
4904
4905 2000-03-08  Jonathan Harris  <jhar@tardis.ed.ac.uk>
4906
4907         * consle-msw.h (struct mswindows_frame):
4908         Added new member paint_pending to indicate whether a WM_PAINT
4909         magic event has been queued for this frame.
4910
4911         * event-msw.c (mswindows_drain_windows_queue):
4912         Don't queue a WM_PAINT magic event if one is already queued.
4913         (emacs_mswindows_handle_magic_event): clear paint_pending flag.
4914
4915         * frame-msw.c (mswindows_init_frame_1): initialise paint_pending flag.
4916
4917 2000-03-07  Didier Verna  <didier@xemacs.org>
4918
4919         * dired.c: #include `regex.h' after `sysfile.h'.
4920
4921 2000-03-06  Martin Buchholz  <martin@xemacs.org>
4922
4923         * sound.c (init_nas_sound): Fix compiler warning.
4924
4925         * alloc.c (ALIASING_VOIDPP_DEREFERENCE): New.
4926         (FREE_STRUCT_P):
4927         (MARK_STRUCT_AS_FREE):
4928         (MARK_STRUCT_AS_NOT_FREE):
4929         Make `gcc -fstrict-aliasing' work properly.
4930
4931 2000-03-07  Jonathan Harris  <jhar@tardis.ed.ac.uk>
4932
4933         * device-msw.c (mswindows_finish_init_device): Call CoInitialize().
4934         (mswindows_delete_device): Call CoUnnitialize().
4935
4936         * event-msw.c (mswindows_wnd_proc): WM_DROPFILES: Decode Shortcuts.
4937
4938 2000-02-25    <CraigL@DyCon.com>
4939
4940         * process-nt.c: MinGW now has <shellapi.h>, but still needs
4941         <errno.h>.
4942
4943         * sysdep.c: This extern declaration for environ prevents MinGW
4944         from finding the variable in CRTDLL.DLL.
4945
4946         * s\mingw32.h (PBS_SMOOTH): Removed, now defined in cygwin's
4947         windows headers.
4948         (SHGFI_EXETYPE): ..
4949         (WM_MOUSEWHEEL): ..
4950         (_WIN32_IE): Added, needed to get the TCS_BOTTOM and TCS_VERTICAL
4951         definitions.
4952         (MMRESULT): Removed, now defined in cygwin's windows headers.
4953         (TIMECAPS): ..
4954         (uid_t,gid_t,pid_t,ssize_t): ..
4955         (_timeb): Removed, MinGW defines both _timeb and timeb.
4956         (HAVE_H_ERRNO): Added.
4957         (HAVE_TZNAME): Added, configure is not detecting this.
4958
4959 2000-02-03  IKEYAMA Tomonori <tomonori@suiyokai.org>
4960
4961         * chartab.h (XCHAR_TABLE_VALUE_UNSAFE): New macro.
4962         * syntax.c (syntax_match): Use it.
4963
4964         * cmds.c: Import auto-fill-chars from FSF Emacs.
4965         (Vauto_fill_chars): New variables.
4966         (internal_self_insert): Check Vauto_fill_chars.
4967         (vars_of_cmds):
4968         Declare auto-fill-chars as a Lisp variable and initialize it.
4969
4970 2000-03-05  Jonathan Harris  <jhar@tardis.ed.ac.uk>
4971
4972         * fileio.c (Fmake_symbolic_link):
4973         (Ffile_symlink_p):
4974         Run handlers even if local machine doesn't have symlinks.
4975
4976 2000-03-05  Jonathan Harris  <jhar@tardis.ed.ac.uk>
4977
4978         * event-msw.c (mswindows_drain_windows_queue):
4979         Don't generate paint magic events for non-XEmacs frames.
4980
4981 2000-03-05  Andy Piper  <andy@xemacs.org>
4982
4983         * redisplay.c (redisplay_frame): generate_displayable_area and
4984         friends assumes that we are not in GC, we therefore have to make
4985         sure that this doesn't happen.
4986
4987         * gutter.c (calculate_gutter_size): generate_displayable_area
4988         assumes that we are not in GC, we therefore have to make sure that
4989         this doesn't happen.
4990
4991 2000-03-05  Martin Buchholz  <martin@xemacs.org>
4992
4993         * opaque.c (DEFINE_LRECORD_IMPLEMENTATION): opaque_ptr ==> opaque-ptr
4994
4995 2000-03-03  Jan Vroonhof  <vroonhof@math.ethz.ch>
4996
4997         * redisplay.c (regenerate_window): Make sure we set a sane value
4998         for end_pos even if we jump out of the loop.
4999         (regenerate_window): Answer Ben's question :-).
5000         (start_end_of_last_line): Add may_error argument.
5001         (start_of_last_line):
5002         (end_of_last_line): Pass may_error = 0.
5003         (end_of_last_line_may_error): New function.
5004         (pixel_to_glyph_translation): Use it, so we don't crash in
5005         event_to_glyph.
5006
5007 2000-03-04  Andy Piper  <andy@xemacs.org>
5008
5009         * window.h (struct window): add gutter_extent_modiff.
5010
5011         * window.c (allocate_window): zero out gutter_extent_modiff.
5012
5013         * redisplay.h: declare sync_display_line_structs.
5014
5015         * redisplay.c (add_glyph_rune): add a better comment.
5016
5017         * redisplay-output.c (sync_display_line_structs): made non-static.
5018         (compare_runes): remove unneccesary glyph cachel access.
5019
5020         * gutter.h: declare gutter_extent_signal_changed_region_maybe.
5021
5022         * gutter.c (output_gutter): don't output the gutter if extent
5023         changes only involve extents in buffers. use 4 sets of display
5024         lines.
5025         (gutter_extent_signal_changed_region_maybe): new function. Mark
5026         extents in gutters as changed.
5027         (update_frame_gutters): use 4 sets of display lines.
5028         (reset_gutter_display_lines): ditto.
5029         (free_frame_gutters): ditto.
5030         (redraw_exposed_gutter): force output of gutters.
5031
5032         * frame.h (struct frame): add 4 sets of gutter display lines.
5033
5034         * extents.c: (extent_changed_for_redisplay): signal changes to
5035         extents in strings in the gutter as well as extents in buffers.
5036
5037 2000-03-02  Andy Piper  <andy@xemacs.org>
5038
5039         * gutter.c (specifier_vars_of_gutter): cosmetic changes.
5040
5041         * frame.c (Fmake_frame): make sure the gutters get initialized
5042         after the frame is visible.
5043         (set_frame_selected_window): re-arrange compilation macros a
5044         little.
5045         (change_frame_size_1): mark gutters changed.
5046
5047         * device.c (Fset_device_class): mark gutters changed.
5048
5049 2000-03-01  Andy Piper  <andy@xemacs.org>
5050
5051         * window.c (window_top_frame_gutter_height): deleted.
5052         (window_bottom_frame_gutter_height): ditto.
5053         (window_left_frame_gutter_height): ditto.
5054         (window_right_frame_gutter_height): ditto.
5055         (window_top_gutter_height): don't use them.
5056         (window_bottom_gutter_height): ditto.
5057         (window_left_gutter_width): ditto.
5058         (window_right_gutter_width): ditto.
5059         (Fsplit_window): ditto.
5060         (Fwindow_pixel_edges): don't use border dimensions here.
5061
5062         * scrollbar.c (update_scrollbar_instance): don't take gutters into account.
5063         (update_scrollbar_instance): ditto.
5064
5065         * redisplay.c (generate_modeline): don't take gutters into account.
5066         (generate_modeline): ditto.
5067         (redisplay_frame): small gutter display optimisation.
5068
5069         * redisplay-x.c (x_output_vertical_divider): don't take gutters into account.
5070
5071         * redisplay-msw.c (mswindows_output_vertical_divider): don't take
5072         gutters into account.
5073
5074         * gutter.h (WINDOW_REAL_*_GUTTER_BOUNDS): remove bogus checks
5075         for window position and type.
5076
5077         * gutter.c (get_gutter_coords): fix for frame gutters.
5078         (update_frame_gutters): update frame geometry if the gutters have
5079         changed.
5080         (init_frame_gutters): record current gutter geometries.
5081
5082         * glyphs-msw.c (mswindows_subwindow_instantiate): remove unused
5083         var.
5084         (mswindows_widget_instantiate): ditto.
5085
5086         * frame.h (struct frame): add current_gutter_bounds.
5087
5088         * frame.c (change_frame_size_1): position window and minibuffer
5089         appropriately taking into account the frame gutters.
5090
5091         * frame-x.c: (x_initialize_frame_size): take into account the
5092         frame gutters.
5093
5094 2000-02-29  Stephen J. Turnbull  <stephen@xemacs.org>
5095
5096         * emacs.c (data-directory):  Xref `locate-data-file' in docstring.
5097
5098 2000-02-29  Stephen J. Turnbull  <stephen@xemacs.org>
5099
5100         * alloc.c (dumpopaquevec): Increase dimension for --with-canna.
5101
5102 1999-12-30  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
5103
5104         * file-coding.c (reset_decoding_stream): Clear previous
5105         detection state when autodetect.
5106
5107 2000-02-29  Didier Verna  <didier@xemacs.org>
5108
5109         * extents.c (set_extent_glyph_1): don't require extents to be
5110         attached.
5111
5112 2000-02-27  Andy Piper  <andy@xemacs.org>
5113
5114         * gutter.c (Fset_default_gutter_position): don't default left and
5115         right gutter visibility to t.
5116         (Fset_default_gutter_position): run
5117         default-gutter-position-changed-hook.
5118         (syms_of_gutter): add default-gutter-position-changed-hook.
5119
5120 2000-02-26  Andy Piper  <andy@xemacs.org>
5121
5122         * specifier.c (Fmake_specifier): add gutter references.
5123
5124         * gutter.h (RAW_WINDOW_GUTTER): new macro.
5125
5126         * lisp.h: declare Fvalid_plist_p.
5127
5128         * gutter.c (gutter_geometry_changed_in_window): mark the modeline
5129         as changed.
5130         (default_gutter_visible_p_changed_in_window): invalidate gutter as
5131         well as its visibility so that it gets reconstructed.
5132         (construct_window_gutter_spec): new function. Construct a string
5133         to be displayed in the gutter from a plist of strings. Take care
5134         to only use elements that are declared as visible.
5135         (calculate_gutter_size): use RAW_WINDOW_GUTTER instead of
5136         WINDOW_GUTTER.
5137         (gutter_validate): allow plists of strings in the specifier.
5138         (gutter_specs_changed): construct the real_gutter from the gutter
5139         specs using construct_window_gutter_spec.
5140         (gutter_visible_validate): gutter-visible is a new specifier type.
5141         (Fgutter_visible_specifier_p): new function for the new specifier.
5142         (syms_of_gutter): declare gutter-visible and
5143         Fgutter_visible_specifier_p.
5144         (specifier_type_create_gutter): intitalize new gutter-visible
5145         specifier.
5146         (reinit_specifier_type_create_gutter): ditto.
5147         (specifier_vars_of_gutter): use new specifier type for gutter
5148         visibility.
5149         (init_frame_gutters): construct real_gutter correctly.
5150         (Fgutter_specifier_p): beef up documentation.
5151         (Fgutter_size_specifier_p): ditto.
5152
5153         * winslots.h: add real_gutter slots.
5154
5155 2000-02-25  Andy Piper  <andy@xemacs.org>
5156
5157         * device-msw.c: Be kind to older cygwin versions. From Raymond
5158         Toy <toy@rtp.ericsson.se>.
5159
5160         * gui-msw.c (Fmswindows_shell_execute): Remove things unknown to
5161         earlier cygwins. From Raymond Toy <toy@rtp.ericsson.se>.
5162
5163 2000-02-25  Martin Buchholz  <martin@xemacs.org>
5164
5165         * elhash.c (MARK_OBJ): Practice macro hygiene.
5166
5167 2000-02-24  Martin Buchholz  <martin@xemacs.org>
5168
5169         * miscplay.c: s/__inline__/inline/g;
5170         * glyphs-msw.c (set_mono_pixel): INLINE ==> static inline
5171         (get_device_compdc): INLINE ==> static inline
5172         * *.[ch]: Change INLINE to INLINE_HEADER globally.
5173         find -name '*.h' | \
5174         xargs global-replace \
5175         's/(^|(?<=[^A-Za-z0-9_]))INLINE((?=[^A-Za-z0-9_])|$)/INLINE_HEADER/g'
5176
5177 2000-02-25  Andy Piper  <andy@xemacs.org>
5178
5179         * window.c (window_top_frame_gutter_height): new function.
5180         (window_top_window_gutter_height): ditto.
5181         (window_top_gutter_height): use them.
5182         (window_bottom_frame_gutter_height): new function.
5183         (window_bottom_window_gutter_height): ditto.
5184         (window_bottom_gutter_height): use them.
5185         (window_left_window_gutter_width): new function.
5186         (window_left_frame_gutter_width): ditto.
5187         (window_left_gutter_width): use them.
5188         (window_right_window_gutter_width): new function.
5189         (window_right_frame_gutter_width): ditto.
5190         (window_right_gutter_width): use them.
5191         (window_pixel_height): new function. calulate window pixel height
5192         with frame gutter involvement.
5193         (Fsplit_window): calculate new sizes taking frame gutters into
5194         account.
5195         (window_char_height_to_pixel_height): don't include frame gutters.
5196         (window_char_height): use window_pixel_height.
5197         (window_pixheight): rename from window_pixel_height.
5198         (change_window_height): use it.
5199         (window_pixel_height_to_char_height): don't include frame gutters.
5200         (window_char_width_to_pixel_width): ditto.
5201
5202 2000-02-25  Andy Piper  <andy@xemacs.org>
5203
5204         * glyphs.h (IMAGE_INSTANCE_FACE): glyph might be nil, don't crash
5205         if it is.
5206
5207 2000-02-24  Martin Buchholz  <martin@xemacs.org>
5208
5209         * alloc.c (staticpro):
5210         (staticpro_nodump):
5211         (dumpstruct):
5212         (dumpopaque):
5213         (pdump_wire):
5214         (pdump_wire_list):
5215         (compact_string_chars):
5216         (pdump_dump_wired):
5217         Convert:  if (foo) abort();  ==>  assert (! foo);
5218
5219         * eldap.c (Fldap_search_basic):
5220         (Fldap_add):
5221         (Fldap_modify):
5222         (Fldap_delete):
5223         Fix compiler warnings, and possible crashes if (random) return
5224         value were to be used.
5225
5226 2000-02-21  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
5227
5228         * device-msw.c: Workaround ResetDC failure.
5229
5230         * frame-msw.c (msprinter_init_frame_3): Added an assertion before
5231         applying a devmode.
5232
5233         * redisplay-msw.c (get_frame_dc): Added start_page_p.
5234         (mswindows_text_width): Do not start printer page.
5235
5236         * console-msw.h (CHECK_MSGDI_DEVICE): Added this and friends.
5237
5238         * glyphs-msw.c: Added image methods to msprinter console and
5239         msprinter-specific image instantiation.
5240
5241 2000-02-20  Mike Alexander  <mta@arbortext.com>
5242
5243         * select-msw.c (Fmswindows_set_clipboard): GC protect more things
5244         to avoid crashes when selection-sets-clipboard is on
5245         (mswindows_own_selection): ditto
5246
5247 2000-02-19  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
5248
5249         * glyphs-msw.c:
5250         * redisplay-msw.c (get_frame_dc):
5251         (get_frame_compdc):
5252         * console-msw.h:
5253         * device-msw.c (mswindows_init_device):
5254         (mswindows_delete_device):
5255         (msprinter_init_device):
5256         (msprinter_delete_device):
5257         * frame-msw.c (mswindows_init_frame_1):
5258         (mswindows_delete_frame):
5259         (msprinter_init_frame_3):
5260         (msprinter_delete_frame): Move compatible DC to device object from
5261         frame object, for both mswindows and msprinter. Only one at a time
5262         is needed, it is a real waste to have one per frame!
5263
5264 2000-02-23  Andy Piper  <andy@xemacs.org>
5265
5266         * glyphs.c: add dynamic width and height elements.
5267         (image_instance_equal): ditto.
5268
5269         * glyphs-widget.c (widget_query_geometry): calculate width and
5270         height dynamically if required.
5271         (initialize_widget_image_instance): initialize dynamic dimensions.
5272         (widget_instantiate): pick-up dynamic dimensions.
5273
5274         * glyphs.h (struct Lisp_Image_Instance): add width and height for
5275         dynamic determination. Add appropriate macros.
5276
5277         * gutter.h (WINDOW_GUTTER_BORDER_WIDTH): make non-integer
5278         dimensions safe.
5279         (WINDOW_GUTTER_SIZE): ditto.
5280         (WINDOW_GUTTER_SIZE_INTERNAL): ditto.
5281
5282         * redisplay-msw.c (get_frame_compdc): gcc can't cope with this
5283         inline.
5284         (get_frame_dc): ditto.
5285
5286         * redisplay.h (GLOBAL_RESET_CHANGED_FLAGS): don't reset faces
5287         here.
5288
5289 2000-02-23  Martin Buchholz <martin@xemacs.org>
5290
5291         * XEmacs 21.2.31 is released.
5292
5293 2000-02-22  Ben Wing <ben@xemacs.org>
5294
5295         * ntheap.c (allocate_heap): Make sure `ptr' is initialized.
5296
5297 2000-02-22  Andy Piper  <andy@xemacs.org>
5298
5299         * glyphs-x.c (x_widget_instantiate): don't explicitly resize here.
5300
5301 2000-02-21  Mike Sperber <mike@xemacs.org>
5302
5303         * .dbxrc:
5304         * .gdbinit:
5305         * Makefile.in.in: Remove obsolete EMACSBOOTSTRAP... environment
5306         variables.
5307
5308 2000-02-21  Mike Sperber <mike@xemacs.org>
5309
5310         * s/aix4.h: Declare getaddrinfo broken for AIX 4, which it is.
5311
5312 2000-02-21  Martin Buchholz <martin@xemacs.org>
5313
5314         * XEmacs 21.2.30 is released.
5315
5316 2000-02-20  Martin Buchholz  <martin@xemacs.org>
5317
5318         Performance hacking.
5319         * *.c (syms_of_*):
5320         Add INIT_LRECORD_IMPLEMENTATION macros, paired with
5321         DEFINE_LRECORD_IMPLEMENTATION macros in the same file.
5322         * emacs.c (main_1):
5323         * lisp.h (DEFUN):
5324         * console.c (DEFVAR_CONSOLE_LOCAL_1):
5325         * buffer.c (DEFVAR_BUFFER_LOCAL_1):
5326         * symeval.h (DEFVAR_SYMVAL_FWD):
5327         * symbols.c (guts_of_unbound_marker):
5328         Make all c_readonly objects also lisp_readonly and marked for life.
5329         * lrecord.h (struct lrecord_implementation):
5330         Document flags better.
5331         * lrecord.h (DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION_WITH_PROPS):
5332         * lrecord.h (DECLARE_LRECORD):
5333         * lrecord.h (XSETRECORD):
5334         * lrecord.h (RECORDP):
5335         * lrecord.h (RECORD_TYPEP):
5336         * lrecord.h (RECORD_MARKER): New.
5337         * lrecord.h (error_check_*):
5338         * lrecord.h (CONCHECK_NONRECORD):
5339         * lrecord.h (MAKE_LRECORD_IMPLEMENTATION):
5340         * lrecord.h (INIT_LRECORD_IMPLEMENTATION): New.
5341         * lrecord.h (set_lheader_implementation):
5342         * lrecord.h (enum lrecord_type): New.
5343         * symeval.h (SYMBOL_VALUE_MAGIC_P):
5344         * alloc.c (disksave_object_finalization_1):
5345         * alloc.c (mark_object):
5346         * alloc.c (lrecord_type_index):
5347         * alloc.c (tick_lcrecord_stats):
5348         * alloc.c (Fgarbage_collect):
5349         * alloc.c (init_alloc_once_early):
5350         * alloc.c (pdump_load):
5351         * alloc.c (GC_CHECK_LHEADER_INVARIANTS): New.
5352         * alloc.c (lrecord_type_index): Delete.
5353         Make lisp object type indexes be constant.
5354           Makes (byte-compile) 5% faster.
5355         Put all marker functions into their own array.
5356           Makes (garbage-collect) 5% faster.
5357         Optimize SYMBOL_VALUE_MAGIC_P.
5358           Makes (byte-compile) 2-3% faster.
5359         * config.h.in (gc_checking_assert): New.
5360         * alloc.c: Use gc_checking_assert().
5361         * .dbxrc: Make compatible with new object type implementation.
5362         * .gdbinit: Make compatible with new object type implementation.
5363         * alloc.c: Delete all symbols defined only for debugging, such as
5364         Lisp_Type_Vector and lrecord_charset.
5365
5366 2000-02-21  Andy Piper  <andy@xemacs.org>
5367
5368         * gui-msw.c (Fmswindows_shell_execute): fix file location
5369         problems.
5370
5371         * buffer.c (Fkill_buffer): remove buffer from alist buffer
5372         unshowing so that set_window_buffer doesn't undo
5373         kill_buffer_hook's hard work.
5374
5375         * glyphs-widget.c (tab_control_query_geometry): don't count the
5376         first item when calculating geometry.
5377
5378         * glyphs.c (map_subwindow): remove redundant code.
5379         (update_frame_subwindows): be more circumspect about when to
5380         update subwindows.
5381
5382         * glyphs-x.c (x_update_widget): Properly fix sizing bug. Fix bug
5383         when items haven't changed. Update faces if faces have changed as
5384         well as just the widget face.
5385         (x_tab_control_update): Update faces if faces have changed as well
5386         as just the widget face.
5387
5388 2000-02-21  Jonathan Harris  <jhar@tardis.ed.ac.uk>
5389
5390         * device-msw.c: (mswindows_delete_device): Remove redundant DDE
5391         registration.
5392         (build_syscolor_string): Use mswindows_color_to_string to try to
5393         get a named color.
5394         (mswindows_device_system_metrics): Reverse the foreground and
5395         background colors so that they match the documentation.
5396
5397         * objects-msw.c: (mswindows_X_color_map): tweak some values so
5398         they match the default Windows palette.
5399         (mswindows_color_to_string): New function.
5400
5401 2000-02-21  Jonathan Harris  <jhar@tardis.ed.ac.uk>
5402
5403         * s/windowsnt.h: Only use __declspec(noreturn) with MSVC>=6.
5404
5405 2000-02-18  Olivier Galibert  <galibert@pobox.com>
5406
5407         * m/*, s/*: Removed obsolete DATA_SEG_BITS, PURE_SEG_BITS,
5408         WORD_MACHINE, SIGN_EXTEND_CHAR and EXPLICIT_SIGN_EXTEND.
5409
5410         * symbols.c (init_symbols_once_early): Removed obsolete
5411         DATA_SEG_BITS related kludge.
5412         (defvar_magic): Ditto.
5413
5414         * malloc.c: Removed obsolete DATA_SEG_BITS
5415         * ralloc.c: Ditto.
5416         * mem-limits.h: Ditto.
5417
5418         * Makefile.in.in: Removed obsolete HAVE_SHM
5419         * emacs.c: Ditto.
5420
5421 2000-02-13  Jonathan Harris  <jhar@tardis.ed.ac.uk>
5422
5423         *  device-msw.c (mswindows_delete_device): Free DDE string
5424         handles.
5425
5426 2000-02-16  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
5427
5428         * keymap.c (get_keyelt):
5429         * unexnt.c (unexec):
5430         * vm-limit.c (memory_warnings):
5431         * ntheap.c (recreate_heap):
5432         * ntheap.h (UNINIT_PTR):
5433         * select-msw.c (Fmswindows_get_clipboard):
5434         (Fmswindows_set_clipboard):
5435         * objects-msw.h (MSWINDOWS_BAD_HFONT):
5436         * objects-msw.c:
5437         * menubar-msw.c (displayable_menu_item):
5438         * glyphs-msw.c:
5439         * glyphs-msw.h (IMAGE_INSTANCE_MSWINDOWS_MASK):
5440         * sysdep.c (sys_subshell):
5441         * process-nt.c (nt_create_process):
5442         * nt.c (normalize_filename):
5443         (dostounix_filename):
5444         (unixtodos_filename):
5445         * ntproc.c (win32_executable_type):
5446         * ntplay.c (play_sound_data_1):
5447         (play_sound_file):
5448         * editfns.c (get_home_directory):
5449         * event-msw.c (struct winsock_stream):
5450         (mswindows_dde_callback):
5451         * device-msw.c (msprinter_init_device):
5452         (msprinter_get_devmode_copy): Frobbed syntax frivolities.
5453
5454         * toolbar-msw.c (mswindows_free_frame_toolbars): Paramters to
5455         mswindows_clear_toolbar were swapped!
5456
5457         * objects-msw.c:(colormap_t):
5458         (fontmap_t):
5459         * emacs.c (struct standard_args): Fixed const jumble.
5460
5461         * glyphs-widget.c (update_widget): Fixed comparison notation.
5462
5463         * event-msw.c (mswindows_dde_callback): Removed extraneous ';'.
5464
5465         * s\windowsnt.h (DOESNT_RETURN): Defined to support the MSVC
5466         __declspec(noreturn) syntax.
5467
5468 2000-02-19  Martin Buchholz  <martin@xemacs.org>
5469
5470         * eldap.c (Fldap_open):
5471         (Fldap_search_basic):
5472         (Fldap_add):
5473         (Fldap_modify):
5474         Use new coding system conversion macros.
5475
5476 2000-01-06  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
5477
5478         * console-tty.c (tty_init_console): Change MULE to FILE_CODING.
5479
5480 1999-11-27  Oscar Figueiredo  <Oscar.Figueiredo@di.epfl.ch>
5481
5482         * eldap.h (Fldap_search) Renamed from Fldap_search_internal:
5483         (Fldap_add, Fldap_modify, Fldap_delete): New functions
5484
5485         * eldap.c (Qadd, Qreplace): New constant symbols
5486         (Fldap_open): Use the LDAP_OPT_RESTART option to avoid
5487         interruptions by XEmacs signals
5488         Remove unnecessary calls to slow_down_interrupts and
5489         speed_up_interrupts
5490         (Fldap_search_basic): Renamed from Fldap_search_internal
5491         Added new optional parameter VERBOSE that triggers the
5492         display of progress messages
5493         Remove unnecessary calls to slow_down_interrupts and
5494         speed_up_interrupts
5495         LDAP result code analysis rewritten
5496         (Fldap_add, Fldap_modify, Fldap_delete): New functions
5497         (syms_of_eldap): Define the new symbols and functions
5498
5499
5500 2000-02-17  Martin Buchholz  <martin@xemacs.org>
5501
5502         * realpath.c: Determine PATH_MAX maximally portably.
5503
5504         * insdel.c (bytecount_to_charcount): Optimize.
5505         The function used to be optimized for entirely ASCII sequences.
5506         Now it is optimized for successive characters from the same
5507         charset.  This also wins big for _mostly_ ASCII sequences.
5508
5509         * fileio.c (Ffile_truename): convert return from realpath() using
5510         Qfile_name, not Qbinary.  Fixes obvious bug with non-ASCII symlinks.
5511         - Rewrite GCPROing slightly.
5512
5513         * sysdep.c (sys_open): Do filename conversion, like all other
5514         sys_* functions.  Fixes bug:
5515         (let ((file-name-coding-system 'iso-8859-2))
5516            (write-region x y latin2-name))
5517         ==> writes filename using internal encoding.
5518
5519 2000-02-18  Martin Buchholz  <martin@xemacs.org>
5520
5521         * buffer.c (DEFVAR_BUFFER_LOCAL_1): Turn on c_readonly. Always const.
5522         * console.c (DEFVAR_CONSOLE_LOCAL_1): Turn on c_readonly. Always const.
5523         * symeval.h (DEFVAR_SYMVAL_FWD): Turn on c_readonly. Always const.
5524         * eval.c (lrecord_subr): Remove this_one_is_unmarkable.
5525         * symbols.c (lrecord_symbol_value_forward): Remove this_one_is_unmarkable.
5526         * symbols.c (guts_of_unbound_marker): Turn on c_readonly.
5527         * lrecord.h (UNMARKABLE_LRECORD_HEADER_P): Delete.
5528         (CONST_IF_NOT_DEBUG): Delete.
5529         * alloc.c (this_one_is_unmarkable): Delete.
5530         (mark_object): Don't check for this_one_is_unmarkable. Use the
5531         c_readonly flag instead.
5532         * lisp.h (DEFUN): Define a Lisp_Subr as c_readonly.
5533
5534 2000-02-18  Jonathan Harris  <jhar@tardis.ed.ac.uk>
5535
5536         * event-msw.c (mswindows_drain_windows_queue):
5537         (emacs_mswindows_handle_magic_event): Remove attempt to optimise
5538         away redundant repaint events.
5539
5540 2000-02-17  Andy Piper  <andy@xemacs.org>
5541
5542         * redisplay.h: declare mark_redisplay_structs.
5543
5544         * redisplay.c (redisplay_window):
5545         (redisplay_frame): don't check subwindows_state_changed.
5546         (mark_redisplay): mark gutters here.
5547
5548         * glyphs.c: (instantiate_image_instantiator): always layout if we
5549         haven't done so already.
5550         (allocate_image_instance): don't mark as dirty.
5551         (update_subwindow): bind inhibit_quit.
5552
5553         * gutter.c (mark_gutters): new function.
5554
5555         * glyphs-x.c (x_update_widget): Always resize to get round a
5556         widget bug.
5557
5558         * glyphs-msw.c (mswindows_tab_control_update): remove `;' that was
5559         breaking absolutely everything.
5560
5561         * gutter.h: declare mark_gutters.
5562
5563 2000-02-16  Martin Buchholz <martin@xemacs.org>
5564
5565         * XEmacs 21.2.29 is released.
5566
5567 2000-02-15  Olivier Galibert  <galibert@pobox.com>
5568
5569         * fns.c (size_bit_vector): Fix computation of the size.
5570
5571 2000-02-15  Martin Buchholz  <martin@xemacs.org>
5572
5573         * *.[ch]: Change CONST to const globally.
5574         find -name '*.[ch]' | \
5575         xargs global-replace \
5576         's/(^|(?<=[^A-Za-z0-9_]))CONST((?=[^A-Za-z0-9_])|$)/const/g'
5577         - Remove vestigial references to CONST_IS_LOSING
5578
5579 2000-02-13  Jonathan Harris  <jhar@tardis.ed.ac.uk>
5580
5581         * event-msw.c (mswindows_drain_windows_queue): Remove hack to
5582         bailout early on quit. Enqueue WM_PAINT events as XEmacs magic
5583         events instead of dispatching them directly.
5584         (mswindows_handle_paint): New function to do repainting.
5585         (mswindows_wnd_proc):
5586         (emacs_mswindows_handle_magic_event): Call above function.
5587
5588 2000-02-13  Jonathan Harris  <jhar@tardis.ed.ac.uk>
5589
5590         * objects-msw.c (mswindows_create_font_variant): Return the new
5591         font handle.
5592         (initialize_font_instance): Get font metrics from the underlined
5593         variant of the font to cope with the case where the underlined
5594         font has a bigger descent.
5595
5596 2000-02-08   Daiki Ueno  <ueno@ueda.info.waseda.ac.jp>
5597
5598         * gui.c (gui_item_accelerator): Return the first underlined
5599         character in item name.
5600
5601 2000-02-11  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
5602
5603         * lisp.h: Added Qprinter.
5604
5605         * general.c (syms_of_general): Initialized it.
5606
5607         * redisplay-msw.c (get_frame_dc): Conditionally start a new page.
5608         (get_frame_dc):
5609         (get_frame_compdc): Made inline.
5610
5611         * console.h (struct console_methods): Added eject_page method.
5612
5613         * frame.h: Added FRAME_DISPLAY_P and friends.
5614         Aligned backslahes in many macros in more readable fashion.
5615         Added page_number to struct frame, and an accessor macro
5616         for it.
5617
5618         * defice.h: Added DEVICE_DISPLAY_P and friends.
5619
5620         * device.c (Fdevice_printer_p): Used these.
5621
5622         * frame.c (allocate_frame_core): Initialize page number.
5623         (Fprint_job_page_number):
5624         (Fprint_job_eject_page): Implemented.
5625
5626         * frame-msw.c (msprinter_eject_page): Added method.
5627         (msprinter_start_page): Added.
5628
5629         * window.c (Fwindow_truncated_p): Fixed docstring.
5630         (Fwindow_last_line_visible_height): Implemented.
5631
5632 2000-02-09  Yoshiki Hayashi  <yoshiki@xemacs.org>
5633
5634         * frame.c (change_frame_size_1): Undo 2000-02-03 change.
5635
5636 1999-12-20  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
5637
5638         * syntax.c (scan_words): Always advance at least one character.
5639
5640 2000-02-13  Andy Piper  <andy@xemacs.org>
5641
5642         * redisplay.c (add_glyph_rune): call get_glyph_cachel_index here
5643         to make sure the glyph is in the cachels.
5644
5645         * glyphs.h (struct Lisp_Image_Instance): make layout_changed a
5646         global image instance flag.
5647         (IMAGE_INSTANCE_NEEDS_LAYOUT): new macro.
5648         (XIMAGE_INSTANCE_NEEDS_LAYOUT): ditto.
5649
5650         * glyphs.c (allocate_image_instance): set dirty bits correctly.
5651         (Fset_image_instance_property): mark layout as changed.
5652         (invalidate_glyph_geometry_maybe): mark layout as changed.
5653         (glyph_width): use new NEEDS_LAYOUT macro.
5654         (glyph_ascent): ditto.
5655         (glyph_descent): ditto.
5656         (glyph_height): ditto.
5657         (image_instance_layout): mark layout as clean after laying out.
5658         (update_subwindow): don't mark layout as clean here.
5659
5660         * glyphs-x.h (IMAGE_INSTANCE_X_WIDGET_ID): undo C++ changes, they
5661         should no longer be needed.
5662
5663         * glyphs-x.c (x_update_widget): sanitize asserts.
5664         (x_finalize_image_instance): sanitize assignment to widgets.
5665
5666         * glyphs-widget.c (widget_instantiate): don't need to clear the
5667         layout flag here.
5668
5669 2000-02-13  Martin Buchholz  <martin@xemacs.org>
5670
5671         * sysdep.c (getcwd): Use standard prototype.
5672         * sysdep.h (getcwd): Use standard prototype.
5673
5674         * fns.c (Fsubseq): Change parameters to more natural ANSI Lisp
5675         (sequence, start, end).
5676         Remove redundant type checking.
5677         (Fmapconcat): Remove useless GCPRO, a wrong-headed attempt (in
5678         view of `caller-protects') to avoid a crash where the real fix was
5679         found elsewhere.
5680
5681 2000-02-12  Martin Buchholz  <martin@xemacs.org>
5682
5683         * glyphs-x.c (x_finalize_image_instance): Compile error fixes.
5684
5685         * s/sol2.h: Remove feature macro initialization.
5686
5687         * alloc.c (alloc_lcrecord): Add more type checking assertions.
5688         (vector_hash): New.  Code from internal_hash.
5689         * lrecord.h:
5690         Fix up allocation subsystem comments.
5691
5692         * config.h.in: Add __EXTENSIONS__ for Solaris.
5693
5694         * systime.h (EMACS_GETTIMEOFDAY): New.
5695         (EMACS_GET_TIME): Use EMACS_GETTIMEOFDAY.
5696         Remove Solaris-specific code.
5697         Use void* for the (ignored) second arg for gettimeofday().
5698
5699         * elhash.c (hash_table_hash): Implement it, finally.
5700         * elhash.c:  Use hashcode_t.
5701
5702         * linuxplay.c (sighandler): Fix prototypes to use SIGTYPE.
5703         * sunplay.c (sighandler): Fix prototype to use SIGTYPE.
5704
5705         * lisp.h (STRETCHY_STRUCT_SIZEOF): Delete.
5706         * fns.c (size_bit_vector):
5707         * alloc.c (size_vector):
5708         (make_vector_internal):
5709         (make_bit_vector_internal):
5710         (sweep_bit_vectors_1):
5711         Replace calls to STRETCHY_STRUCT_SIZEOF with offsetof expression.
5712
5713 2000-02-10  Martin Buchholz  <martin@xemacs.org>
5714
5715         * s/aix4.h: #define MAP_FAILED if sys/mman.h didn't.
5716         Include strings.h to avoid warnings for bzero and strcasecmp.
5717
5718 2000-02-10  Olivier Galibert  <galibert@pobox.com>
5719
5720         * alloc.c: Move STRETCHY_STRUCT_SIZEOF from here...
5721         * lisp.h (STRETCHY_STRUCT_SIZEOF): ...to here
5722
5723         * fns.c (size_bit_vector): New.  Declare bit vectors as a
5724         sequence.
5725
5726 2000-02-10  Olivier Galibert  <galibert@pobox.com>
5727
5728         * symeval.h (struct symbol_value_magic): Remove "next" kludge and
5729         use a value field instead.
5730         (symbol_value_forward_forward): Use value field.
5731         (DEFVAR_SYMVAL_FWD): Use value field.
5732         (DEFVAR_SYMVAL_FWD_INT): Added.  Dumps the int with dumpopaque.
5733         (DEFVAR_INT): Use DEFVAR_SYMVAL_FWD_INT.
5734         (DEFVAR_CONST_INT): Ditto.
5735         (DEFVAR_BOOL): Ditto.
5736         (DEFVAR_CONST_BOOL): Ditto.
5737         (DEFVAR_INT_MAGIC): Ditto.
5738         (DEFVAR_BOOL_MAGIC): Ditto.
5739
5740         * symbols.c (guts_of_unbound_marker): Use value field.
5741         * console.c (DEFVAR_CONSOLE_LOCAL_1): Ditto.
5742         * buffer.c (DEFVAR_BUFFER_LOCAL_1): Ditto.
5743
5744         * lisp.h: Declare dumpopaque and noninteractive1.
5745
5746         * alloc.c (dumpopaque): Added.
5747         (pdump_dump_opaquevec): Added.
5748         (pdump): Call pdump_dump_opaquevec to dump opaque data.
5749         (pdump_load): Reload opaque data.  Sync noninteractive1 with
5750         noninteractive.
5751
5752 2000-02-10  Andy Piper  <andy@xemacs.org>
5753
5754         * glyphs.c (image_instance_layout): if the size changes, mark it
5755         as such.
5756
5757         * redisplay-output.c (redisplay_output_layout): Update the
5758         subwindow here.
5759         (redisplay_output_subwindow): ditto.
5760
5761         * glyphs.c (update_subwindow): make sure we reset flags for
5762         layouts as well as everything else.
5763
5764         * glyphs-widget.c (layout_layout): don't need to set the instances
5765         dimensions here.
5766
5767 2000-02-09  Martin Buchholz  <martin@xemacs.org>
5768
5769         * device-x.c (x_init_device): Wrap calls to dll_*  in HAVE_SHLIB,
5770         not HAVE_DLOPEN, which is a lower-level thing.
5771
5772         * .cvsignore: Ignore gmon.out
5773
5774 2000-02-09  Hamish Macdonald <hamishm@lucent.com>
5775
5776         * .cvsignore: Ignore portable dumper xemacs.dmp file
5777
5778 2000-02-09  Andy Piper  <andy@xemacs.org>
5779
5780         * redisplay-output.c (redisplay_output_layout): be more clever
5781         about when we output based on the changed flags.
5782
5783         * glyphs.h (struct image_instantiator_methods): add update_method.
5784         (struct Lisp_Image_Instance): add changed flags. Declare new
5785         macros for manipulating them.
5786
5787         * glyphs.c (allocate_image_instance): renamed glyph -> parent.
5788         (image_instance_parent_glyph): find an image_instance's parent
5789         glyph or image_instance.
5790         (image_instance_layout): mark the size as changed.
5791         (set_image_instance_dirty_p): new function. mark an image
5792         instance, plus all of its parents, as dirty.
5793         (Fset_image_instance_property): use it.
5794         (Fglyph_animated_timeout_handler): use it.
5795         (update_subwindow): call update_widget and device methods for
5796         update_subwindow. Mark all changed flags as clean.
5797         (Fresize_subwindow): mark size as changed.
5798
5799         * glyphs-x.c (x_finalize_image_instance): try and detect gc
5800         failures.
5801         (x_update_subwindow): only resize subwindows here.
5802         (x_update_widget): new function. Update all changed properties of
5803         a widget.
5804         (x_resize_subwindow): deleted.
5805         (x_widget_set_property): deleted.
5806         (x_progress_gauge_set_property): deleted.
5807         (x_progress_gauge_update): new function. Implement recorded
5808         changes.
5809         (x_tab_control_update): ditto.
5810         (x_tab_control_set_property): deleted.
5811         (console_type_create_glyphs_x): declare new functions.
5812         (image_instantiator_format_create_glyphs_x): ditto.
5813
5814         * glyphs-widget.c (widget_set_property): mark text changed.
5815         (update_widget): new function. Update properties of a widget.
5816         (widget_instantiate): for layouts make sure we set their
5817         children's parent correctly.
5818         (tab_control_set_property): new function. Record changes that will
5819         take place under redisplay's control.
5820         (progress_gauge_set_property): ditto.
5821         (image_instantiator_progress_guage): declare new functions.
5822         (image_instantiator_tab_control): ditto.
5823
5824         * glyphs-msw.c (mswindows_update_subwindow): just do resizing here
5825         now.
5826         (mswindows_update_widget): new function. Update all properties on
5827         a widget that have changed.
5828         (mswindows_button_update): new function. Update a button's set
5829         state.
5830         (mswindows_tab_control_update): new function. Update the items in
5831         a tab.
5832         (mswindows_tab_control_set_property): deleted.
5833         (mswindows_progress_gauge_update): new function. Update the
5834         progress gauge's progress.
5835         (mswindows_widget_set_property): deleted. This is all done
5836         asynchronously now.
5837         (mswindows_progress_gauge_set_property): ditto.
5838         (console_type_create_glyphs_mswindows): declare new methods.
5839         (image_instantiator_format_create_glyphs_mswindows): ditto.
5840
5841         * frame-msw.c (msprinter_init_frame_1): Remove unused variables.
5842         (msprinter_set_frame_properties): ditto.
5843
5844         * console.h (struct console_methods): Add update_widget_method.
5845
5846 2000-02-09  Andy Piper  <andy@xemacs.org>
5847
5848         * gui-msw.c (Fmswindows_shell_execute): Make
5849         mswindows-shell-execute industrial strength.
5850
5851 2000-02-08  Martin Buchholz  <martin@xemacs.org>
5852
5853         * lrecord.h: Make macro argument `props' match member function `plist'.
5854         * fns.c (Fget):
5855         * fns.c (Fput):
5856         * fns.c (Fremprop):
5857         * fns.c (Fobject_plist):
5858         * alloc.c:
5859         * symbols.c:
5860         Object property list frobbing cleanup.
5861         - Allow any lisp object (compared with `eq'), not just symbols, as
5862           keys in object plists.
5863         - Move symbol plist frobbing into symbols.c, where it belongs.
5864         - Move string plist frobbing into alloc.c, where it belongs.
5865         - Everything's an lrecord now, so no need to test for symbolp, etc.
5866         - Fix up doc strings to refer to PROPERTY, not PROPNAME.
5867
5868         * extents.c: Reorder code to remove declarations.
5869
5870         * frame.h (store_in_alist): Remove useless declaration.
5871
5872 2000-02-07  Martin Buchholz  <martin@xemacs.org>
5873
5874         * event-Xt.c (x_has_keysym): Use XConvertCase only if available.
5875         * config.h.in: Add HAVE_XCONVERTCASE.
5876
5877 2000-02-07  Andy Piper  <andy@xemacs.org>
5878
5879         * glyphs.c (image_instance_layout): undo 2000-01-29 change since
5880         it breaks many things.
5881
5882 2000-02-07  Jan Vroonhof  <vroonhof@math.ethz.ch>
5883
5884         * src/syntax.h (SYNTAX_START_P): Check whether the two chars
5885         actually can start a common comment type.
5886         * src/syntax.h (SYNTAX_END_P): ditto for end.
5887
5888 2000-02-07  Martin Buchholz <martin@xemacs.org>
5889
5890         * XEmacs 21.2.28 is released.
5891
5892 2000-02-06  Martin Buchholz  <martin@xemacs.org>
5893
5894         * event-Xt.c (x_keysym_to_character): New.
5895         (maybe_define_x_key_as_self_inserting_character): New.
5896         (x_has_keysym): New.
5897         Auto-define all keys on the keyboard as self-insert-key.
5898
5899 2000-02-02  Martin Buchholz  <martin@xemacs.org>
5900
5901         * menubar.c (vars_of_menubar): A small code simplification.
5902
5903         * minibuf.c (echo_area_append): Workaround egcs-20000131 c++ compiler bug
5904
5905         * ExternalShell.c:
5906         * ExternalClient.c:
5907         * EmacsShell-sub.c:
5908         * EmacsManager.c:
5909         * EmacsFrame.c:
5910         Use consistent style for specifying X resources.
5911
5912         * symbols.c (Fset): Further implement SYMVAL_LISP_MAGIC.
5913         This makes (dontusethis-set-symbol-value-handler) actually usable.
5914
5915         * lrecord.h (lrecord_decription_type):
5916         * alloc.c (pdump_register_sub):
5917         (pdump_dump_data):
5918         (pdump_reloc_one):
5919         Add XD_LISP_OBJECT_ARRAY to describe multiple Lisp_Objects.
5920         Comply with XEmacs coding style.
5921         All lrecord descriptions updated to use XD_LISP_OBJECT with 2
5922         args, and XD_LISP_OBJECT_ARRAY with 3 args.
5923
5924         * keymap.c (Faccessible_keymaps):
5925         Make (accessible-keymaps map "\C-h") do the Right Thing.
5926         Make (accessible-keymaps map []) do the Right Thing.
5927         Make (accessible-keymaps map "") do the Right Thing.
5928         (check_keymap_definition_loop): New function.
5929         (keymap_store_internal): Keep luser from shooting self in foot,
5930           via (define-key ctl-x-4-map "p" global-map).
5931         Remove fullness slot from struct Lisp_Keymap, since hash tables
5932         are now reliable.
5933         (print_keymap): Remove 'Yuck' factor by simply printing "size %d".
5934
5935 2000-01-30  Martin Buchholz  <martin@xemacs.org>
5936
5937         * redisplay.c (init_redisplay): Fix small memory leak.
5938         * elhash.h:
5939         * elhash.c (pdump_reorganize_hash_table):
5940         Rename from reorganize_hash_table. Change prototype.
5941         Reuse the original memory for hentries.  Save 100k.
5942         * alloc.c (PDUMP_READ): new macro.
5943         * alloc.c (pdump_load): Replace LISP_TO_VOID with higher-level macros.
5944         * alloc.c: No need to #ifndef before #undef.
5945
5946         * print.c: Allow debug_print() to print readably by modifying
5947         debug_print_readably.  Use consistent variable names.
5948
5949         * .dbxrc: Try to get things to work even if stopped in a function
5950         without source available by explicitly specifying source files.
5951 2000-02-03  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
5952
5953         * unexnt.c (_start): Removed bogus code which caused loading heap
5954         from differrent executable file.
5955         Removed bogus assignment to _fmode, which caused inconsistencies.
5956
5957 2000-02-03  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
5958
5959         * s\windowsnt.h: Removed lots of #if 0 blocks of Emacs heritage.
5960         Have spawnve encapsulation regard DONT_ENCAPSULATE.
5961         Do not preliminary `#define signal sigset'.
5962
5963         * systime.h: Do not prototype environ on windows nt and cygwin,
5964         this conflicts with system header.
5965
5966         * syssignal.h: Use correct define for WINDOWSNT
5967
5968         * sysdep.h: Do not prototype environ on windows nt, this conflicts
5969         with system header.
5970
5971         * sysdep.c (near start of file): Fixed commentary and rearranged
5972         ifdefs in readable order.
5973         (NEED_STARTS): Do not force NEED_STARTS when PDUMPing.
5974         (start_of_text):
5975         (end_of_text):
5976         (end_of_data): Do not compile in if using PDUMP.
5977
5978         * symsinit.h: Protptyped vars_of_nt().
5979
5980         * ntproc.c (windows9x_p): Added, instead of os_subtype.
5981         (find_child_console): Use it.
5982         (sys_kill): Use it.
5983
5984         * ntheap.h: Do not extern os_subtype.
5985
5986         * ntheap.c (cache_system_info): Do not cache unneeded:
5987         nt_major_version, nt_minor_version and os_subtype.
5988         (recreate_heap): Do not compile in when PDUMPing.
5989
5990         * nt.c (geteuid and friends): Use the new varibale
5991         nt_fake_unix_uid, instead of hashing fake uid out of NT RID.
5992         (init_user_info): Removed the above mentioned hackery.
5993         (fstat, stat): Do not compile in if using MSVC 5.0 and above -
5994         stat has been fixed in the C runtime.
5995         (vars_of_nt): Added, defined the nt_fake_unix_uid variable there.
5996
5997         * file-coding.c (struct file_coding_dump): Do not define
5998         ucs_to_mule_table in the struct if not MULE.
5999         (struct struct lrecord_description fcd_description_1): Do not dump
6000         the above.
6001
6002         * emacs.c (main_1): Call vars_of_nt().
6003         (right before Fdump_emacs_data): Don't need lastfile if using both
6004         portabe dumper and system malloc.
6005
6006         * alloc.c (Fmemory_limit): Conditionalized out.
6007         (pdump): Use OPEN_BINARY for the portable dump file.
6008         (pdump_load): Ditto.
6009
6010 2000-02-02  Mike Alexander  <mta@arbortext.com>
6011
6012         * nt.c (convert_time): Set tm_isdst before calling mktime and
6013         avoid calling it at all if the compiler supports 64 bit integers.
6014         Also initialize utc_base_ft before using it.
6015
6016 2000-02-03   Daiki Ueno  <ueno@ueda.info.waseda.ac.jp>
6017
6018         * frame.c (change_frame_size_1): Take f->internal_border_width
6019         into consideration when calculating the width of the frame.
6020
6021 2000-02-01  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6022
6023         * window.c (frame_min_height):
6024         (frame_size_valid_p):
6025         (frame_pixsize_valid_p): Added.
6026         (check_frame_size): Generalized.
6027
6028         * window.h: Prototyped the above.
6029
6030         * lisp.h:
6031         * general.c: Added Qbottom_margin, Qduplex, Qlandscape,
6032         Qleft_margin, Qorientation, Qportrait, Qright_margin, Qtop_margin.
6033         Deleted Vwin32_* and Vbinary_process_* unused variables.
6034
6035         * device-msw.c (msprinter_init_device): Do not get printer font
6036         list; Added DEVMODE functions.
6037
6038         * frame-msw.c: Added lots of printer code.
6039
6040         * faces.c: Moved 'left-margin and 'right-margin defsymbols to
6041         general.c.
6042
6043         * console-msw.h: Added more msprinter device private slots.
6044
6045 2000-02-01  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6046
6047         * event-msw.c (key_needs_default_processing_p): Added.
6048         (mswindows_wnd_proc, WM_KEYUP, KEYDOWN): Call it.
6049
6050 2000-01-29  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6051
6052         * glyphs.c (image_instance_layout): Mark image instance as clean
6053         after layout.
6054         (glyph_dirty_p): Removed redundant function.
6055         (invalidate_glyph_geometry_maybe): Added.
6056         (update_glyph_cachel_data): Call it.
6057
6058         * glyphs.h: Prototyped it.
6059
6060         * redisplay.c (add_glyph_rune): Call it.
6061         (redisplay_window): Reset glyphs cachels when frame faces has
6062         changed, thus forcing recomputation of built-in border glyphs.
6063
6064 2000-01-30  Martin Buchholz  <martin@xemacs.org>
6065
6066         * Makefile.in.in: Make portable dumper and purify play well together.
6067         Add imperfect, but better than nothing, support for pdump.
6068         Remove xemacs.dmp when temacs is re-generated.
6069         Don't ignore errors when dumping xemacs.
6070
6071         * symbols.c (maybe_call_magic_handler): Remove one magic number.
6072
6073 2000-01-28  Andy Piper  <andy@xemacs.org>
6074
6075         * frame.c (allocate_frame_core): Use new Fset_window_buffer signature.
6076         (setup_normal_frame): ditto.
6077         (setup_frame_without_minibuffer): ditto.
6078         (setup_minibuffer_frame): ditto.
6079         (delete_frame_internal): ditto.
6080         (Fmake_frame_invisible): ditto.
6081         (Ficonify_frame): ditto.
6082
6083         * window.h: change Fset_window_buffer signature.
6084
6085         * window.c (Fsplit_window): Use new Fset_window_buffer signature.
6086         (Fset_window_buffer): allow recording of buffer if the window is
6087         the selected window.
6088         (window_loop): Use new Fset_window signature.
6089
6090 2000-01-23  Daniel Pittman  <daniel@danann.net>
6091
6092         * config.h.in: Added template for `HAVE_ATHENA_3D'
6093
6094 2000-01-29  Andy Piper  <andy@xemacs.org>
6095
6096         * glyphs-x.c (x_resize_subwindow): Try and catch bogus resizes.
6097
6098         * gutter.c (output_gutter): Don't output if the window isn't live.
6099
6100 2000-01-28  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6101
6102         * glyphs-msw.c (mswindows_unmap_subwindow): Fix of corrupted patch
6103         of 01/12/00: Moved SetFocus back here where it belongs.
6104
6105 2000-01-23  Andy Piper  <andy@xemacs.org>
6106
6107         * s/cygwin32.h: declare printer things.
6108
6109 2000-01-26  Andy Piper  <andy@xemacs.org>
6110
6111         * select.c (Fown_selection_internal): GCPRO bug fix from Mike
6112         Alexander.
6113
6114 2000-01-24  Andy Piper  <andy@xemacs.org>
6115
6116         * glyphs-msw.c (mswindows_locate_pixmap_file): Expand filename.
6117         (mswindows_button_instantiate): Make sure glyph is a pixmap.
6118
6119         * glyphs-widget.c (widget_instantiate): Avoid shadows.
6120
6121         * frame-msw.c (msprinter_init_frame_3): Nuke warning.
6122
6123         * glyphs-msw.c: (mswindows_string_to_color): remove declaration.
6124
6125         * redisplay-msw.c (mswindows_output_cursor): Avoid shadows.
6126         (mswindows_output_display_block): Avoid local shadows.
6127
6128         * event-msw.c (mswindows_enqueue_magic_event): Avoid shadows.
6129         (mswindows_enqueue_mouse_button_event): ditto.
6130         (mswindows_handle_gui_wm_command): remove declaration.
6131
6132         * console-msw.c (mswindows_canonicalize_console_connection): Avoid
6133         warnings.
6134
6135         * console-msw.h: Avoid shadows.
6136         (mswindows_get_toolbar_button_text):
6137         (emacs_mswindows_create_stream_pair):
6138         (emacs_mswindows_delete_stream_pair):
6139         (mswindows_handle_toolbar_wm_command): declare.
6140
6141         * device-msw.c (build_syscolor_string): Avoid shadows.
6142
6143 2000-01-23  Andy Piper  <andy@xemacs.org>
6144
6145         * glyphs-widget.c (widget_instantiate): reverse the items for
6146         layouts so that children are in the expected order.
6147
6148 2000-01-28  Martin Buchholz  <martin@xemacs.org>
6149
6150         * ralloc.c: safe_bcopy ==> memmove
6151         * gmalloc.c: Remove MEMMOVE_MISSING conditional code.
6152         * s/msdos.h: Remove BCOPY macros.
6153         * insdel.c (gap_right): Remove BCOPY conditional code.
6154         * insdel.c (gap_left): Remove BCOPY conditional code.
6155         XEmacs demands a working ANSI C compiler - hence memmove.
6156
6157         * regex.c (regex_compile): Remove accidental use of trigraphs.
6158
6159 2000-01-27  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6160
6161         * event-msw.c (mswindows_enqueue_misc_user_event): Initialize
6162         event timestamp.
6163
6164 2000-01-26  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6165
6166         * event-msw.c (mswindows_drain_windows_queue): Added the
6167         parameter.
6168         (mswindows_need_event): Commented the call to
6169         mswindows_drain_windows_queue().
6170         (emacs_mswindows_quit_p): Lookup the windows for keyboard messages
6171         only.
6172
6173         * console-msw.h: Moved a few function prototypes here from
6174         event-msw.c.
6175
6176         * gui-msw.c (mswindows_handle_gui_wm_command): Changed the ID
6177         parameter from unsigned short to unsigned long.
6178         (Fmswindows_shell_execute): Added return value.
6179
6180 2000-01-27  URA Hiroshi <ura@hiru.aoba.yokohama.jp>
6181
6182         * sysdep.c (init_system_name):
6183           process-unix.c (unix_canonicalized_host_name):
6184         Don't call freeaddrinfo() if getaddrinfo() fails.
6185
6186         * process-unix.c (unix_open_unix_network_stream):
6187         Moved the code to get a port # into address loop.
6188
6189 2000-01-27  Martin Buchholz  <martin@xemacs.org>
6190
6191         * buffer.c (reinit_vars_of_buffer):
6192         The right place to initialize conversion_in_dynarr and
6193         conversion_out_dynarr.
6194
6195         * alloc.c (pdump): Use the real open() till sys_open() is functional.
6196
6197         * process-unix.c (unix_canonicalize_host_name): Muleize.
6198         (unix_open_network_stream): Muleize.
6199
6200         * buffer.h: Fix up prototypes for ralloc.c functions.
6201
6202 2000-01-27  URA Hiroshi <ura@hiru.aoba.yokohama.jp>
6203         * config.h.in: added HAVE_GETADDRINFO and HAVE_GETNAMEINFO
6204         * sysdep.c: In init_system_name(), add code to use getaddrinfo()
6205                 instead of gethostbyname()
6206         * process-unix.c: In unix_canonicalize_host_name() and
6207                 unix_open_network_stream(), add code to use getaddrinfo()
6208                 instead of gethostbyname().
6209
6210 2000-01-27  Daniel Pittman <daniel@danann.net>
6211
6212         * device-x.c (x_init_device): Warn at run-time if using Athena 3d
6213         libs when built with flat Athena.
6214
6215 2000-01-27  Martin Buchholz  <martin@xemacs.org>
6216
6217         * ralloc.c: Replace SIZE (conflicts with Windows headers) with size_t.
6218         Use coding standards for function prototypes.
6219
6220 2000-01-25  Martin Buchholz  <martin@xemacs.org>
6221
6222         * dialog-msw.c (push_lisp_string_as_unicode):
6223         * doc.c (unparesseuxify_doc_string):
6224         * dired.c (Fuser_name_completion_1):
6225         * dired.c (Fuser_name_all_completions):
6226         * dired.c (free_user_cache):
6227         * dired.c (user_name_completion):
6228         * console-x.c (get_display_arg_connection):
6229         * minibuf.c (clear_echo_area_internal):
6230         * minibuf.c (echo_area_append):
6231         * eldap.c (Fldap_open):
6232         * eldap.c (Fldap_search_internal):
6233         * frame-x.c (x_set_frame_text_value):
6234         * frame-x.c (x_set_frame_properties):
6235         * frame-x.c (x_create_widgets):
6236         * redisplay-tty.c (term_get_fkeys_1):
6237         * objects-x.c (x_parse_nearest_color):
6238         * objects-x.c (x_valid_color_name_p):
6239         * objects-x.c (x_initialize_font_instance):
6240         * objects-x.c (x_list_fonts):
6241         * objects-x.c (x_find_charset_font):
6242         * tooltalk.c (Fadd_tooltalk_message_arg):
6243         * tooltalk.c (Fadd_tooltalk_pattern_attribute):
6244         * tooltalk.c (Fadd_tooltalk_pattern_arg):
6245         * process-unix.c (unix_create_process):
6246         * ntproc.c (sys_spawnve):
6247         * sound.c (Fplay_sound_file):
6248         * sound.c (Fplay_sound):
6249         * buffer.c (init_initial_directory):
6250         * buffer.c (init_buffer):
6251         * editfns.c (init_editfns):
6252         * editfns.c (Ftemp_directory):
6253         * editfns.c (Fuser_full_name):
6254         * editfns.c (uncache_home_directory):
6255         * editfns.c (get_home_directory):
6256         * editfns.c (Fuser_home_directory):
6257         * editfns.c (Fformat_time_string):
6258         * editfns.c (Fcurrent_time_string):
6259         * gui-x.c (button_item_to_widget_value):
6260         * database.c (Fopen_database):
6261         * event-Xt.c (x_to_emacs_keysym):
6262         * event-Xt.c (x_event_to_emacs_event):
6263         * event-Xt.c (describe_event_window):
6264         * event-msw.c (mswindows_wnd_proc):
6265         * glyphs-eimage.c (jpeg_instantiate):
6266         * glyphs-eimage.c (gif_instantiate):
6267         * glyphs-eimage.c (png_instantiate):
6268         * glyphs-eimage.c (tiff_instantiate):
6269         * glyphs-x.c (xbm_instantiate_1):
6270         * glyphs-x.c (x_xbm_instantiate):
6271         * glyphs-x.c (x_xface_instantiate):
6272         * glyphs-x.c (autodetect_instantiate):
6273         * glyphs-x.c (cursor_font_instantiate):
6274         * glyphs-x.c (x_widget_instantiate):
6275         * glyphs-x.c (x_widget_set_property):
6276         * glyphs-x.c (x_widget_property):
6277         * glyphs-x.c (BUILD_GLYPH_INST):
6278         * print.c (write_string_to_stdio_stream):
6279         * print.c (output_string):
6280         * print.c (Falternate_debugging_output):
6281         * print.c (Fexternal_debugging_output):
6282         * glyphs-msw.c (extract_xpm_color_names):
6283         * glyphs-msw.c (mswindows_xpm_instantiate):
6284         * glyphs-msw.c (bmp_instantiate):
6285         * glyphs-msw.c (resource_name_to_resource):
6286         * glyphs-msw.c (mswindows_resource_instantiate):
6287         * glyphs-msw.c (xbm_instantiate_1):
6288         * glyphs-msw.c (mswindows_xbm_instantiate):
6289         * glyphs-msw.c (mswindows_xface_instantiate):
6290         * glyphs-msw.c (mswindows_widget_instantiate):
6291         * glyphs-msw.c (add_tree_item):
6292         * glyphs-msw.c (add_tab_item):
6293         * glyphs-msw.c (mswindows_combo_box_instantiate):
6294         * glyphs-msw.c (mswindows_widget_property):
6295         * glyphs-msw.c (mswindows_combo_box_property):
6296         * glyphs-msw.c (mswindows_widget_set_property):
6297         * console.c (stuff_buffered_input):
6298         * objects-msw.c (mswindows_initialize_color_instance):
6299         * objects-msw.c (mswindows_valid_color_name_p):
6300         * objects-msw.c (mswindows_list_fonts):
6301         * objects-msw.c (mswindows_font_instance_truename):
6302         * bytecode.c (optimize_compiled_function):
6303         * select-x.c (symbol_to_x_atom):
6304         * select-x.c (x_atom_to_symbol):
6305         * select-x.c (hack_motif_clipboard_selection):
6306         * select-x.c (selection_data_to_lisp_data):
6307         * select-x.c (lisp_data_to_selection_data):
6308         * select-x.c (Fx_get_cutbuffer_internal):
6309         * select-x.c (Fx_store_cutbuffer_internal):
6310         * buffer.h (TO_EXTERNAL_FORMAT): New function.
6311         * buffer.h (TO_INTERNAL_FORMAT): New function.
6312         * emacs.c (make_arg_list_1):
6313         * emacs.c (make_argc_argv):
6314         * emacs.c (main_1):
6315         * emacs.c (Fdump_emacs):
6316         * emacs.c (split_string_by_emchar_1):
6317         * file-coding.h:
6318         * lisp.h:
6319         * lstream.h:
6320         * symsinit.h:
6321         * device-x.c (x_init_device):
6322         * device-x.c (Fx_valid_keysym_name_p):
6323         * device-x.c (Fx_get_font_path):
6324         * device-x.c (Fx_set_font_path):
6325         * glyphs.c (bitmap_to_lisp_data):
6326         * glyphs.c (pixmap_to_lisp_data):
6327         * alloc.c (make_ext_string): Use coding system arguments.  Update
6328         all callers.
6329         * alloc.c (build_string):
6330         * callproc.c (child_setup):
6331         * callproc.c (init_callproc):
6332         * fileio.c (lisp_strerror):
6333         * fileio.c (directory_file_name):
6334         * fileio.c (Fexpand_file_name):
6335         * fileio.c (Ffile_truename):
6336         * fileio.c (Fsysnetunam):
6337         * fileio.c (Fdo_auto_save):
6338         * sysdep.c (sys_readdir):
6339         * tests.c: New file.  Allow adding C tests.
6340         Replace GET_* macros with a more comprehensible and flexible
6341         interface, TO_INTERNAL_FORMAT() and TO_EXTERNAL_FORMAT().
6342         Modify all calls.
6343         Any coding system can be used to do format conversion.
6344         Eliminate enum external_data_format.
6345         Eliminate convert_to_external_format.
6346         Eliminate convert_to_internal_format.
6347         Make sure file-name, keyboard, terminal, and ctext are always
6348         defined as coding systems or aliases.  Make
6349         file-name-coding-system, terminal-coding-system, and
6350         keyboard-coding-system magical variables that are equivalent to
6351         defining the corresponding coding system aliases.
6352
6353         * file-coding.c (Fcoding_system_canonical_name_p): New function.
6354         * file-coding.c (Fcoding_system_alias_p): New function.
6355         * file-coding.c (Fcoding_system_aliasee): New function.
6356         * file-coding.c (append_suffix_to_symbol): New function.
6357         * file-coding.c (dangling_coding_system_alias_p): New function.
6358         * file-coding.c (Ffind_coding_system):
6359         * file-coding.c (Fcopy_coding_system):
6360         * file-coding.c (encode_coding_no_conversion):
6361         * file-coding.c (syms_of_file_coding):
6362         * file-coding.c (vars_of_file_coding):
6363         Rewrite coding system alias code.
6364         Allow nested aliases, like symbolic links.
6365         Allow redefinition of coding system aliases.
6366         Prevent existence of dangling coding system aliases.
6367
6368         * dired.c (Fuser_name_completion_1):
6369         * dired.c (Fuser_name_all_completions):
6370         A crash would happen if user did QUIT in the middle of building
6371         user_name_cache.  Remove redundant code in mainline and unwind_protect.
6372
6373         * lisp.h:
6374         * dynarr.c (Dynarr_min_size): Make static.  Increase value to 8.
6375
6376         * lstream.c (make_fixed_buffer_input_stream): Take a void *, not
6377         an unsigned char *.  Update all callers.
6378
6379 2000-01-26  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6380
6381         * callproc.c (Fcall_process_internal): Ignore Vbinary-process_output.
6382
6383 2000-01-25  Martin Buchholz  <martin@xemacs.org>
6384
6385         * elhash.c (hentry_description): Use more portable definition.
6386         (resize_hash_table): Initialize new hentries using
6387         xnew_array_and_zero, thereby simplifying the code.
6388
6389         * mule-charset.c (make_charset): Make sure entire object is
6390         intialized, to avoid Purify warnings.
6391
6392         * alloc.c (resize_string): Fix unlikely crash with big strings.
6393
6394 2000-01-24  Martin Buchholz  <martin@xemacs.org>
6395
6396         * realpath.c (xrealpath):
6397         Don't call getwd().
6398
6399 2000-01-25  Martin Buchholz  <martin@xemacs.org>
6400
6401         * lread.c (read_bit_vector): Fix memory leak reading literal bit vectors.
6402
6403 1999-12-28  Max Matveev  <max@melbourne.sgi.com>
6404
6405         * unexelfsgi.c (unexec): Change the way we decide which segment
6406         should be extended.
6407
6408         Assumption that .bss section should be outside the PT_LOADable
6409         segment. On IRIX with version 6.2 and above, .bss (or .sbss, if
6410         it's present) is inside the 'data' segment. This would fail the
6411         test which was used to find a segment to grow and cover new
6412         heap. Instead of this assumption, I created another one - on IRIX
6413         the segment to grow should start below .bss and it's address
6414         should extent above the end of .bss. Once this segment is
6415         identified, it's grown to accommodate the new heap and new
6416         zero-length .bss section is added at the end of .data2.
6417
6418 2000-01-25  Martin Buchholz  <martin@xemacs.org>
6419
6420         * eval.c (Feval): Wrong number of arguments should use original
6421         function, not the indirect_function version of it.
6422
6423 2000-01-24  Yoshiki Hayashi  <yoshiki@xemacs.org>
6424
6425         * glyphs-x.c (x_button_instantiate): Don't add image if
6426         it is not a pixmap.
6427         (x_locate_pixmap_file): Call Fexpand_file_name when file name
6428         is relative.
6429
6430 2000-01-21  Yoshiki Hayashi  <yoshiki@xemacs.org>
6431
6432         * symeval.h (DEFVAR_LISP_MAGIC): Remove semicolon after macro
6433         declaration.
6434         (DEFVAR_INT_MAGIC): Ditto.
6435         (DEFVAR_BOOL_MAGIC): Ditto.
6436         * glyphs.h: Reindent backslash.
6437
6438 2000-01-24  Martin Buchholz  <martin@xemacs.org>
6439
6440         * glyphs-widget.c (layout_query_geometry):
6441         (layout_layout): Use correct types for gheight, gwidth.
6442
6443 2000-01-24  Martin Buchholz  <martin@xemacs.org>
6444
6445         * EmacsManager.c (QueryGeometry): Purified.
6446
6447 2000-01-23  Martin Buchholz  <martin@xemacs.org>
6448
6449         * alloc.c (make_float): Make sure entire object is intialized, to
6450         avoid Purify warnings.
6451         (pdump_register_sub): Remove useless assignment.
6452         (pdump): Use xmalloc, not malloc.
6453         (pdump_load): Use xmalloc, not malloc.
6454
6455 2000-01-23  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6456
6457         * callproc.c:
6458         * dired-msw.c:
6459         * fileio.c:
6460         * process-nt.c:
6461         * redisplay-msw.c:
6462         * sysdep.c: Removed redundant #include <windows.h>
6463
6464 2000-01-22  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6465
6466         * frame.c (delete_frame_internal): Do not delete device when its
6467         implementation so declares.
6468         (delete_frame_internal): Set device selected frame to nil when
6469         last frame goes away.
6470
6471         * device-msw.c (msprinter_device_system_metrics): Implemented.
6472         (mswindows_device_system_metrics): Added 'device-dpi property.
6473
6474         * device.c: (Fdevice_printer_p): Added.
6475         Added 'offset-workspace device metric.
6476
6477         * console.h (device_metrics): Declared DM_offset_workspace.
6478
6479 2000-01-23  Martin Buchholz  <martin@xemacs.org>
6480
6481         * fileio.c (Ffile_truename): Remove pointless and confusing
6482         initialization of elen.
6483
6484         * glyphs-widget.c: Compiler warning fixes.
6485
6486 2000-01-23  Gunnar Evermann  <ge204@eng.cam.ac.uk>
6487
6488         * process.h (PROCESS_LIVE_P): Modify to take a Lisp_Process
6489         instead of a Lisp_Object as argument to make it consistent with
6490         the other LIVE_P macros.
6491         (CHECK_LIVE_PROCESS): New macro.
6492
6493         * process.c: Declare Qprocess_live_p.
6494         (Fprocess_live_p): New function.
6495         (create_process): Use PROCESS_LIVE_P.
6496         (read_process_output): Ditto.
6497         (set_process_filter): Ditto.
6498         (Fdelete_process): Ditto.
6499         (kill_buffer_processes): Ditto
6500         (process_send_signal): Use CHECK_LIVE_PROCESS.
6501         (Fprocess_input_coding_system): Check whether process is still
6502         alive (fix PR#1061).
6503         (Fprocess_output_coding_system): Ditto.
6504         (Fprocess_coding_system): Ditto.
6505         (Fset_process_input_coding_system): Ditto.
6506         (Fset_process_output_coding_system): Ditto.
6507
6508 2000-01-23  Andy Piper  <andy@xemacs.org>
6509
6510         * glyphs.h (struct Lisp_Image_Instance): change format by unifying
6511         layout and widget.
6512
6513         * glyphs.c (mark_image_instance): take into account changed
6514         image_instance format.
6515         (image_instance_equal): ditto.
6516         (image_instance_hash): ditto.
6517
6518         * glyphs-widget.c (widget_instantiate): Incorporate layout
6519         instantiation here. Delay layout of the layout until later.
6520         (layout_instantiate): deleted.
6521         (layout_query_geometry): new function. get the geometry of a
6522         layout.
6523         (layout_layout): layout a layout dynamically.
6524         (image_instantiator_widget): New function - splitting up
6525         image_instantiator_format_create_glyphs_widget for netwinder
6526         compilation.
6527         (image_instantiator_buttons):
6528         (image_instantiator_edit_fields):
6529         (image_instantiator_combo_box):
6530         (image_instantiator_scrollbar):
6531         (image_instantiator_progress_guage):
6532         (image_instantiator_tree_view):
6533         (image_instantiator_tab_control):
6534         (image_instantiator_labels):
6535         (image_instantiator_layout): ditto.
6536         (image_instantiator_format_create_glyphs_widget): Call preceeding
6537         functions.
6538
6539 2000-01-22  Martin Buchholz  <martin@xemacs.org>
6540
6541         * process.c (Fset_process_coding_system):
6542         * device-x.c (Fx_keysym_hash_table):
6543         Docstring fixes.
6544
6545         * lstream.c (Lstream_write): Return documented value, not 0.
6546
6547         * fileio.c (directory_file_name):
6548         (Fsubstitute_in_file_name):
6549         (Fsubstitute_insert_file_contents_internal):
6550         (Fwrite_region_internal):
6551         * emacs.c:
6552         * sysdep.c:
6553         * getloadavg.c:
6554         * systty.h:
6555         Remove vestigial APOLLO-conditional code.
6556
6557 2000-01-21  Martin Buchholz  <martin@xemacs.org>
6558
6559         * getpagesize.h: Add guard macros.
6560         * libsst.h: Add guard macros.
6561         * libst.h: Add guard macros.
6562         * line-number.h: Add guard macros.
6563         * ndir.h: Add guard macros.
6564         * sysfloat.h: Add guard macros.
6565         * sysfile.h: Add guard macros.
6566         * sysproc.h: Add guard macros.
6567         * syswait.h: Add guard macros.
6568         * xintrinsic.h: Add guard macros.
6569         * xintrinsicp.h: Add guard macros.
6570         * xmmanager.h: Add guard macros.
6571         * xmmanagerp.h: Add guard macros.
6572         * xmprimitive.h: Add guard macros.
6573         * xmu.h: Add guard macros.
6574         * gpmevent.h: Add copyright statement. Add guard macros.
6575         * miscplay.h: Add guard macros.
6576         * *.h: Use consistent C-standards-approved guard macro names.
6577
6578         * opaque.c (make_opaque): Switch parameter order.
6579         * opaque.h (make_opaque): Switch parameter order.
6580         Update all callers.
6581         * buffer.h (MAKE_MIRROR_TRT_TABLE): Use symbolic constant OPAQUE_CLEAR.
6582
6583         * config.h.in (type_checking_assert): Added.
6584         (bufpos_checking_assert): Added.
6585
6586 2000-01-21  Martin Buchholz  <martin@xemacs.org>
6587
6588         * alloc.c: Harmless pdump changes.
6589         - Use countof().
6590         - spell alignment correctly.
6591         * sysdep.c: Use countof()
6592
6593 2000-01-20  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6594
6595         * console.c (create_console): Use CONMETH_OR_GIVEN when calling
6596         initially_selected_for_input() console method, default to 0.
6597         (semi_canonicalize_console_connection): Try to delegate to
6598         canonicalize_console_connection if no such console method.
6599         (canonicalize_console_connection): Vice versa.
6600         (print_console): Do not print nil connection.
6601
6602         * console.h (XDEVIMPF_IS_A_PRINTER): Added.
6603         (XDEVIMPF_NO_AUTO_REDISPLAY): Added.
6604         (XDEVIMPF_FRAMELESS_OK): Added.
6605         (CONSOLE_INHERITS_METHOD): Added.
6606
6607         * console-msw.c (mswindows_canonicalize_console_connection):
6608         Added.
6609         (mswindows_canonicalize_device_connection): Added.
6610
6611         * console-msw.h (struct msprinter_device): Added this struct and
6612         accessor macros.
6613         (mswindows_device): Made fontlist a lisp object.
6614
6615         * device.c (semi_canonicalize_device_connection):  Try to delegate
6616         to canonicalize_device_connection if no such console method.
6617         (canonicalize_device_connection): Vice versa.
6618         (print_device): Do not print nil connection.
6619
6620         * device-msw.c (mswindows_init_device): Call InitCommonControls
6621         when have widgets.
6622         (mswindows_delete_device): Removed fontlist deallocation.
6623         (mswindows_mark_device): Added.
6624
6625         * events.c (event_equal): Added abort() at unreached code.
6626         (event_hash): Ditto.
6627
6628         * faces.c (complex_vars_of_faces): Added Qmsprinter to the list of
6629         fallback tags of Windows devices.
6630
6631         * general.c (syms_of_general): Initialized Qmsprinter.
6632
6633         * gutter.c (complex_vars_of_gutters): Added Qmsprinter to the list
6634         of fallback tags of Windows devices.
6635
6636         * lisp.h: Declared Qmsprinter.
6637
6638         * objects-msw.c (font_enum_callback_2): Rewrote to build lisp list
6639         of strings.
6640         (mswindows_list_fonts): Ditto.
6641         (mswindows_enumerate_fonts): Removed dependency on XDEVICE, so
6642         that it can be used by both mswindows and msprinter devices.
6643         (initialize_font_instance): Added.
6644         (mswindows_initialize_font_instance): Use it.
6645         (msprinter_initialize_font_instance): Added.
6646
6647         * redisplay.c (redisplay_device): Added the parameter AUTOMATIC
6648         and implementation flags check.
6649         (redisplay_without_hooks): Changed the call to the above.
6650         (Fredraw_device): Ditto.
6651         (Fredisplay_device): Ditto.
6652
6653         * redisplay-msw.c (get_frame_dc): Implemented.
6654         (get_frame_compdc): Implemented.
6655         (many functions): Use the two functions above to get device
6656         contexts, ether for a window or a printer.
6657
6658 2000-01-21  Olivier Galibert  <galibert@pobox.com>
6659
6660         * symbols.c (reinit_symbols_once_early): Put Qzero/Qnull_pointer
6661         initialization here.
6662         (init_symbols_once_early): Call it.
6663         * emacs.c (main_1): Call it.
6664         * symsinit.h: Declare it.
6665
6666 2000-01-19  Olivier Galibert  <galibert@pobox.com>
6667
6668         * alloc.c: Use a lrecord_header * in the backtrace instead of a
6669         Lisp_Object.
6670         (pdump_backtrace): Ditto.
6671         (pdump_register_object): Ditto.  Cleanup use of the pointers.
6672         (pdump_get_entry): Abort if trying to register a null pointer.
6673         (pdump_dump_data): Cleanup types when relocating.
6674         (pdump_dump_staticvec): Cleanup types w.r.t the reloc table.
6675         (pdump_dump_rtables): Remove bad casts.
6676         (pdump_load): Cleanup relocation w.r.t union type.  Use a
6677         Lisp_Object instead of a EMACS_INT for the hashtable
6678         reorganization.
6679
6680 2000-01-20  Martin Buchholz  <martin@xemacs.org>
6681
6682         * emacs.c (main_1): Rearrange morass of #ifdef's for correctness.
6683
6684         * callproc.c (call_process_cleanup): Isolate WINDOWSNT code for clarity.
6685
6686         * EmacsManager.c (GeometryManager): Avoid use of CPP for clarity.
6687
6688         * *.[ch]: global-replace 's/_of_xselect/_of_select_x/g' *.[ch]
6689
6690 2000-01-17  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6691
6692         * faces.h (FACE_STRIKETHRU_P): Added.
6693
6694         * glyphs-msw.c (mswindows_widget_hfont): Implemented, to take care
6695         of font variants.
6696
6697         * redisplay-msw.c (mswindows_apply_face_effects): Deleted.
6698         (mswindows_set_dc_font): New function, aware of font variants,
6699         separated from mswindows_update_dc.
6700
6701         * objects-msw.h (struct mswindows_font_instance_data): Added
6702         definition.
6703
6704         * objects-msw.c (mswindows_finalize_font_instance): Delete all
6705         cached fonts and the data structure.
6706         (mswindows_initialize_font_instance): Added creation of font data
6707         structure.
6708         (mswindows_print_font_instance): Print at least something.
6709         (mswindows_create_font_variant): Implemented.
6710         (mswindows_get_hfont): Implemented.
6711
6712 2000-01-13  Fabrice Popineau  <Fabrice.Popineau@supelec.fr>
6713
6714         * dired-msw.c: permute "sysdir.h" with "sysfile.h" because of
6715         prototyping problem with msvc.
6716
6717         * emacs.c (main_1): added syms_of_gui_mswindows() call
6718
6719         * gui-msw.c: added "mswindows-shell-execute" lisp subr and
6720         syms_of_gui_mswindows() function
6721
6722         * symsinit.h: added the prototype for syms_of_gui_mswindows()
6723
6724 2000-01-18  Martin Buchholz <martin@xemacs.org>
6725
6726         * XEmacs 21.2.27 is released.
6727
6728 2000-01-18  Martin Buchholz  <martin@xemacs.org>
6729
6730         * glyphs-eimage.c (struct tiff_error_struct):
6731         (tiff_error_func):
6732         (tiff_warning_func):
6733         #if HAVE_VSNPRINTF ==> #ifdef HAVE_VSNPRINTF
6734
6735         * unexmips.c:
6736         * unexhp9k3.c:
6737         * unexfreebsd.c:
6738         * unexec.c: Remove vestigial Lucid C code.
6739         * unexalpha.c:
6740         * unexaix.c:
6741         * termcap.c:
6742         * libsst.c: Ansify.
6743         Remove declarations of errno and strerror().
6744
6745         * eval.c (Fbacktrace): Small Purify-cation.  Fix docstring.
6746
6747         * .dbxrc (run-temacs): Use the horrible ${1+"$@"} instead of "$@".
6748
6749 2000-01-16  Martin Buchholz  <martin@xemacs.org>
6750
6751         * mule-charset.c (Fchar_octet): Resurrect from earlier in 1999.
6752         Optimize.
6753
6754 2000-01-14  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
6755
6756         * md5.c:
6757         * file-coding.c:
6758         * file-coding.h:
6759         Change enum eol_type to eol_type_t.
6760
6761 2000-01-17  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
6762
6763         * gui.c (get_gui_callback): Check cons before accessing car.
6764
6765 2000-01-17  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
6766
6767         * specifier.h (XSPECIFIER_TYPE): Add error checking version.
6768         (XSETSPECIFIER_TYPE): Ditto.
6769
6770 2000-01-17  Didier Verna  <didier@xemacs.org>
6771
6772         * redisplay.c (generate_fstring_runes): compute string size in
6773         characters, not bytes.
6774
6775 2000-01-09  Hrvoje Niksic  <hniksic@iskon.hr>
6776
6777         * window.c (Fwindow_minibuffer_p): Make WINDOW optional.
6778
6779 2000-01-14  Hrvoje Niksic  <hniksic@iskon.hr>
6780
6781         * print.c (print_error_message): Call print_prepare().
6782
6783 2000-01-14  Martin Buchholz  <martin@xemacs.org>
6784
6785         * .dbxrc: Renamed from dbxrc.
6786
6787         * events.c (event_to_character):
6788         Use `assert (foo)' instead of `if (!foo) abort()'
6789
6790         * .gdbinit (xtype): Add documentation.
6791         * .gdbinit (check-temacs): New function.
6792         * .gdbinit (check-xemacs): New function.
6793         * dbxrc (check-xemacs): New function.
6794         * dbxrc (check-xemacs): New function.
6795
6796 2000-01-14  Andy Piper  <andy@xemacs.org>
6797
6798         * glyphs-widget.c (widget_query_geometry): Make sure that we
6799         calculate default dimensions correctly.
6800
6801 2000-01-13  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6802
6803         * symsinit.h: Added prototype for reinit_vars_of_frame_mswindows.
6804
6805         * event-msw.c (vars_of_event_mswindows): Fixed a mistyped
6806         pdump_wire'd variable.
6807
6808         * emacs.c: (main_1): Conditionalized calls to
6809         reinit_vars_of_scrollbar_x and reinit_vars_of_module.
6810
6811 2000-01-13  Martin Buchholz  <martin@xemacs.org>
6812
6813         * window.c (Fset_window_configuration):
6814         * sysdep.c (_start):
6815         * input-method-motif.c (res):
6816         * event-Xt.c (Xt_process_to_emacs_event):
6817         Simple compiler warning fixes.
6818
6819         * bytecode.c (funcall_compiled_function): Use the original
6820         function symbol on the backtrace list in preference to the
6821         compiled_function object in error messages.
6822
6823 2000-01-13  Andy Piper  <andy@xemacs.org>
6824
6825         * glyphs-x.c (update_widget_face): Make sure we update the widget
6826         background as well as foreground.
6827
6828 2000-01-13  Andy Piper  <andy@xemacs.org>
6829
6830         * glyphs.h (struct Lisp_Image_Instance): Move justify and orient
6831         fields to subwindow.
6832         (IMAGE_INSTANCE_SUBWINDOW_JUSTIFY): new macro.
6833         (XIMAGE_INSTANCE_SUBWINDOW_JUSTIFY): ditto.
6834         (IMAGE_INSTANCE_SUBWINDOW_ORIENT): ditto.
6835         (XIMAGE_INSTANCE_SUBWINDOW_ORIENT): ditto.
6836
6837         * glyphs-widget.c (check_valid_tab_orientation): new function.
6838         (initialize_widget_image_instance): zero orientation and
6839         justification.
6840         (widget_instantiate): pick up orientation.
6841         (tab_control_query_geometry): return appropriate values for
6842         vertical tabs.
6843
6844         * glyphs-msw.c: (mswindows_tab_control_instantiate): assign
6845         appropriate creation flags for left, right and bottom tabs.
6846
6847         * s/cygwin32.h: add tab definitions.
6848
6849 2000-01-12  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
6850
6851         * glyphs-msw.c (mswindows_unmap_subwindow): Set focus back to the
6852         frame upon hiding a subwindow.
6853         (mswindows_button_instantiate): Changed the push button style to
6854         BS_PUSHBUTTON.
6855         (mswindows_button_instantiate): Removed button BS_NOTIFY
6856         style.
6857         (mswindows_button_instantiate): Removed redundant check for
6858         a disabled gui item.
6859         (mswindows_button_instantiate): Made use of WS_TABSTOP
6860         consistent: "operable" controls (edit, button, tree, scroll) have
6861         this style, "display-only" ones (static, progress gauge) do
6862         not. This style is currently ignored by XEmacs though. Also,
6863         removed the WS_EX_CONTROLPARENT style - it is not for children,
6864         it is for their parents!
6865         (mswindows_edit_field_instantiate): Ditto.
6866         (mswindows_progress_gauge_instantiate): Ditto.
6867         (mswindows_tree_view_instantiate): Ditto.
6868         (mswindows_tab_control_instantiate): Ditto.
6869         (mswindows_scrollbar_instantiate): Ditto.
6870         (mswindows_combo_box_instantiate): Ditto.
6871         (mswindows_widget_instantiate): Added the WS_EX_CONTROLPARENT
6872         style to the "clip" window.
6873         (mswindows_button_instantiate): Removed compilation warning by
6874         equally typing terms of the ?: operator.
6875
6876 2000-01-12  Didier Verna  <didier@xemacs.org>
6877
6878         * redisplay.c (generate_fstring_runes): new parameter holding the
6879         last modeline-format extent.
6880         (add_glyph_to_fstring_db_runes): new parameter holding the glyph
6881         extent, fill the glyph block with it.
6882         (generate_fstring_runes): handle these parameters.
6883         (generate_formatted_string_db): ditto.
6884
6885         * keymap.c (get_relevant_keymaps): retreive the keymaps from the
6886         glyphs'extents in the modeline.
6887
6888 1999-01-11  Mike Woolley  <mike@bulsara.com>
6889
6890         * ntheap.c: Reduced the reserved heap space from 1Gb down to
6891         256Mb, as a workaround for the non-starting problem many people
6892         have experienced.
6893
6894 2000-01-06  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
6895
6896         * console-tty.c (Fset_console_tty_output_coding_system):
6897         Force redrawing tty frame.
6898
6899 2000-01-10  Didier Verna  <didier@xemacs.org>
6900
6901         * redisplay.c (generate_fstring_runes): fix size computation bug.
6902
6903 2000-01-09  William M. Perry <wmperry@aventail.com>
6904
6905         * gpmevent.c: (gpm_next_event_cb): Don't return value from void function.
6906
6907 2000-01-09  Andy Piper  <andy@xemacs.org>
6908
6909         * glyphs-msw.c: index -> i to avoid shadows.
6910         (xbm_create_bitmap_from_data): make static.
6911         (check_valid_string_or_int): deleted.
6912         (mswindows_control_wnd_proc): message -> msg to avoid shadows.
6913
6914         * glyphs-x.c (x_update_subwindow): remove unused args.
6915
6916         * glyphs.c (glyph_image_instance): return the thing. Don't set the
6917         back pointer - this is done in allocate_image_instance.
6918         (query_string_font): return Qnil to make the compiler happy.
6919         (unmap_subwindow): set to ~0 to make the compiler happy.
6920         (glyph_query_geometry): comment out until used.
6921         (glyph_layout): ditto.
6922
6923 2000-01-09  Hrvoje Niksic  <hniksic@iskon.hr>
6924
6925         * insdel.c (signal_after_change): Remove extraneous unbind_to().