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