changeset 108004:9d210d83ed69

* font.c (syms_of_font): Make the style table vars read-only.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 20 Apr 2010 13:17:29 -0400
parents 4b71850034e6
children 734b50109edf
files src/ChangeLog src/font.c
diffstat 2 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Apr 20 13:01:39 2010 -0400
+++ b/src/ChangeLog	Tue Apr 20 13:17:29 2010 -0400
@@ -1,5 +1,7 @@
 2010-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* font.c (syms_of_font): Make the style table vars read-only.
+
 	* buffer.h (struct buffer): Remove unused var `direction_reversed'.
 	* buffer.c (init_buffer_once, syms_of_buffer): Remove its initialization.
 
--- a/src/font.c	Tue Apr 20 13:01:39 2010 -0400
+++ b/src/font.c	Tue Apr 20 13:17:29 2010 -0400
@@ -5376,22 +5376,30 @@
 gets the repertory information by an opened font and ENCODING.  */);
   Vfont_encoding_alist = Qnil;
 
+  /* FIXME: These 3 vars are not quite what they appear: setq on them
+     won't have any effect other than disconnect them from the style
+     table used by the font display code.  So we make them read-only,
+     to avoid this confusing situation.  */
+
   DEFVAR_LISP_NOPRO ("font-weight-table", &Vfont_weight_table,
 	       doc: /*  Vector of valid font weight values.
 Each element has the form:
     [NUMERIC-VALUE SYMBOLIC-NAME ALIAS-NAME ...]
 NUMERIC-VALUE is an integer, and SYMBOLIC-NAME and ALIAS-NAME are symbols. */);
   Vfont_weight_table = BUILD_STYLE_TABLE (weight_table);
+  XSYMBOL (intern_c_string ("font-weight-table"))->constant = 1;
 
   DEFVAR_LISP_NOPRO ("font-slant-table", &Vfont_slant_table,
 	       doc: /*  Vector of font slant symbols vs the corresponding numeric values.
 See `font-weight-table' for the format of the vector. */);
   Vfont_slant_table = BUILD_STYLE_TABLE (slant_table);
+  XSYMBOL (intern_c_string ("font-slant-table"))->constant = 1;
 
   DEFVAR_LISP_NOPRO ("font-width-table", &Vfont_width_table,
 	       doc: /*  Alist of font width symbols vs the corresponding numeric values.
 See `font-weight-table' for the format of the vector. */);
   Vfont_width_table = BUILD_STYLE_TABLE (width_table);
+  XSYMBOL (intern_c_string ("font-width-table"))->constant = 1;
 
   staticpro (&font_style_table);
   font_style_table = Fmake_vector (make_number (3), Qnil);