QUERY
Aidan Kehoe <kehoea(a)parhasard.net> writes:
The potential for conflict with GNU Emacs-F¢ X resources has
been-b
annoying for a long time, and the default frame name being $(A!0(Bemacs$(A!1(B
meant window managers have tended to show it quite a bit--I think we
should be more pro-active about the primary name the application is
known as, and X resources and window manager appearance is part of
that.
Hello Aidan, this issue has come up in the past although I don't find
the magic words to tickle the discussion out of the mailing list
archives.
IIRC, it was decided we should be compatible, so that Emacs users
giving XEmacs a try should not change to make lots of changes to get a
familiar look.
Will your patch change this?
Also, the emotive environent variable name
BRANDING_IS_FOR_THE_INSECURE, while funny at first, will be a curse
for those who try to help others in comp.emacs*.
I'd prefer a more "technical" name.
I think usually we maintain compatibility and allow the users to
enable a new feature.
Just my 0.02€
Best regards,
Adrian
etc/ChangeLog addition:
2005-03-20 Aidan Kehoe <kehoea(a)parhasard.net>
* sample.Xresources: Emacs -> XEmacs as the default application
class.
man/ChangeLog addition:
2005-03-20 Aidan Kehoe <kehoea(a)parhasard.net>
* xemacs/custom.texi (X Resources):
* xemacs/custom.texi (Geometry Resources):
* xemacs/custom.texi (Iconic Resources):
* xemacs/custom.texi (Resource List):
* xemacs/custom.texi (Face Resources):
* xemacs/custom.texi (Menubar Resources):
Emacs -> XEmacs as the default application class, describe that we
now use XEmacs as the application class and as the default frame
name, and that the old behaviour can be temporarily restored by
setting the BRANDING_IS_FOR_THE_INSECURE environment variable.
src/ChangeLog addition:
2005-03-20 Aidan Kehoe <kehoea(a)parhasard.net>
* device-x.c (x_init_device): Default the application class to
XEmacs, unless the BRANDING_IS_FOR_THE_INSECURE environment
variable is set.
* device-x.c (vars_of_device_x): Update the docstring for
Vx_emacs_application_class.
* frame.c (Fmake_frame): Initialise Vdefault_frame_name at
runtime, preferring "XEmacs", but using "emacs" if the
BRANDING_IS_FOR_THE_INSECURE environment variable is set.
* frame.c (vars_of_frame):
Update the docstring for Vdefault_frame_name.
XEmacs Trunk source patch:
Diff command: cvs -q diff -u
Files affected: src/frame.c src/device-x.c man/xemacs/custom.texi etc/sample.Xresources
Index: etc/sample.Xresources
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/sample.Xresources,v
retrieving revision 1.2
diff -u -u -r1.2 sample.Xresources
--- etc/sample.Xresources 2003/06/30 09:12:28 1.2
+++ etc/sample.Xresources 2005/03/20 16:50:17
@@ -27,66 +27,66 @@
! one of "black" or "white" on monochrome systems.
!
! The valid color names on your system can be found by looking in the file
-! `rgb.txt', usually found in /usr/lib/X11/ or /usr/openwin/lib/X11/.
+! `rgb.txt', usually found in /usr/X11R6/lib/X11/ or /usr/openwin/lib/X11/.
! Set the foreground and background colors of the `default' face.
! The default face colors are the base for most of the other faces'
! colors. The default background is gray80, and the default foreground
! is black.
-Emacs.default.attributeBackground: gray80
-Emacs.default.attributeForeground: black
+XEmacs.default.attributeBackground: gray80
+XEmacs.default.attributeForeground: black
! Set the modeline colors.
-Emacs.modeline*attributeForeground: Black
-Emacs.modeline*attributeBackground: Gray75
+XEmacs.modeline*attributeForeground: Black
+XEmacs.modeline*attributeBackground: Gray75
! Set the color of the text cursor.
-Emacs.text-cursor*attributeBackground: Red3
+XEmacs.text-cursor*attributeBackground: Red3
! If you want to set the color of the mouse pointer, do this:
-! Emacs.pointer*attributeForeground: Black
+! XEmacs.pointer*attributeForeground: Black
! If you want to set the background of the mouse pointer, do this:
-! Emacs.pointer*attributeBackground: White
+! XEmacs.pointer*attributeBackground: White
! Note that by default, the pointer foreground and background are the same
! as the default face.
! Set the menubar colors. This overrides the default foreground and
! background colors specified above.
-Emacs*menubar*Foreground: Gray30
-Emacs*menubar*Background: Gray75
+XEmacs*menubar*Foreground: Gray30
+XEmacs*menubar*Background: Gray75
! This is for buttons in the menubar.
! Yellow would be better, but that would map to white on monochrome.
-Emacs*menubar.buttonForeground: Blue
-Emacs*XlwMenu.selectColor: ForestGreen
-Emacs*XmToggleButton.selectColor: ForestGreen
+XEmacs*menubar.buttonForeground: Blue
+XEmacs*XlwMenu.selectColor: ForestGreen
+XEmacs*XmToggleButton.selectColor: ForestGreen
! Specify the colors of popup menus.
-Emacs*popup*Foreground: Black
-Emacs*popup*Background: Gray75
+XEmacs*popup*Foreground: Black
+XEmacs*popup*Background: Gray75
! Specify the colors of the various sub-widgets of the dialog boxes.
-Emacs*dialog*Foreground: Black
+XEmacs*dialog*Foreground: Black
! #A5C0C1 is a shade of blue
-Emacs*dialog*Background: #A5C0C1
+XEmacs*dialog*Background: #A5C0C1
! The following three are for Motif dialog boxes ...
-Emacs*dialog*XmTextField*Background: WhiteSmoke
-Emacs*dialog*XmText*Background: WhiteSmoke
-Emacs*dialog*XmList*Background: WhiteSmoke
+XEmacs*dialog*XmTextField*Background: WhiteSmoke
+XEmacs*dialog*XmText*Background: WhiteSmoke
+XEmacs*dialog*XmList*Background: WhiteSmoke
! While this one is for Athena dialog boxes.
-Emacs*dialog*Command*Background: WhiteSmoke
+XEmacs*dialog*Command*Background: WhiteSmoke
! Athena dialog boxes are sometimes built with the Xaw3d
! variant of the Athena toolkit.
! XEmacs being nice to 8bit displays, it defaults to:
-Emacs*dialog*Command*beNiceToColormap: true
+XEmacs*dialog*Command*beNiceToColormap: true
! If you are shocked by the ugliness of the 3d rendition,
! you may want to set (even on 8bit displays) the above to false.
! Xlw Scrollbar colors
-Emacs*XlwScrollBar.Foreground: Gray30
-Emacs*XlwScrollBar.Background: Gray75
-Emacs*XmScrollBar.Foreground: Gray30
-Emacs*XmScrollBar.Background: Gray75
+XEmacs*XlwScrollBar.Foreground: Gray30
+XEmacs*XlwScrollBar.Background: Gray75
+XEmacs*XmScrollBar.Foreground: Gray30
+XEmacs*XmScrollBar.Background: Gray75
!
! The Lucid Scrollbar supports two added resources, SliderStyle is either
@@ -95,8 +95,8 @@
! either "opposite" (default) or "same". Opposite puts the arrows
at opposite
! of the scrollbar, same puts both arrows at the same end, like the Amiga.
!
-! Emacs*XlwScrollBar.SliderStyle: dimple
-! Emacs*XlwScrollBar.ArrowPosition: opposite
+! XEmacs*XlwScrollBar.SliderStyle: dimple
+! XEmacs*XlwScrollBar.ArrowPosition: opposite
!
@@ -107,53 +107,53 @@
!
! To change the heights and widths of the toolbars:
!
-! Emacs.topToolBarHeight: 37
-! Emacs.bottomToolBarHeight: 0
-! Emacs.leftToolBarWidth: 0
-! Emacs.rightToolBarWidth: 0
-
-Emacs*topToolBarShadowColor: Gray90
-Emacs*bottomToolBarShadowColor: Gray40
-Emacs*backgroundToolBarColor: Gray75
-Emacs*toolBarShadowThickness: 2
+! XEmacs.topToolBarHeight: 37
+! XEmacs.bottomToolBarHeight: 0
+! XEmacs.leftToolBarWidth: 0
+! XEmacs.rightToolBarWidth: 0
+
+XEmacs*topToolBarShadowColor: Gray90
+XEmacs*bottomToolBarShadowColor: Gray40
+XEmacs*backgroundToolBarColor: Gray75
+XEmacs*toolBarShadowThickness: 2
! If you want to turn off vertical scrollbars, or change the default
! pixel width of the vertical scrollbars, do it like this (0 width
! means no vertical scrollbars):
!
-! Emacs.scrollBarWidth: 0
+! XEmacs.scrollBarWidth: 0
!
! To change it for a particular frame, do this:
!
-! Emacs*FRAME-NAME.scrollBarWidth: 0
+! XEmacs*FRAME-NAME.scrollBarWidth: 0
! If you want to turn off horizontal scrollbars, or change the default
! pixel height of the horizontal scrollbars, do it like this (0 height
! means no horizontal scrollbars):
!
-! Emacs.scrollBarHeight: 0
+! XEmacs.scrollBarHeight: 0
!
! To change it for a particular frame, do this:
!
-! Emacs*FRAME-NAME.scrollBarHeight: 0
+! XEmacs*FRAME-NAME.scrollBarHeight: 0
! To dynamically change the labels used for menubar buttons...
!
-! Emacs*XlwMenu.resourceLabels: True
-! Emacs*XlwMenu.newFrame.labelString: Open Another Window
+! XEmacs*XlwMenu.resourceLabels: True
+! XEmacs*XlwMenu.newFrame.labelString: Open Another Window
! To have the Motif scrollbars on the left instead of the right, do this:
!
-! Emacs*scrollBarPlacement: BOTTOM_LEFT
+! XEmacs*scrollBarPlacement: BOTTOM_LEFT
!
! To have the Athena scrollbars on the right, use `BOTTOM_RIGHT' instead
! To have Motif scrollbars act more like Xt scrollbars...
!
-! Emacs*XmScrollBar.translations: #override \n\
+! XEmacs*XmScrollBar.translations: #override \n\
! <Btn1Down>: PageDownOrRight(0) \n\
! <Btn3Down>: PageUpOrLeft(0)
@@ -179,22 +179,22 @@
! by lisp code which tries a number of different possibilities in order
! of preference. If you wish to override it, use this:
!
-! Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
+! XEmacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
! If you choose a font which does not have an italic version, you can specify
! some other font to use for it here:
!
-! Emacs.italic.attributeFont: -*-courier-medium-o-*-*-*-120-*-*-*-*-iso8859-*
+! XEmacs.italic.attributeFont: -*-courier-medium-o-*-*-*-120-*-*-*-*-iso8859-*
!
! If you choose a font which does not have a bold-italic version,
! you can specify some other font to use for it here:
!
-! Emacs.bold-italic.attributeFont: -*-courier-bold-o-*-*-*-120-*-*-*-*-iso8859-*
+! XEmacs.bold-italic.attributeFont: -*-courier-bold-o-*-*-*-120-*-*-*-*-iso8859-*
!
! And here is how you would set the background color of the `highlight' face,
! but only on the screen named `debugger':
!
-! Emacs*debugger.highlight.attributeBackground: PaleTurquoise
+! XEmacs*debugger.highlight.attributeBackground: PaleTurquoise
!
! See the NEWS file (C-h n) for a more complete description of the resource
! syntax of faces.
@@ -230,29 +230,29 @@
! (Motif uses `fontList' while most other things use `font' - if you don't
! know why you probably don't want to.)
!
-Emacs*XmDialogShell*FontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*
-Emacs*XmTextField*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
-Emacs*XmText*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
-Emacs*XmList*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
+XEmacs*XmDialogShell*FontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*
+XEmacs*XmTextField*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
+XEmacs*XmText*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
+XEmacs*XmList*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*
! Font in the Athena dialog boxes.
! I think 14-point looks nicer than 12-point.
! Some people use 12-point anyway because you get more text, but
! there's no purpose at all in doing this for dialog boxes.
-Emacs*Dialog*Font: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*
+XEmacs*Dialog*Font: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*
! Dialog box translations.
! =======================
! This accelerator binds <return> in a dialog box to <activate> on button1
-Emacs*dialog*button1.accelerators:#override\
+XEmacs*dialog*button1.accelerators:#override\
<KeyPress>Return: ArmAndActivate()\n\
<KeyPress>KP_Enter: ArmAndActivate()\n\
Ctrl<KeyPress>m: ArmAndActivate()\n
! Translations to make the TextField widget behave more like XEmacs
-Emacs*XmTextField.translations: #override\n\
+XEmacs*XmTextField.translations: #override\n\
!<Key>osfBackSpace: delete-previous-character()\n\
!<Key>osfDelete: delete-previous-character()\n\
!Ctrl<Key>h: delete-previous-character()\n\
@@ -280,7 +280,7 @@
! ArmAndActivate() for buttons that appear in dialog boxes. This is
! not 100% Motif compliant but the benefits far outweight the
! compliancy problem.
-Emacs*dialog*XmPushButton.translations:#override\n\
+XEmacs*dialog*XmPushButton.translations:#override\n\
<Btn1Down>: Arm()\n\
<Btn1Down>,<Btn1Up>: Activate()\
Disarm()\n\
@@ -301,7 +301,7 @@
! ximStyles is a (whitespace or comma-separated) list of XIMStyles in
! order of user's preference.
! Choose a subset of the following styles or reorder to taste
-Emacs*ximStyles: XIMPreeditPosition|XIMStatusArea\
+XEmacs*ximStyles: XIMPreeditPosition|XIMStatusArea\
XIMPreeditPosition|XIMStatusNothing\
XIMPreeditPosition|XIMStatusNone\
XIMPreeditNothing|XIMStatusArea\
@@ -312,8 +312,8 @@
XIMPreeditNone|XIMStatusNone
! XIM Preedit and Status foreground and background
-Emacs*EmacsFrame.ximForeground: black
-Emacs*EmacsFrame.ximBackground: white
+XEmacs*EmacsFrame.ximForeground: black
+XEmacs*EmacsFrame.ximBackground: white
! XIM fontset (defaults to system fontset default)
-! Emacs*EmacsFrame.FontSet: -dt-interface user-medium-r-normal-s*-*-*-*-*-*-*-*-*
+! XEmacs*EmacsFrame.FontSet: -dt-interface user-medium-r-normal-s*-*-*-*-*-*-*-*-*
Index: man/xemacs/custom.texi
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs/custom.texi,v
retrieving revision 1.18
diff -u -u -r1.18 custom.texi
--- man/xemacs/custom.texi 2003/10/10 12:39:45 1.18
+++ man/xemacs/custom.texi 2005/03/20 16:50:20
@@ -2145,42 +2145,53 @@
@cindex X resources
@findex x-create-frame
-Historically, XEmacs has used the X resource application class @samp{Emacs}
+Historically, XEmacs used the X resource application class @samp{Emacs}
for its resources. Unfortunately, GNU Emacs uses the same application
class, and resources are not compatible between the two Emacsen. This
-sharing of the application class often leads to trouble if you want to
+sharing of the application class often led to trouble if you wanted to
run both variants.
-Starting with XEmacs 21, XEmacs uses the class @samp{XEmacs} if it finds
-any XEmacs resources in the resource database when the X connection is
-initialized. Otherwise, it will use the class @samp{Emacs} for
-backwards compatibility. The variable @code{x-emacs-application-class}
-may be consulted to determine the application class being used.
-
-The examples in this section assume the application class is @samp{Emacs}.
-
-The Emacs resources are generally set per-frame. Each Emacs frame can have
-its own name or the same name as another, depending on the name passed to the
-@code{make-frame} function.
+XEmacs now uses the X resource application class @samp{XEmacs}.
+Versions since 21.5.21 do this unconditionally, but previous versions
+checked the X resource database for resources starting in @samp{XEmacs},
+and if none were found, they used @samp{Emacs}, for greater backward
+compatibility. Currently, we advise moving your X resources to using
+the @samp{XEmacs} class, but if, in the short term, you want to stay
+with the old behavior, you can start XEmacs with the environment
+variable @b{BRANDING_IS_FOR_THE_INSECURE} set to some value; this will
+restore the pre-21.5.21 behavior.
+
+The examples in this section assume the application class is
+@samp{XEmacs}. From Lisp, you can examine the
+@code{x-emacs-application-class} variable to determine which is being
+used in the running application.
+
+XEmacs' resources are generally set per-frame. Each XEmacs frame can
+have its own name or the same name as another, depending on the name
+passed to the @code{make-frame} function. Up until 21.5.21, the default
+frame name was @samp{emacs}; since then, it has been @samp{XEmacs}, but
+in the short term the old default can be restored by the
+@b{BRANDING_IS_FOR_THE_INSECURE} environment variable mentioned
+above. See the docstring for the Lisp variable `default-frame-name'.
You can specify resources for all frames with the syntax:
@example
-Emacs*parameter: value
+XEmacs*parameter: value
@end example
@noindent
or
@example
-Emacs*EmacsFrame.parameter:value
+XEmacs*EmacsFrame.parameter:value
@end example
@noindent
You can specify resources for a particular frame with the syntax:
@example
-Emacs*FRAME-NAME.parameter: value
+XEmacs*FRAME-NAME.parameter: value
@end example
@noindent
@@ -2196,58 +2207,58 @@
@node Geometry Resources
@subsection Geometry Resources
-To make the default size of all Emacs frames be 80 columns by 55 lines,
+To make the default size of all XEmacs frames be 80 columns by 55 lines,
do this:
@example
-Emacs*EmacsFrame.geometry: 80x55
+XEmacs*EmacsFrame.geometry: 80x55
@end example
@noindent
To set the geometry of a particular frame named @samp{fred}, do this:
@example
-Emacs*fred.geometry: 80x55
+XEmacs*fred.geometry: 80x55
@end example
@noindent
Important! Do not use the following syntax:
@example
-Emacs*geometry: 80x55
+XEmacs*geometry: 80x55
@end example
@noindent
You should never use @code{*geometry} with any X application. It does
-not say "make the geometry of Emacs be 80 columns by 55 lines." It
-really says, "make Emacs and all subwindows thereof be 80x55 in whatever
+not say "make the geometry of XEmacs be 80 columns by 55 lines." It
+really says, "make XEmacs and all subwindows thereof be 80x55 in whatever
units they care to measure in." In particular, that is both telling the
-Emacs text pane to be 80x55 in characters, and telling the menubar pane
+XEmacs text pane to be 80x55 in characters, and telling the menubar pane
to be 80x55 pixels, which is surely not what you want.
As a special case, this geometry specification also works (and sets the
-default size of all Emacs frames to 80 columns by 55 lines):
+default size of all XEmacs frames to 80 columns by 55 lines):
@example
-Emacs.geometry: 80x55
+XEmacs.geometry: 80x55
@end example
@noindent
since that is the syntax used with most other applications (since most
-other applications have only one top-level window, unlike Emacs). In
+other applications have only one top-level window, unlike XEmacs). In
general, however, the top-level shell (the unmapped ApplicationShell
-widget named @samp{Emacs} that is the parent of the shell widgets that
+widget named @samp{XEmacs} that is the parent of the shell widgets that
actually manage the individual frames) does not have any interesting
resources on it, and you should set the resources on the frames instead.
The @code{-geometry} command-line argument sets only the geometry of the
-initial frame created by Emacs.
+initial frame created by XEmacs.
A more complete explanation of geometry-handling is
@itemize @bullet
@item
-The @code{-geometry} command-line option sets the @code{Emacs.geometry}
+The @code{-geometry} command-line option sets the @code{XEmacs.geometry}
resource, that is, the geometry of the ApplicationShell.
@item
@@ -2261,7 +2272,7 @@
@item
For the first frame created, the position of the frame is taken from the
-ApplicationShell (@code{Emacs.geometry}) if it is specified, otherwise
+ApplicationShell (@code{XEmacs.geometry}) if it is specified, otherwise
from the geometry of the frame.
@item
@@ -2277,15 +2288,15 @@
@subsection Iconic Resources
Analogous to @code{-geometry}, the @code{-iconic} command-line option
-sets the iconic flag of the ApplicationShell (@code{Emacs.iconic}) and
+sets the iconic flag of the ApplicationShell (@code{XEmacs.iconic}) and
always applies to the first frame created regardless of its name.
However, it is possible to set the iconic flag on particular frames (by
-name) by using the @code{Emacs*FRAME-NAME.iconic} resource.
+name) by using the @code{XEmacs*FRAME-NAME.iconic} resource.
@node Resource List
@subsection Resource List
-Emacs frames accept the following resources:
+XEmacs frames accept the following resources:
@table @asis
@item @code{geometry} (class @code{Geometry}): string
@@ -2382,7 +2393,7 @@
such as a modem connection.
@end table
-Emacs devices accept the following resources:
+XEmacs devices accept the following resources:
@table @asis
@item @code{textPointer} (class @code{Cursor}): cursor-name
@@ -2425,14 +2436,14 @@
The attributes of faces are also per-frame. They can be specified as:
@example
-Emacs.FACE_NAME.parameter: value
+XEmacs.FACE_NAME.parameter: value
@end example
@noindent
or
@example
-Emacs*FRAME_NAME.FACE_NAME.parameter: value
+XEmacs*FRAME_NAME.FACE_NAME.parameter: value
@end example
@noindent
@@ -2447,7 +2458,7 @@
The foreground and background colors of this face.
@item @code{attributeBackgroundPixmap} (class @code{AttributeBackgroundPixmap}):
file-name
-The name of an @sc{xbm} file (or @sc{xpm} file, if your version of Emacs
+The name of an @sc{xbm} file (or @sc{xpm} file, if your version of XEmacs
supports @sc{xpm}), to use as a background stipple.
@item @code{attributeUnderline} (class @code{AttributeUnderline}): boolean
@@ -2456,8 +2467,8 @@
All text is displayed in some face, defaulting to the face named
@code{default}. To set the font of normal text, use
-(a)code{Emacs*default.attributeFont}. To set it in the frame named
-@code{fred}, use @code{Emacs*fred.default.attributeFont}.
+(a)code{XEmacs*default.attributeFont}. To set it in the frame named
+@code{fred}, use @code{XEmacs*fred.default.attributeFont}.
These are the names of the predefined faces:
@@ -2466,15 +2477,15 @@
Everything inherits from this.
@item bold
-If this is not specified in the resource database, Emacs tries to find a
+If this is not specified in the resource database, XEmacs tries to find a
bold version of the font of the default face.
@item italic
-If this is not specified in the resource database, Emacs tries to find
+If this is not specified in the resource database, XEmacs tries to find
an italic version of the font of the default face.
@item bold-italic
-If this is not specified in the resource database, Emacs tries to find a
+If this is not specified in the resource database, XEmacs tries to find a
bold-italic version of the font of the default face.
@item modeline
@@ -2569,11 +2580,11 @@
colors: It uses whatever resources are appropriate to the type of widget
which is used to implement it.
-If Emacs was compiled to use only the Lucid Motif-lookalike menu widgets,
+If XEmacs was compiled to use only the Lucid Motif-lookalike menu widgets,
then one way to specify the font of the menubar would be
@example
-Emacs*menubar*font: *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
+XEmacs*menubar*font: *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
@end example
If both the Lucid Motif-lookalike menu widgets and X Font Sets are
@@ -2593,7 +2604,7 @@
If the Motif library is being used, then one would have to use
@example
-Emacs*menubar*fontList: *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
+XEmacs*menubar*fontList: *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
@end example
because the Motif library uses the @code{fontList} resource name instead
cvs server: cannot find modules/ldap/configure
Index: src/device-x.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/device-x.c,v
retrieving revision 1.61
diff -u -u -r1.61 device-x.c
--- src/device-x.c 2005/02/03 16:30:35 1.61
+++ src/device-x.c 2005/03/20 16:50:21
@@ -614,14 +614,22 @@
LISP_STRING_TO_EXTERNAL (Vx_emacs_application_class, app_class, Qctext);
else
{
- app_class = (NILP (Vx_emacs_application_class) &&
- have_xemacs_resources_in_xrdb (dpy))
+ if (egetenv ("BRANDING_IS_FOR_THE_INSECURE"))
+ {
+ app_class = (NILP (Vx_emacs_application_class) &&
+ have_xemacs_resources_in_xrdb (dpy))
#ifdef INFODOCK
- ? "InfoDock"
+ ? "InfoDock"
#else
- ? "XEmacs"
+ ? "XEmacs"
#endif
-: "Emacs";
+ : "Emacs";
+ }
+ else
+ {
+ app_class = "XEmacs";
+ }
+
/* need to update Vx_emacs_application_class: */
Vx_emacs_application_class = build_string (app_class);
}
@@ -2096,14 +2104,14 @@
this variable may only be changed before emacs is dumped, or by setting it
in the file lisp/term/x-win.el.
-If this variable is nil before the connection to the X server is first
-initialized (which it is by default), the X resource database will be
-consulted and the value will be set according to whether any resources
-are found for the application class `XEmacs'. If the user has set any
-resources for the XEmacs application class, the XEmacs process will use
-the application class `XEmacs'. Otherwise, the XEmacs process will use
-the application class `Emacs' which is backwards compatible to previous
-XEmacs versions but may conflict with resources intended for GNU Emacs.
+If this variable is nil on startup, the application uses `XEmacs'. Versions
+previous to 21.5.21 examined the resource database and used `XEmacs' if any
+resources beginning with that string existed, and `Emacs' otherwise, for
+greated backward compatibility. However, this has always tended to conflict
+with GNU Emacs, so this behavior is deprecated--in the short term, you can
+restore it in a post-21.5.21 XEmacs by setting the
+BRANDING_IS_FOR_THE_INSECURE environment variable to some value, but in the
+medium and long term, you should migrate your X resources.
*/ );
Vx_emacs_application_class = Qnil;
Index: src/frame.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/frame.c,v
retrieving revision 1.68
diff -u -u -r1.68 frame.c
--- src/frame.c 2005/02/03 16:30:36 1.68
+++ src/frame.c 2005/03/20 16:50:24
@@ -37,6 +37,7 @@
#include "glyphs.h"
#include "gutter.h"
#include "menubar.h"
+#include "process.h" /* for egetenv */
#include "redisplay.h"
#include "scrollbar.h"
#include "toolbar.h"
@@ -492,10 +493,28 @@
CHECK_STRING (name);
frame_name_is_defaulted = 0;
}
- else if (STRINGP (Vdefault_frame_name))
- name = Vdefault_frame_name;
- else
- name = build_string ("emacs");
+ else if (!initialized)
+ {
+ /* We leave Vdefault_frame_name alone here so that it'll remain Qnil
+ in the dumped executable, and we can choose it at runtime. */
+ name = build_string("XEmacs");
+ }
+ else if (NILP (Vdefault_frame_name))
+ {
+ if (egetenv ("BRANDING_IS_FOR_THE_INSECURE"))
+ {
+ Vdefault_frame_name = build_string ("emacs");
+ }
+ else
+ {
+ Vdefault_frame_name = build_string ("XEmacs");
+ }
+ }
+
+ if (NILP(name) && STRINGP(Vdefault_frame_name))
+ {
+ name = Vdefault_frame_name;
+ }
if (!NILP (Fstring_match (make_string ((const Ibyte *) "\\.", 2), name,
Qnil, Qnil)))
@@ -3815,12 +3834,13 @@
This can be overridden by arguments to `make-frame'. This must be a string.
This is used primarily for picking up X resources, and is *not* the title
of the frame. (See `frame-title-format'.)
+
+Previous to 21.5.21, this defaulted to `emacs'; since that release, it has
+defaulted to `XEmacs'. In the short term you can restore the old default by
+setting the environment variable BRANDING_IS_FOR_THE_INSECURE to some value
+before starting XEmacs, but this is deprecated.
*/ );
-#ifndef INFODOCK
- Vdefault_frame_name = build_string ("emacs");
-#else
- Vdefault_frame_name = build_string ("InfoDock");
-#endif
+ Vdefault_frame_name = Qnil;
DEFVAR_LISP ("default-frame-plist", &Vdefault_frame_plist /*
Plist of default values for frame creation, other than the first one.
--
Adrian Aichner
mailto:adrian@xemacs.org
http://www.xemacs.org/