Mercurial > hg > xemacs-beta
view man/lispref/hooks.texi @ 4690:257b468bf2ca
Move the #'query-coding-region implementation to C.
This is necessary because there is no reasonable way to access the
corresponding mswindows-multibyte functionality from Lisp, and we need such
functionality if we're going to have a reliable and portable
#'query-coding-region implementation. However, this change doesn't yet
provide #'query-coding-region for the mswindow-multibyte coding systems,
there should be no functional differences between an XEmacs with this change
and one without it.
src/ChangeLog addition:
2009-09-19 Aidan Kehoe <kehoea@parhasard.net>
Move the #'query-coding-region implementation to C.
This is necessary because there is no reasonable way to access the
corresponding mswindows-multibyte functionality from Lisp, and we
need such functionality if we're going to have a reliable and
portable #'query-coding-region implementation. However, this
change doesn't yet provide #'query-coding-region for the
mswindow-multibyte coding systems, there should be no functional
differences between an XEmacs with this change and one without it.
* mule-coding.c (struct fixed_width_coding_system):
Add a new coding system type, fixed_width, and implement it. It
uses the CCL infrastructure but has a much simpler creation API,
and its own query_method, formerly in lisp/mule/mule-coding.el.
* unicode.c:
Move the Unicode query method implementation here from
unicode.el.
* lisp.h: Declare Fmake_coding_system_internal, Fcopy_range_table
here.
* intl-win32.c (complex_vars_of_intl_win32):
Use Fmake_coding_system_internal, not Fmake_coding_system.
* general-slots.h: Add Qsucceeded, Qunencodable, Qinvalid_sequence
here.
* file-coding.h (enum coding_system_variant):
Add fixed_width_coding_system here.
(struct coding_system_methods):
Add query_method and query_lstream_method to the coding system
methods.
Provide flags for the query methods.
Declare the default query method; initialise it correctly in
INITIALIZE_CODING_SYSTEM_TYPE.
* file-coding.c (default_query_method):
New function, the default query method for coding systems that do
not set it. Moved from coding.el.
(make_coding_system_1):
Accept new elements in PROPS in #'make-coding-system; aliases, a
list of aliases; safe-chars and safe-charsets (these were
previously accepted but not saved); and category.
(Fmake_coding_system_internal):
New function, what used to be #'make-coding-system--on Mule
builds, we've now moved some of the functionality of this to
Lisp.
(Fcoding_system_canonical_name_p):
Move this earlier in the file, since it's now called from within
make_coding_system_1.
(Fquery_coding_region):
Move the implementation of this here, from coding.el.
(complex_vars_of_file_coding):
Call Fmake_coding_system_internal, not Fmake_coding_system;
specify safe-charsets properties when we're a mule build.
* extents.h (mouse_highlight_priority, Fset_extent_priority,
Fset_extent_face, Fmap_extents):
Make these available to other C files.
lisp/ChangeLog addition:
2009-09-19 Aidan Kehoe <kehoea@parhasard.net>
Move the #'query-coding-region implementation to C.
* coding.el:
Consolidate code that depends on the presence or absence of Mule
at the end of this file.
(default-query-coding-region, query-coding-region):
Move these functions to C.
(default-query-coding-region-safe-charset-skip-chars-map):
Remove this variable, the corresponding C variable is
Vdefault_query_coding_region_chartab_cache in file-coding.c.
(query-coding-string): Update docstring to reflect actual multiple
values, be more careful about not modifying a range table that
we're currently mapping over.
(encode-coding-char): Make the implementation of this simpler.
(featurep 'mule): Autoload #'make-coding-system from
mule/make-coding-system.el if we're a mule build; provide an
appropriate compiler macro.
Do various non-mule compatibility things if we're not a mule
build.
* update-elc.el (additional-dump-dependencies):
Add mule/make-coding-system as a dump time dependency if we're a
mule build.
* unicode.el (ccl-encode-to-ucs-2):
(decode-char):
(encode-char):
Move these earlier in the file, for the sake of some byte compile
warnings.
(unicode-query-coding-region):
Move this to unicode.c
* mule/make-coding-system.el:
New file, not dumped. Contains the functionality to rework the
arguments necessary for fixed-width coding systems, and contains
the implementation of #'make-coding-system, which now calls
#'make-coding-system-internal.
* mule/vietnamese.el (viscii):
* mule/latin.el (iso-8859-2):
(windows-1250):
(iso-8859-3):
(iso-8859-4):
(iso-8859-14):
(iso-8859-15):
(iso-8859-16):
(iso-8859-9):
(macintosh):
(windows-1252):
* mule/hebrew.el (iso-8859-8):
* mule/greek.el (iso-8859-7):
(windows-1253):
* mule/cyrillic.el (iso-8859-5):
(koi8-r):
(koi8-u):
(windows-1251):
(alternativnyj):
(koi8-ru):
(koi8-t):
(koi8-c):
(koi8-o):
* mule/arabic.el (iso-8859-6):
(windows-1256):
Move all these coding systems to being of type fixed-width, not of
type CCL. This allows the distinct query-coding-region for them to
be in C, something which will eventually allow us to implement
query-coding-region for the mswindows-multibyte coding systems.
* mule/general-late.el (posix-charset-to-coding-system-hash):
Document why we're pre-emptively persuading the byte compiler that
the ELC for this file needs to be written using escape-quoted.
Call #'set-unicode-query-skip-chars-args, now the Unicode
query-coding-region implementation is in C.
* mule/thai-xtis.el (tis-620):
Don't bother checking whether we're XEmacs or not here.
* mule/mule-coding.el:
Move the eight bit fixed-width functionality from this file to
make-coding-system.el.
tests/ChangeLog addition:
2009-09-19 Aidan Kehoe <kehoea@parhasard.net>
* automated/mule-tests.el:
Check a coding system's type, not an 8-bit-fixed property, for
whether that coding system should be treated as a fixed-width
coding system.
* automated/query-coding-tests.el:
Don't test the query coding functionality for mswindows-multibyte
coding systems, it's not yet implemented.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sat, 19 Sep 2009 22:53:13 +0100 |
parents | 576fb035e263 |
children |
line wrap: on
line source
@c -*-texinfo-*- @c This is part of the XEmacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc. @c See the file lispref.texi for copying conditions. @setfilename ../../info/hooks.info @node Standard Hooks, Index, Standard Keymaps, Top @appendix Standard Hooks The following is a list of hook variables that let you provide functions to be called from within Emacs on suitable occasions. Most of these variables have names ending with @samp{-hook}. They are @dfn{normal hooks}, run by means of @code{run-hooks}. The value of such a hook is a list of functions. The recommended way to put a new function on such a hook is to call @code{add-hook}. @xref{Hooks}, for more information about using hooks. The variables whose names end in @samp{-function} have single functions as their values. Usually there is a specific reason why the variable is not a normal hook, such as the need to pass arguments to the function. (In older Emacs versions, some of these variables had names ending in @samp{-hook} even though they were not normal hooks.) The variables whose names end in @samp{-hooks} or @samp{-functions} have lists of functions as their values, but these functions are called in a special way (they are passed arguments, or else their values are used). @c !!! need xref to where each hook is documented or else document it @c by specifying what is expected, and when it is called relative to @c mode initialization.) @table @code @item activate-menubar-hook @item activate-popup-menu-hook @item ad-definition-hooks @item adaptive-fill-function @item add-log-current-defun-function @item after-change-functions @item after-delete-annotation-hook @item after-init-hook @item after-insert-file-functions @item after-revert-hook @item after-save-hook @item after-set-visited-file-name-hooks @item after-write-file-hooks @item auto-fill-function @item auto-save-hook @item before-change-functions @item before-delete-annotation-hook @item before-init-hook @item before-revert-hook @item blink-paren-function @item buffers-menu-switch-to-buffer-function @item c++-mode-hook @item c-delete-function @item c-mode-common-hook @item c-mode-hook @item c-special-indent-hook @item calendar-load-hook @item change-major-mode-hook @item command-history-hook @item comment-indent-function @item compilation-buffer-name-function @item compilation-exit-message-function @item compilation-finish-function @item compilation-parse-errors-function @item compilation-mode-hook @item create-console-hook @item create-device-hook @item create-frame-hook @item dabbrev-friend-buffer-function @item dabbrev-select-buffers-function @item delete-console-hook @item delete-device-hook @item delete-frame-hook @item deselect-frame-hook @item diary-display-hook @item diary-hook @item dired-after-readin-hook @item dired-before-readin-hook @item dired-load-hook @item dired-mode-hook @item disabled-command-hook @item display-buffer-function @item ediff-after-setup-control-frame-hook @item ediff-after-setup-windows-hook @item ediff-before-setup-control-frame-hook @item ediff-before-setup-windows-hook @item ediff-brief-help-message-function @item ediff-cleanup-hook @item ediff-control-frame-position-function @item ediff-display-help-hook @item ediff-focus-on-regexp-matches-function @item ediff-forward-word-function @item ediff-hide-regexp-matches-function @item ediff-keymap-setup-hook @item ediff-load-hook @item ediff-long-help-message-function @item ediff-make-wide-display-function @item ediff-merge-split-window-function @item ediff-meta-action-function @item ediff-meta-redraw-function @item ediff-mode-hook @item ediff-prepare-buffer-hook @item ediff-quit-hook @item ediff-registry-setup-hook @item ediff-select-hook @item ediff-session-action-function @item ediff-session-group-setup-hook @item ediff-setup-diff-regions-function @item ediff-show-registry-hook @item ediff-show-session-group-hook @item ediff-skip-diff-region-function @item ediff-split-window-function @item ediff-startup-hook @item ediff-suspend-hook @item ediff-toggle-read-only-function @item ediff-unselect-hook @item ediff-window-setup-function @item edit-picture-hook @item electric-buffer-menu-mode-hook @item electric-command-history-hook @item electric-help-mode-hook @item emacs-lisp-mode-hook @item fill-paragraph-function @item find-file-hooks @item find-file-not-found-hooks @item first-change-hook @item font-lock-after-fontify-buffer-hook @item font-lock-beginning-of-syntax-function @item font-lock-mode-hook @item fume-found-function-hook @item fume-list-mode-hook @item fume-rescan-buffer-hook @item fume-sort-function @item gnus-startup-hook @item hack-local-variables-hook @item highlight-headers-follow-url-function @item hyper-apropos-mode-hook @item indent-line-function @item indent-mim-hook @item indent-region-function @item initial-calendar-window-hook @item isearch-mode-end-hook @item isearch-mode-hook @item java-mode-hook @item kill-buffer-hook @item kill-buffer-query-functions @item kill-emacs-hook @item kill-emacs-query-functions @item kill-hooks @item LaTeX-mode-hook @item latex-mode-hook @item ledit-mode-hook @item lisp-indent-function @item lisp-interaction-mode-hook @item lisp-mode-hook @item list-diary-entries-hook @item load-read-function @item log-message-filter-function @item m2-mode-hook @item mail-citation-hook @item mail-mode-hook @item mail-setup-hook @item make-annotation-hook @item makefile-mode-hook @item map-frame-hook @item mark-diary-entries-hook @item medit-mode-hook @item menu-no-selection-hook @item mh-compose-letter-hook @item mh-folder-mode-hook @item mh-letter-mode-hook @item mim-mode-hook @item minibuffer-exit-hook @item minibuffer-setup-hook @item mode-motion-hook @item mouse-enter-frame-hook @item mouse-leave-frame-hook @item mouse-track-cleanup-hook @item mouse-track-click-hook @item mouse-track-down-hook @item mouse-track-drag-hook @item mouse-track-drag-up-hook @item mouse-track-up-hook @item mouse-yank-function @item news-mode-hook @item news-reply-mode-hook @item news-setup-hook @item nongregorian-diary-listing-hook @item nongregorian-diary-marking-hook @item nroff-mode-hook @item objc-mode-hook @item outline-mode-hook @item perl-mode-hook @item plain-TeX-mode-hook @item post-command-hook @item post-gc-hook @item pre-abbrev-expand-hook @item pre-command-hook @item pre-display-buffer-function @item pre-gc-hook @item pre-idle-hook @item print-diary-entries-hook @item prolog-mode-hook @item protect-innocence-hook @item remove-message-hook @item revert-buffer-function @item revert-buffer-insert-contents-function @item rmail-edit-mode-hook @item rmail-mode-hook @item rmail-retry-setup-hook @item rmail-summary-mode-hook @item scheme-indent-hook @item scheme-mode-hook @item scribe-mode-hook @item select-frame-hook @item send-mail-function @item shell-mode-hook @item shell-set-directory-error-hook @item special-display-function @item suspend-hook @item suspend-resume-hook @item temp-buffer-show-function @item term-setup-hook @item terminal-mode-hook @item terminal-mode-break-hook @item TeX-mode-hook @item tex-mode-hook @item text-mode-hook @item today-visible-calendar-hook @item today-invisible-calendar-hook @item tooltalk-message-handler-hook @item tooltalk-pattern-handler-hook @item tooltalk-unprocessed-message-hook @item unmap-frame-hook @item vc-checkin-hook @item vc-checkout-writable-buffer-hook @item vc-log-after-operation-hook @item vc-make-buffer-writable-hook @item view-hook @item vm-arrived-message-hook @item vm-arrived-messages-hook @item vm-chop-full-name-function @item vm-display-buffer-hook @item vm-edit-message-hook @item vm-forward-message-hook @item vm-iconify-frame-hook @item vm-inhibit-write-file-hook @item vm-key-functions @item vm-mail-hook @item vm-mail-mode-hook @item vm-menu-setup-hook @item vm-mode-hook @item vm-quit-hook @item vm-rename-current-buffer-function @item vm-reply-hook @item vm-resend-bounced-message-hook @item vm-resend-message-hook @item vm-retrieved-spooled-mail-hook @item vm-select-message-hook @item vm-select-new-message-hook @item vm-select-unread-message-hook @item vm-send-digest-hook @item vm-summary-mode-hook @item vm-summary-pointer-update-hook @item vm-summary-redo-hook @item vm-summary-update-hook @item vm-undisplay-buffer-hook @item vm-visit-folder-hook @item window-setup-hook @item write-contents-hooks @item write-file-data-hooks @item write-file-hooks @item write-region-annotate-functions @item x-lost-selection-hooks @item x-sent-selection-hooks @item zmacs-activate-region-hook @item zmacs-deactivate-region-hook @item zmacs-update-region-hook @end table