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