Mercurial > hg > xemacs-beta
view src/ExternalShell.h @ 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 | 74fd4e045ea6 |
children | 697ef44129c6 2aa9cd456ae7 |
line wrap: on
line source
/* External shell widget external header file. Copyright (C) 1993, 1994 Sun Microsystems, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Synched up with: Not in FSF. */ /* Written by Ben Wing, September 1993. */ #ifndef INCLUDED_ExternalShell_h_ #define INCLUDED_ExternalShell_h_ #ifndef XtNwindow #define XtNwindow "window" #endif #ifndef XtCWindow #define XtCWindow "Window" #endif #ifndef XtNclientTimeout #define XtNclientTimeout "clientTimeout" #endif #ifndef XtCClientTimeout #define XtCClientTimeout "ClientTimeout" #endif #ifndef XtNdeadClient #define XtNdeadClient "deadClient" #endif #ifndef XtCDeadClient #define XtCDeadClient "DeadClient" #endif typedef struct _ExternalShellClassRec *ExternalShellWidgetClass; typedef struct _ExternalShellRec *ExternalShellWidget; extern WidgetClass externalShellWidgetClass; Bool ExternalShellReady(Widget w, Window win, long event_mask); void ExternalShellSetFocus(Widget w); void ExternalShellUnrealize(Widget w); #define is_external_shell(w) (XtClass (w) == externalShellWidgetClass) #endif /* INCLUDED_ExternalShell_h_ */