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