Mercurial > hg > xemacs-beta
annotate lisp/msw-init.el @ 4745:0c54de4c4b9d
Resolve the unregistered-CCL-programs-get-garbage-collected problem correctly
src/ChangeLog addition:
2009-11-15 Aidan Kehoe <kehoea@parhasard.net>
* mule-ccl.c (CCL_CALL_FOR_MAP_INSTRUCTION): Assert that we always
have a symbol in this macro.
(setup_ccl_program): Ensure we're not allocating unreachable
memory in this function; all symbols must have been resolved in a
given CCL program before this function is called.
(find_ccl_program): New function, return a CCL program with all
its symbols resolved if it is valid (possibly allocating memory),
Qnil otherwise.
(get_ccl_program): New function, exported to other files; call
find_ccl_program, and error if it gives nil.
(Fccl_program_p): Call find_ccl_program from this function instead
of implementing the bulk of it here.
(Fccl_execute): Call get_ccl_program instead of implementing the
bulk of it here.
(Fccl_execute_on_string): Ditto.
* mule-ccl.h (Vfont_ccl_encoder_alist): Remove this declaration,
it hasn't been used in years.
(get_ccl_program): Declare this function.
* mule-coding.c (ccl_putprop): Use get_ccl_program on any
specified encode or decode CCL program property.
(fixed_width_putprop): Ditto.
* mule-charset.c (Fmake_charset): Use get_ccl_program on any
specified ccl-program.
(Fset_charset_ccl_program): Ditto.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 15 Nov 2009 16:53:14 +0000 |
parents | e34711681f30 |
children | 308d34e9f07d |
rev | line source |
---|---|
428 | 1 ;;; msw-init.el --- initialization code for mswindows |
2 ;; Copyright (C) 1990, 1993, 1994 Free Software Foundation, Inc. | |
3 ;; Copyright (C) 1995 Board of Trustees, University of Illinois. | |
4 ;; Copyright (C) 1995, 1996 Ben Wing. | |
5 | |
6 ;; Author: various | |
7 ;; Rewritten for mswindows by: Jonathan Harris | |
8 | |
9 ;; This file is part of XEmacs. | |
10 | |
11 ;; XEmacs is free software; you can redistribute it and/or modify it | |
12 ;; under the terms of the GNU General Public License as published by | |
13 ;; the Free Software Foundation; either version 2, or (at your option) | |
14 ;; any later version. | |
15 | |
16 ;; XEmacs is distributed in the hope that it will be useful, but | |
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
19 ;; General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
22 ;; along with XEmacs; see the file COPYING. If not, write to the | |
23 ;; Free Software Foundation, 59 Temple Place - Suite 330, | |
24 ;; Boston, MA 02111-1307, USA. | |
25 | |
4477
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
26 (defvar make-device-early-mswindows-entry-point-called-p nil |
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
27 "Whether `make-device-early-mswindows-entry-point' has been called") |
428 | 28 |
4477
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
29 (defvar make-device-late-mswindows-entry-point-called-p nil |
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
30 "Whether `make-device-late-mswindows-entry-point' has been called") |
428 | 31 |
4477
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
32 (defun make-device-early-mswindows-entry-point () |
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
33 "Lisp code called before an `mswindows' device is created." |
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
34 (unless make-device-early-mswindows-entry-point-called-p |
428 | 35 ;; Old-style mswindows bindings. The new-style mswindows bindings |
36 ;; (namely Ctrl-X, Ctrl-C and Ctrl-V) are already spoken for by XEmacs. | |
442 | 37 (global-set-key '(shift delete) 'kill-primary-selection) |
38 (global-set-key '(shift insert) 'yank-clipboard-selection) | |
39 (global-set-key '(control insert) 'copy-primary-selection) | |
40 | |
41 (global-set-key '(meta f4) 'save-buffers-kill-emacs) | |
4477
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
42 (setq make-device-early-mswindows-entry-point-called-p t))) |
428 | 43 |
4477
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
44 (defun make-device-late-mswindows-entry-point (device) |
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
45 "Lisp code called after an `mswindows' device is created." |
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
46 (unless make-device-late-mswindows-entry-point-called-p |
e34711681f30
Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents:
832
diff
changeset
|
47 (setq make-device-late-mswindows-entry-point-called-p t))) |
428 | 48 |