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