Mercurial > hg > xemacs-beta
comparison man/internals/internals.texi @ 5384:3889ef128488
Fix misspelled words, and some grammar, across the entire source tree.
See xemacs-patches message with ID
<AANLkTi=edkEKtK3pZ60ytsG5pTJQy2TjAEVCZCLOa-oA@mail.gmail.com>.
author | Jerry James <james@xemacs.org> |
---|---|
date | Thu, 24 Mar 2011 11:00:11 -0600 |
parents | 97eb4942aec8 |
children | d54278e74d71 |
comparison
equal
deleted
inserted
replaced
5383:294ab9180fad | 5384:3889ef128488 |
---|---|
17798 it's hard to see how those consoles could have been done better | 17798 it's hard to see how those consoles could have been done better |
17799 without fixing the abstractions in the X (actually Xt), MS Windows, | 17799 without fixing the abstractions in the X (actually Xt), MS Windows, |
17800 and tty consoles as well as doing a complete refactoring of the | 17800 and tty consoles as well as doing a complete refactoring of the |
17801 console, device, and frame code.) | 17801 console, device, and frame code.) |
17802 | 17802 |
17803 What is desireable is sharing console, device, and frame methods across | 17803 What is desirable is sharing console, device, and frame methods across |
17804 platforms in a more general way, reducing the amount of duplicated code | 17804 platforms in a more general way, reducing the amount of duplicated code |
17805 by pulling it back into the redisplay engine proper or the Lisp modules | 17805 by pulling it back into the redisplay engine proper or the Lisp modules |
17806 as appropriate. For example, we should be able to use | 17806 as appropriate. For example, we should be able to use |
17807 @samp{make-frame-on-device} to share a single X connection among GTK, X, | 17807 @samp{make-frame-on-device} to share a single X connection among GTK, X, |
17808 and Xft frames. Xft is partially implemented, but GTK would be much | 17808 and Xft frames. Xft is partially implemented, but GTK would be much |
17851 @strong{N.B.} All of the object tables are actually references to | 17851 @strong{N.B.} All of the object tables are actually references to |
17852 console method tables. To create a variant of an existing console, | 17852 console method tables. To create a variant of an existing console, |
17853 there is a @samp{CONSOLE_INHERITS_METHOD} constructor, but this actually | 17853 there is a @samp{CONSOLE_INHERITS_METHOD} constructor, but this actually |
17854 constructs the name of the parent's method pointer and stores in the | 17854 constructs the name of the parent's method pointer and stores in the |
17855 derived console type's method table. Of course this is time-efficient, | 17855 derived console type's method table. Of course this is time-efficient, |
17856 and since there are few console types it is a neglible waste of space. | 17856 and since there are few console types it is a negligible waste of space. |
17857 However in practice this may have contributed to breaking the various | 17857 However in practice this may have contributed to breaking the various |
17858 abstractions, and the variant console must be coded in the same file as | 17858 abstractions, and the variant console must be coded in the same file as |
17859 the parent (because the methods are static). Another minor symptom of | 17859 the parent (because the methods are static). Another minor symptom of |
17860 the incompleteness of the abstraction is the fact that the API for | 17860 the incompleteness of the abstraction is the fact that the API for |
17861 inheritance of device methods for image formats is named | 17861 inheritance of device methods for image formats is named |
18043 both the toolkit and widgets. Under Xt, the ``shell'' window is an | 18043 both the toolkit and widgets. Under Xt, the ``shell'' window is an |
18044 EmacsShell widget, containing an EmacsManager widget of the same size, | 18044 EmacsShell widget, containing an EmacsManager widget of the same size, |
18045 which in turn contains a menubar widget and an EmacsFrame widget, inside | 18045 which in turn contains a menubar widget and an EmacsFrame widget, inside |
18046 of which is the client area. (The division into EmacsShell and | 18046 of which is the client area. (The division into EmacsShell and |
18047 EmacsManager is due to the complex and screwy geometry-management system | 18047 EmacsManager is due to the complex and screwy geometry-management system |
18048 in Xt [and X more generally]. The EmacsShell handles negotation with | 18048 in Xt [and X more generally]. The EmacsShell handles negotiation with |
18049 the window manager; the place of the EmacsManager widget is normally | 18049 the window manager; the place of the EmacsManager widget is normally |
18050 assumed by a widget that manages the geometry of its child widgets, but | 18050 assumed by a widget that manages the geometry of its child widgets, but |
18051 the EmacsManager widget just lets the XEmacs redisplay mechanism do the | 18051 the EmacsManager widget just lets the XEmacs redisplay mechanism do the |
18052 positioning.) | 18052 positioning.) |
18053 @end enumerate | 18053 @end enumerate |
28462 From the user's point of view, @file{fontconfig} provides a naming | 28462 From the user's point of view, @file{fontconfig} provides a naming |
28463 convention which is @emph{precise}, @emph{accurate}, and | 28463 convention which is @emph{precise}, @emph{accurate}, and |
28464 @emph{convenient}. Precision means that all properties available in the | 28464 @emph{convenient}. Precision means that all properties available in the |
28465 programming API can be individually specified. Accuracy means that the | 28465 programming API can be individually specified. Accuracy means that the |
28466 truename of the font is exactly the list of all properties specified by | 28466 truename of the font is exactly the list of all properties specified by |
28467 the font. Thus, the anomolies that occur with XLFDs on many servers | 28467 the font. Thus, the anomalies that occur with XLFDs on many servers |
28468 (including modern Linux distributions with XFree86 or X.org servers) | 28468 (including modern Linux distributions with XFree86 or X.org servers) |
28469 cannot occur. Convenience is subjective, of course. However, | 28469 cannot occur. Convenience is subjective, of course. However, |
28470 @file{fontconfig} provides a configuration system which (1) explicitly | 28470 @file{fontconfig} provides a configuration system which (1) explicitly |
28471 specifies the defaults and substitutions that will be made in processing | 28471 specifies the defaults and substitutions that will be made in processing |
28472 user queries, and (2) allows the user to specify search configuration, | 28472 user queries, and (2) allows the user to specify search configuration, |
31298 Lisp_Object), and manually handle the GCPRO's ourselves. If we needed | 31298 Lisp_Object), and manually handle the GCPRO's ourselves. If we needed |
31299 to distinguish here between static and dynamic objects, or static | 31299 to distinguish here between static and dynamic objects, or static |
31300 vs. local vs. heap, we could do so easily with bit flags in the object | 31300 vs. local vs. heap, we could do so easily with bit flags in the object |
31301 pointed to -- we have space for lots of them. | 31301 pointed to -- we have space for lots of them. |
31302 | 31302 |
31303 code reliablity and maintainability would likely substantially | 31303 code reliability and maintainability would likely substantially |
31304 increase due to the ability to express most things in a natural C++ | 31304 increase due to the ability to express most things in a natural C++ |
31305 way instead of lots of weird hackish hard-to-understand C stuff | 31305 way instead of lots of weird hackish hard-to-understand C stuff |
31306 implementing stuff the language wasn't really designed for. | 31306 implementing stuff the language wasn't really designed for. |
31307 Furthermore, there are even some possibilities for increased speed -- | 31307 Furthermore, there are even some possibilities for increased speed -- |
31308 many operations that can only reasonably be done now using Lisp | 31308 many operations that can only reasonably be done now using Lisp |