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