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