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