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