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