APPROVE COMMIT 21.5
Unrelated to 21.4.
Somewhat jumping the gun on the autoconf stuff. :-)
Index: man/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/ChangeLog,v
retrieving revision 1.286
diff -u -U0 -r1.286 ChangeLog
--- man/ChangeLog 4 Feb 2005 02:51:20 -0000 1.286
+++ man/ChangeLog 19 Feb 2005 14:59:09 -0000
@@ -0,0 +1,45 @@
+2005-02-19 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * internals/internals.texi (Introduction to Writing C Code):
+ Change "mostly warning-free" to "warning-free" to encourage
+ reporting warnings as bugs.
+ (The configure Script):
+ Incorporate Malcolm Purvis's notes from configure.ac. Document
+ his implementations of keyword and complex options, and remove
+ descriptions of my obsolete code.
+
+2005-01-16 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * internals/internals.texi (Better Rendering Support --
+ Configuration with the Interim Patches):
+ Improve notes on configuration.
+
+2004-12-15 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * internals/internals.texi (Better Rendering Support --
+ Configuration with the Interim Patches): Menubar uses xftFont
+ resource, too.
+
+2005-02-03 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * internals/internals.texi (XEmacs from the Perspective of
+ Building): Mention autoconf.
+ (The Modules of XEmacs): Point Next the The Build Configuration
+ System and add Modules for Building XEmacs to the menu.
+ (A Summary of the Various XEmacs Modules): Add Modules for
+ Building XEmacs to menu, and Modules for Build Configuration,
+ Modules for Compiling XEmacs, and Modules for Preloading Lisp to
+ the table of sections.
+ (Low-Level Modules): Point Previous to Modules for Building XEmacs.
+ (Modules for Building XEmacs):
+ (Modules for Build Configuration):
+ (Modules for Compiling XEmacs):
+ (Modules for Preloading Lisp):
+ (The Build Configuration System):
+ (Adding Configurable Features):
+ (The configure Script):
+ (The Makefile Precursors):
+ New nodes.
+ (Rules When Writing New C Code):
+ Point Previous to The Build Configuration System.
+
Index: man/internals/internals.texi
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/internals/internals.texi,v
retrieving revision 1.59
diff -u -r1.59 internals.texi
--- man/internals/internals.texi 26 Jan 2005 09:48:27 -0000 1.59
+++ man/internals/internals.texi 19 Feb 2005 14:59:19 -0000
@@ -311,6 +311,7 @@
* XEmacs from the Perspective of Building::
* Build-Time Dependencies::
* The Modules of XEmacs::
+* The Build Configuration System::
* Rules When Writing New C Code::
* Regression Testing XEmacs::
* CVS Techniques::
@@ -2409,7 +2410,9 @@
The first step of building involves running the @file{configure} program
and passing it various parameters to specify any optional features you
want and compiler arguments and such, as described in the @file{INSTALL}
-file. This determines what the build environment is, chooses the
+file. (You may optionally run @file{autoconf} first to update the
+@file{configure} script. @xref{Modules for Build Configuration}.)
+This determines what the build environment is, chooses the
appropriate @file{s/} and @file{m/} file, and runs a series of tests to
determine many details about your environment, such as which library
functions are available and exactly how they work. The reason for
@@ -2520,12 +2523,13 @@
@code{custom-declare-variable-list} to prevent the @samp{void-variable}
error. (Currently this is only needed for @file{make-docfile.el}.)
-@node The Modules of XEmacs, Rules When Writing New C Code, Build-Time Dependencies, Top
+@node The Modules of XEmacs, The Build Configuration System, Build-Time Dependencies,
Top
@chapter The Modules of XEmacs
@cindex modules of XEmacs
@menu
* A Summary of the Various XEmacs Modules::
+* Modules for Building XEmacs::
* Low-Level Modules::
* Basic Lisp Modules::
* Modules for Standard Editing Operations::
@@ -2534,7 +2538,7 @@
* Modules for Interfacing with the Operating System::
@end menu
-@node A Summary of the Various XEmacs Modules, Low-Level Modules, The Modules of XEmacs,
The Modules of XEmacs
+@node A Summary of the Various XEmacs Modules, Modules for Building XEmacs, The Modules
of XEmacs, The Modules of XEmacs
@section A Summary of the Various XEmacs Modules
@cindex summary of the various XEmacs modules
@cindex modules, summary of the various XEmacs
@@ -2546,6 +2550,12 @@
@itemize @bullet
@item
+@ref{Modules for Build Configuration}.
+@item
+@ref{Modules for Compiling XEmacs}.
+@item
+@ref{Modules for Preloading Lisp}.
+@item
@ref{Low-Level Modules}.
@item
@ref{Basic Lisp Modules}.
@@ -3022,7 +3032,65 @@
-@node Low-Level Modules, Basic Lisp Modules, A Summary of the Various XEmacs Modules, The
Modules of XEmacs
+@node Modules for Building XEmacs, Low-Level Modules, A Summary of the Various XEmacs
Modules, The Modules of XEmacs
+@section Modules for Building XEmacs
+@cindex modules for building XEmacs
+@cindex building XEmacs, modules for
+
+@menu
+* Modules for Build Configuration::
+* Modules for Compiling XEmacs::
+* Modules for Preloading Lisp::
+@end menu
+
+
+
+@node Modules for Build Configuration, Modules for Compiling XEmacs, Modules for Building
XEmacs, Modules for Building XEmacs
+@subsection Modules for Build Configuration
+@cindex modules for build configuration
+@cindex build configuration, modules for
+
+@example
+@file{configure}
+(a)file{config.h.in}
+(a)file{Makefile.in.in}
+@end example
+
+@example
+(a)file{configure.ac}
+(a)file{configure.in}
+@end example
+
+@xref{The configure Script}.
+
+
+
+@node Modules for Compiling XEmacs, Modules for Preloading Lisp, Modules for Build
Configuration, Modules for Building XEmacs
+@subsection Modules for Compiling XEmacs
+@cindex modules for compiling xemacs
+@cindex compiling xemacs, modules for
+
+@strong{Please write this node!} @c ####
+
+This node should contain descriptions of files like the various
+Makefiles, and I guess cross-references to ellcc etc.
+
+
+
+@node Modules for Preloading Lisp, , Modules f
+@c #### Describe Alexey Gladkov and Yury Konovalov's work.
However, in late 2003 Eric Knauel <knauel@(a)informatik.uni-tuebingen.de>
and Matthias Neubauer <neubauer@(a)informatik.uni-freiburg.de> put forward
@@ -23255,15 +23645,15 @@
one may be made available for the Knauel-Matthias patch soon.
@menu
-* Better Rendering Support -- Issues::
+* Better Rendering Support -- Review Criteria::
* Better Rendering Support -- Implementation::
* Better Rendering Support -- Current Status::
* Better Rendering Support -- Configuration with the Interim Patches::
@end menu
-@node Better Rendering Support -- Issues, Better Rendering Support -- Implementation, ,
Future Work -- Better Rendering Support
-@subsection Better Rendering Support -- Issues
+@node Better Rendering Support -- Review Criteria, Better Rendering Support --
Implementation, , Future Work -- Better Rendering Support
+@subsection Better Rendering Support -- Review Criteria
@cindex better rendering support, issues
@cindex issues, better rendering support
@@ -23300,7 +23690,7 @@
to properly support display of different faces in non-buffer, non-window
contexts.
-@node Better Rendering Support -- Implementation, Better Rendering Support -- Current
Status, Better Rendering Support -- Issues, Future Work -- Better Rendering Support
+@node Better Rendering Support -- Implementation, Better Rendering Support -- Current
Status, Better Rendering Support -- Review Criteria, Future Work -- Better Rendering
Support
@subsection Better Rendering Support -- Implementation
@cindex better rendering support, implementation
@cindex implementation, better rendering support
@@ -23324,6 +23714,15 @@
of @file{Xft}'s rendering functionality should be separated from use of
@file{fontconfig}.
+@item fontconfig
+Fontconfig is dramatically different from the X model in several ways.
+In particular, @emph{fontconfig always returns a font}. However, the
+font returned need not be anything like the desired font. This means
+that XEmacs must adopt a strategy of delegating the search to
+fontconfig, then sanity-checking the return, rather than trying to use
+the fontconfig API to search using techniques appropriate for the X11
+core font API.
+
@item Font menus
The @samp{Options->Font} and @samp{Options->Font Sizes} menus are
broken, by design, not just by @file{Xft}. Although they work better
@@ -23492,6 +23891,26 @@
These menus don't work. All fonts are greyed out. All sizes are
available, but many (most?) faces don't change size, in particular,
@samp{default} does not.
+
+@item Antialiased text bleeding outside of reported extent
+On my PowerBook G4 Titanium 15" screen, X.org server v6.8.1,
+ dimensions: 1280x833 pixels (433x282 millimeters),
+ resolution: 75x75 dots per inch,
+ depth of root window: 24 planes
+(yes, those dimensions are broken),
+with font "Bitstream Vera Sans Mono-16:dpi=75" antialiased text may
+bleed out of the extent reported by XftTextExtents and other such
+facilities. This is most obvious with the underscore character in that
+font. The bottom of the underscore is antialiased, and insertions or
+deletions in the same line before the underscore leave a series of
+"phantom" underlines. Except that it doesn't happen on the very first
+such insertion or deletion after a window refresh. A similar effect
+sometimes occurs with deletions at the end of the line (no, I can't
+define "sometimes"). See also comments in @file{redisplay-x.c},
+functions @code{x_output_string} and @code{x_output_display_block}.
+(Mostly duplicated here.)
+
+I think this is probably an Xft bug, but I'm not sure.
@end table
@@ -23505,43 +23924,24 @@
@itemize
@item
-The only way to configure widget fonts at the present time is to use X
-resources (or hack the source and rebuild). Currently supported widgets
-are
-@itemize
-@item
-menubars
-@item
-tab controls
-@end itemize
-
-Here are the resources I use. @strong{Warning:} @emph{This interface
-will change.} The tab control has separate Font and XftFont resources,
-and uses the X resource manager to instantiate a FontStruct from the
-Font resource. The menubar on the other hand uses Font for both, but
-converts to FontStruct if Xft is not compiled in, and leaves it as a
-string if Xft is compiled in. There is no equivalent facility for
-XftFont yet, and creating one that handles both FontStruct and XftFont
-depending on XEmacs's configuration and the font name seems error-prone
-at best. Probably we will revert to a simple string representation for
-this resource, and convert to a face in XEmacs rather than a font in
-Xt/Xft.
-@example
-XEmacs*Tabs.xftFont: Bitstream Vera Sans-18
-XEmacs*menubar.font: Bitstream Vera Sans-18
-XEmacs.modeline.attributeFont: Bitstream Charter-26
-XEmacs.default.attributeFont: Bitstream Vera Sans Mono-24
-@end example
-No, I don't understand why I need to use different point sizes to get
-what looks like good balance to my eyes. I do highly recommend use of a
-proportional font in the modeline because it allows a lot more text to
-fit there.
+Although the menus don't work, it is possible to specify fonts for
+@emph{faces} using @code{set-face-font} (and other specifier-changing
+functions).
+
+There currently is no explicit way to specify that a particular font be
+used only for a given language. However, since many fonts support only
+a limited repertoire such as ISO 8859/1, you can use the precedence of
+specifications for a given specifier locale to get something of this
+effect for non-Latin character sets. This will normally work rather
+poorly for multiple Latin character sets, however, because the
+repertoires tend to have large amounts of overlap. Support for
+specifying font by @emph{language} as well as by character set is
+planned.
-@item
Because fonts supporting other languages tend to support English as
well, if you want to use one font for English and another for the other
language, you must use the @code{append} method when adding font
-specifications for the other language.
+specifications for the @emph{other} language.
However, this leaves you with a problem if you want to change the other
language's font: you have to remove the existing specification so it
@@ -23559,7 +23959,40 @@
(set-face-font 'default "Mikachan-14"
nil '(lang-ja) 'remove-tag-set-append)
@end example
+
+@item
+The only way to configure widget fonts at the present time is to use X
+resources (or hack the source and rebuild). Currently supported widgets
+are
+@itemize
+@item
+menubars
+@item
+tab controls
@end itemize
+
+Here are the resources I use. @strong{Warning:} @emph{This interface
+will change.} The tab control and menubar have separate Font and
+XftFont resources, and use the X resource manager to instantiate a
+FontStruct from the Font resource. There is no converter facility for
+XftFont yet, and creating one that handles both FontStruct and XftFont
+depending on XEmacs's configuration and the font name seems error-prone
+at best. Probably we will should to a simple string representation for
+this resource, and convert to a face in XEmacs rather than a font in
+Xt/Xft.
+@example
+XEmacs*Tabs.xftFont: Bitstream Vera Sans-16
+XEmacs*menubar*xftFont: Bitstream Vera Sans-16
+XEmacs.modeline.attributeFont: Bitstream Charter-16
+XEmacs.default.attributeFont: Bitstream Vera Sans Mono-16
+@end example
+I highly recommend use of a proportional font in the modeline because it
+allows a lot more text to fit there. (Previously the font sizes were
+quite varied, and there was a comment that this weirdness gave good
+balance. This isn't true on my main platform, Mac OS X, and needs to be
+rechecked on Linux, where it was observed.)
+@end itemize
+
@node Future Work Discussion, Old Future Work, Future Work, Top
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.