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