diff options
| author | Eli Zaretskii | 2010-01-22 15:40:56 -0500 |
|---|---|---|
| committer | Eli Zaretskii | 2010-01-22 15:40:56 -0500 |
| commit | cf206f28eb11467aed7f5e03f3e4df7724fd98d2 (patch) | |
| tree | 2f5695e6a774a918874b82c286f140abd052d860 /src | |
| parent | 5a876cd5f810b611f78dd4cf7a1673bffeea19a9 (diff) | |
| parent | c893016b07f33eb8d56e1011245fe59a67cb4ee0 (diff) | |
| download | emacs-cf206f28eb11467aed7f5e03f3e4df7724fd98d2.tar.gz emacs-cf206f28eb11467aed7f5e03f3e4df7724fd98d2.zip | |
Merge from mainline.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 35 | ||||
| -rw-r--r-- | src/alloc.c | 10 | ||||
| -rw-r--r-- | src/atimer.h | 2 | ||||
| -rw-r--r-- | src/coding.c | 3 | ||||
| -rw-r--r-- | src/editfns.c | 2 | ||||
| -rw-r--r-- | src/lisp.h | 2 | ||||
| -rw-r--r-- | src/lread.c | 2 | ||||
| -rw-r--r-- | src/textprop.c | 16 | ||||
| -rw-r--r-- | src/xsettings.c | 34 |
9 files changed, 87 insertions, 19 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index e1d2ba440ab..5589b7f34a2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,38 @@ | |||
| 1 | 2010-01-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 2 | |||
| 3 | * lisp.h (make_pure_string): String pointer arg now points to const. | ||
| 4 | |||
| 5 | * alloc.c (find_string_data_in_pure, make_pure_string): String pointer | ||
| 6 | args now point to const. | ||
| 7 | |||
| 8 | 2010-01-22 Eli Zaretskii <eliz@gnu.org> | ||
| 9 | |||
| 10 | * lread.c (Fload): Don't treat files without .elc extension as | ||
| 11 | byte-compiled if they are ``magic'', i.e. `openp' returned -2 for | ||
| 12 | them. (bug#5303) | ||
| 13 | |||
| 14 | 2010-01-20 Kenichi Handa <handa@m17n.org> | ||
| 15 | |||
| 16 | * coding.c (consume_chars): If ! multibyte and the encoder is ccl, | ||
| 17 | treat the source as actual byte sequence. | ||
| 18 | |||
| 19 | 2010-01-19 Alan Mackenzie <acm@muc.de> | ||
| 20 | |||
| 21 | Fix spurious before-change-functions invocation from (insert ?\n). | ||
| 22 | * textprop.c (set_text_properties): rename parameter | ||
| 23 | `signal_after_change_p' to `coherent_change_p', and make the | ||
| 24 | invocation of `modify_region' conditional on it. | ||
| 25 | |||
| 26 | 2010-01-19 Jan Djärv <jan.h.d@swipnet.se> | ||
| 27 | |||
| 28 | * xsettings.c (apply_xft_settings): Save settings in Vxft_settings | ||
| 29 | for debug purpose. | ||
| 30 | (syms_of_xsettings): Declare xft-settings. | ||
| 31 | |||
| 32 | 2010-01-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 33 | |||
| 34 | * editfns.c (Fcurrent_time_string): Doc fix (Bug#5408). | ||
| 35 | |||
| 1 | 2010-01-16 Stefan Monnier <monnier@iro.umontreal.ca> | 36 | 2010-01-16 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 37 | ||
| 3 | * xterm.c (event_handler_gdk): Block input (Bug#5037). | 38 | * xterm.c (event_handler_gdk): Block input (Bug#5037). |
diff --git a/src/alloc.c b/src/alloc.c index 3c48f8762f8..9a935cc8952 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -4725,11 +4725,11 @@ check_pure_size () | |||
| 4725 | 4725 | ||
| 4726 | static char * | 4726 | static char * |
| 4727 | find_string_data_in_pure (data, nbytes) | 4727 | find_string_data_in_pure (data, nbytes) |
| 4728 | char *data; | 4728 | const char *data; |
| 4729 | int nbytes; | 4729 | int nbytes; |
| 4730 | { | 4730 | { |
| 4731 | int i, skip, bm_skip[256], last_char_skip, infinity, start, start_max; | 4731 | int i, skip, bm_skip[256], last_char_skip, infinity, start, start_max; |
| 4732 | unsigned char *p; | 4732 | const unsigned char *p; |
| 4733 | char *non_lisp_beg; | 4733 | char *non_lisp_beg; |
| 4734 | 4734 | ||
| 4735 | if (pure_bytes_used_non_lisp < nbytes + 1) | 4735 | if (pure_bytes_used_non_lisp < nbytes + 1) |
| @@ -4740,7 +4740,7 @@ find_string_data_in_pure (data, nbytes) | |||
| 4740 | for (i = 0; i < 256; i++) | 4740 | for (i = 0; i < 256; i++) |
| 4741 | bm_skip[i] = skip; | 4741 | bm_skip[i] = skip; |
| 4742 | 4742 | ||
| 4743 | p = (unsigned char *) data; | 4743 | p = (const unsigned char *) data; |
| 4744 | while (--skip > 0) | 4744 | while (--skip > 0) |
| 4745 | bm_skip[*p++] = skip; | 4745 | bm_skip[*p++] = skip; |
| 4746 | 4746 | ||
| @@ -4754,7 +4754,7 @@ find_string_data_in_pure (data, nbytes) | |||
| 4754 | infinity = pure_bytes_used_non_lisp + 1; | 4754 | infinity = pure_bytes_used_non_lisp + 1; |
| 4755 | bm_skip['\0'] = infinity; | 4755 | bm_skip['\0'] = infinity; |
| 4756 | 4756 | ||
| 4757 | p = (unsigned char *) non_lisp_beg + nbytes; | 4757 | p = (const unsigned char *) non_lisp_beg + nbytes; |
| 4758 | start = 0; | 4758 | start = 0; |
| 4759 | do | 4759 | do |
| 4760 | { | 4760 | { |
| @@ -4796,7 +4796,7 @@ find_string_data_in_pure (data, nbytes) | |||
| 4796 | 4796 | ||
| 4797 | Lisp_Object | 4797 | Lisp_Object |
| 4798 | make_pure_string (data, nchars, nbytes, multibyte) | 4798 | make_pure_string (data, nchars, nbytes, multibyte) |
| 4799 | char *data; | 4799 | const char *data; |
| 4800 | int nchars, nbytes; | 4800 | int nchars, nbytes; |
| 4801 | int multibyte; | 4801 | int multibyte; |
| 4802 | { | 4802 | { |
diff --git a/src/atimer.h b/src/atimer.h index 5ea1197e66d..fd354caf54d 100644 --- a/src/atimer.h +++ b/src/atimer.h | |||
| @@ -43,7 +43,7 @@ enum atimer_type | |||
| 43 | /* Timer is ripe at now plus an offset. */ | 43 | /* Timer is ripe at now plus an offset. */ |
| 44 | ATIMER_RELATIVE, | 44 | ATIMER_RELATIVE, |
| 45 | 45 | ||
| 46 | /* Timer runs continously. */ | 46 | /* Timer runs continuously. */ |
| 47 | ATIMER_CONTINUOUS | 47 | ATIMER_CONTINUOUS |
| 48 | }; | 48 | }; |
| 49 | 49 | ||
diff --git a/src/coding.c b/src/coding.c index b3a51eb0c4c..935d32e6a58 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -7417,7 +7417,8 @@ consume_chars (coding, translation_table, max_lookup) | |||
| 7417 | { | 7417 | { |
| 7418 | EMACS_INT bytes; | 7418 | EMACS_INT bytes; |
| 7419 | 7419 | ||
| 7420 | if (coding->encoder == encode_coding_raw_text) | 7420 | if (coding->encoder == encode_coding_raw_text |
| 7421 | || coding->encoder == encode_coding_ccl) | ||
| 7421 | c = *src++, pos++; | 7422 | c = *src++, pos++; |
| 7422 | else if ((bytes = MULTIBYTE_LENGTH (src, src_end)) > 0) | 7423 | else if ((bytes = MULTIBYTE_LENGTH (src, src_end)) > 0) |
| 7423 | c = STRING_CHAR_ADVANCE_NO_UNIFY (src), pos += bytes; | 7424 | c = STRING_CHAR_ADVANCE_NO_UNIFY (src), pos += bytes; |
diff --git a/src/editfns.c b/src/editfns.c index 00ac0ca0fa9..093f141bff2 100644 --- a/src/editfns.c +++ b/src/editfns.c | |||
| @@ -1897,7 +1897,7 @@ usage: (encode-time SECOND MINUTE HOUR DAY MONTH YEAR &optional ZONE) */) | |||
| 1897 | } | 1897 | } |
| 1898 | 1898 | ||
| 1899 | DEFUN ("current-time-string", Fcurrent_time_string, Scurrent_time_string, 0, 1, 0, | 1899 | DEFUN ("current-time-string", Fcurrent_time_string, Scurrent_time_string, 0, 1, 0, |
| 1900 | doc: /* Return the current time, as a human-readable string. | 1900 | doc: /* Return the current local time, as a human-readable string. |
| 1901 | Programs can use this function to decode a time, | 1901 | Programs can use this function to decode a time, |
| 1902 | since the number of columns in each field is fixed | 1902 | since the number of columns in each field is fixed |
| 1903 | if the year is in the range 1000-9999. | 1903 | if the year is in the range 1000-9999. |
diff --git a/src/lisp.h b/src/lisp.h index 5ea0303976d..7032a3f48f4 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -2686,7 +2686,7 @@ extern Lisp_Object make_uninit_multibyte_string P_ ((int, int)); | |||
| 2686 | extern Lisp_Object make_string_from_bytes P_ ((const char *, int, int)); | 2686 | extern Lisp_Object make_string_from_bytes P_ ((const char *, int, int)); |
| 2687 | extern Lisp_Object make_specified_string P_ ((const char *, int, int, int)); | 2687 | extern Lisp_Object make_specified_string P_ ((const char *, int, int, int)); |
| 2688 | EXFUN (Fpurecopy, 1); | 2688 | EXFUN (Fpurecopy, 1); |
| 2689 | extern Lisp_Object make_pure_string P_ ((char *, int, int, int)); | 2689 | extern Lisp_Object make_pure_string P_ ((const char *, int, int, int)); |
| 2690 | extern Lisp_Object make_pure_c_string (const char *data); | 2690 | extern Lisp_Object make_pure_c_string (const char *data); |
| 2691 | extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object)); | 2691 | extern Lisp_Object pure_cons P_ ((Lisp_Object, Lisp_Object)); |
| 2692 | extern Lisp_Object make_pure_vector P_ ((EMACS_INT)); | 2692 | extern Lisp_Object make_pure_vector P_ ((EMACS_INT)); |
diff --git a/src/lread.c b/src/lread.c index db425b82299..ba9d5378104 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -1155,7 +1155,7 @@ Return t if the file exists and loads successfully. */) | |||
| 1155 | 1155 | ||
| 1156 | if (!bcmp (SDATA (found) + SBYTES (found) - 4, | 1156 | if (!bcmp (SDATA (found) + SBYTES (found) - 4, |
| 1157 | ".elc", 4) | 1157 | ".elc", 4) |
| 1158 | || (version = safe_to_load_p (fd)) > 0) | 1158 | || (fd >= 0 && (version = safe_to_load_p (fd)) > 0)) |
| 1159 | /* Load .elc files directly, but not when they are | 1159 | /* Load .elc files directly, but not when they are |
| 1160 | remote and have no handler! */ | 1160 | remote and have no handler! */ |
| 1161 | { | 1161 | { |
diff --git a/src/textprop.c b/src/textprop.c index fee73321deb..83d09cce558 100644 --- a/src/textprop.c +++ b/src/textprop.c | |||
| @@ -1346,13 +1346,15 @@ the designated part of OBJECT. */) | |||
| 1346 | /* Replace properties of text from START to END with new list of | 1346 | /* Replace properties of text from START to END with new list of |
| 1347 | properties PROPERTIES. OBJECT is the buffer or string containing | 1347 | properties PROPERTIES. OBJECT is the buffer or string containing |
| 1348 | the text. OBJECT nil means use the current buffer. | 1348 | the text. OBJECT nil means use the current buffer. |
| 1349 | SIGNAL_AFTER_CHANGE_P nil means don't signal after changes. Value | 1349 | COHERENT_CHANGE_P nil means this is being called as an internal |
| 1350 | is nil if the function _detected_ that it did not replace any | 1350 | subroutine, rather than as a change primitive with checking of |
| 1351 | properties, non-nil otherwise. */ | 1351 | read-only, invoking change hooks, etc.. Value is nil if the |
| 1352 | function _detected_ that it did not replace any properties, non-nil | ||
| 1353 | otherwise. */ | ||
| 1352 | 1354 | ||
| 1353 | Lisp_Object | 1355 | Lisp_Object |
| 1354 | set_text_properties (start, end, properties, object, signal_after_change_p) | 1356 | set_text_properties (start, end, properties, object, coherent_change_p) |
| 1355 | Lisp_Object start, end, properties, object, signal_after_change_p; | 1357 | Lisp_Object start, end, properties, object, coherent_change_p; |
| 1356 | { | 1358 | { |
| 1357 | register INTERVAL i; | 1359 | register INTERVAL i; |
| 1358 | Lisp_Object ostart, oend; | 1360 | Lisp_Object ostart, oend; |
| @@ -1397,12 +1399,12 @@ set_text_properties (start, end, properties, object, signal_after_change_p) | |||
| 1397 | return Qnil; | 1399 | return Qnil; |
| 1398 | } | 1400 | } |
| 1399 | 1401 | ||
| 1400 | if (BUFFERP (object)) | 1402 | if (BUFFERP (object) && !NILP (coherent_change_p)) |
| 1401 | modify_region (XBUFFER (object), XINT (start), XINT (end), 1); | 1403 | modify_region (XBUFFER (object), XINT (start), XINT (end), 1); |
| 1402 | 1404 | ||
| 1403 | set_text_properties_1 (start, end, properties, object, i); | 1405 | set_text_properties_1 (start, end, properties, object, i); |
| 1404 | 1406 | ||
| 1405 | if (BUFFERP (object) && !NILP (signal_after_change_p)) | 1407 | if (BUFFERP (object) && !NILP (coherent_change_p)) |
| 1406 | signal_after_change (XINT (start), XINT (end) - XINT (start), | 1408 | signal_after_change (XINT (start), XINT (end) - XINT (start), |
| 1407 | XINT (end) - XINT (start)); | 1409 | XINT (end) - XINT (start)); |
| 1408 | return Qt; | 1410 | return Qt; |
diff --git a/src/xsettings.c b/src/xsettings.c index 3e673129d4c..945007db2f0 100644 --- a/src/xsettings.c +++ b/src/xsettings.c | |||
| @@ -42,6 +42,8 @@ static char *current_mono_font; | |||
| 42 | static struct x_display_info *first_dpyinfo; | 42 | static struct x_display_info *first_dpyinfo; |
| 43 | static Lisp_Object Qfont_name, Qfont_render; | 43 | static Lisp_Object Qfont_name, Qfont_render; |
| 44 | static int use_system_font; | 44 | static int use_system_font; |
| 45 | static Lisp_Object Vxft_settings; | ||
| 46 | |||
| 45 | 47 | ||
| 46 | #ifdef HAVE_GCONF | 48 | #ifdef HAVE_GCONF |
| 47 | static GConfClient *gconf_client; | 49 | static GConfClient *gconf_client; |
| @@ -406,12 +408,13 @@ apply_xft_settings (dpyinfo, send_event_p) | |||
| 406 | FcPattern *pat; | 408 | FcPattern *pat; |
| 407 | struct xsettings settings, oldsettings; | 409 | struct xsettings settings, oldsettings; |
| 408 | int changed = 0; | 410 | int changed = 0; |
| 411 | char buf[256]; | ||
| 409 | 412 | ||
| 410 | if (!read_xft_settings (dpyinfo, &settings)) | 413 | if (!read_xft_settings (dpyinfo, &settings)) |
| 411 | return; | 414 | return; |
| 412 | 415 | ||
| 413 | memset (&oldsettings, 0, sizeof (oldsettings)); | 416 | memset (&oldsettings, 0, sizeof (oldsettings)); |
| 414 | 417 | buf[0] = '\0'; | |
| 415 | pat = FcPatternCreate (); | 418 | pat = FcPatternCreate (); |
| 416 | XftDefaultSubstitute (dpyinfo->display, | 419 | XftDefaultSubstitute (dpyinfo->display, |
| 417 | XScreenNumberOfScreen (dpyinfo->screen), | 420 | XScreenNumberOfScreen (dpyinfo->screen), |
| @@ -428,20 +431,30 @@ apply_xft_settings (dpyinfo, send_event_p) | |||
| 428 | FcPatternDel (pat, FC_ANTIALIAS); | 431 | FcPatternDel (pat, FC_ANTIALIAS); |
| 429 | FcPatternAddBool (pat, FC_ANTIALIAS, settings.aa); | 432 | FcPatternAddBool (pat, FC_ANTIALIAS, settings.aa); |
| 430 | ++changed; | 433 | ++changed; |
| 434 | oldsettings.aa = settings.aa; | ||
| 431 | } | 435 | } |
| 436 | sprintf (buf, "Antialias: %d", oldsettings.aa); | ||
| 437 | |||
| 432 | if ((settings.seen & SEEN_HINTING) != 0 | 438 | if ((settings.seen & SEEN_HINTING) != 0 |
| 433 | && oldsettings.hinting != settings.hinting) | 439 | && oldsettings.hinting != settings.hinting) |
| 434 | { | 440 | { |
| 435 | FcPatternDel (pat, FC_HINTING); | 441 | FcPatternDel (pat, FC_HINTING); |
| 436 | FcPatternAddBool (pat, FC_HINTING, settings.hinting); | 442 | FcPatternAddBool (pat, FC_HINTING, settings.hinting); |
| 437 | ++changed; | 443 | ++changed; |
| 444 | oldsettings.hinting = settings.hinting; | ||
| 438 | } | 445 | } |
| 446 | if (strlen (buf) > 0) strcat (buf, ", "); | ||
| 447 | sprintf (buf+strlen (buf), "Hinting: %d", oldsettings.hinting); | ||
| 439 | if ((settings.seen & SEEN_RGBA) != 0 && oldsettings.rgba != settings.rgba) | 448 | if ((settings.seen & SEEN_RGBA) != 0 && oldsettings.rgba != settings.rgba) |
| 440 | { | 449 | { |
| 441 | FcPatternDel (pat, FC_RGBA); | 450 | FcPatternDel (pat, FC_RGBA); |
| 442 | FcPatternAddInteger (pat, FC_RGBA, settings.rgba); | 451 | FcPatternAddInteger (pat, FC_RGBA, settings.rgba); |
| 452 | oldsettings.rgba = settings.rgba; | ||
| 443 | ++changed; | 453 | ++changed; |
| 444 | } | 454 | } |
| 455 | if (strlen (buf) > 0) strcat (buf, ", "); | ||
| 456 | sprintf (buf+strlen (buf), "RGBA: %d", oldsettings.rgba); | ||
| 457 | |||
| 445 | /* Older fontconfig versions don't have FC_LCD_FILTER. */ | 458 | /* Older fontconfig versions don't have FC_LCD_FILTER. */ |
| 446 | if ((settings.seen & SEEN_LCDFILTER) != 0 | 459 | if ((settings.seen & SEEN_LCDFILTER) != 0 |
| 447 | && oldsettings.lcdfilter != settings.lcdfilter) | 460 | && oldsettings.lcdfilter != settings.lcdfilter) |
| @@ -449,14 +462,22 @@ apply_xft_settings (dpyinfo, send_event_p) | |||
| 449 | FcPatternDel (pat, FC_LCD_FILTER); | 462 | FcPatternDel (pat, FC_LCD_FILTER); |
| 450 | FcPatternAddInteger (pat, FC_LCD_FILTER, settings.lcdfilter); | 463 | FcPatternAddInteger (pat, FC_LCD_FILTER, settings.lcdfilter); |
| 451 | ++changed; | 464 | ++changed; |
| 465 | oldsettings.lcdfilter = settings.lcdfilter; | ||
| 452 | } | 466 | } |
| 467 | if (strlen (buf) > 0) strcat (buf, ", "); | ||
| 468 | sprintf (buf+strlen (buf), "LCDFilter: %d", oldsettings.lcdfilter); | ||
| 469 | |||
| 453 | if ((settings.seen & SEEN_HINTSTYLE) != 0 | 470 | if ((settings.seen & SEEN_HINTSTYLE) != 0 |
| 454 | && oldsettings.hintstyle != settings.hintstyle) | 471 | && oldsettings.hintstyle != settings.hintstyle) |
| 455 | { | 472 | { |
| 456 | FcPatternDel (pat, FC_HINT_STYLE); | 473 | FcPatternDel (pat, FC_HINT_STYLE); |
| 457 | FcPatternAddInteger (pat, FC_HINT_STYLE, settings.hintstyle); | 474 | FcPatternAddInteger (pat, FC_HINT_STYLE, settings.hintstyle); |
| 458 | ++changed; | 475 | ++changed; |
| 476 | oldsettings.hintstyle = settings.hintstyle; | ||
| 459 | } | 477 | } |
| 478 | if (strlen (buf) > 0) strcat (buf, ", "); | ||
| 479 | sprintf (buf+strlen (buf), "Hintstyle: %d", oldsettings.hintstyle); | ||
| 480 | |||
| 460 | if ((settings.seen & SEEN_DPI) != 0 && oldsettings.dpi != settings.dpi | 481 | if ((settings.seen & SEEN_DPI) != 0 && oldsettings.dpi != settings.dpi |
| 461 | && settings.dpi > 0) | 482 | && settings.dpi > 0) |
| 462 | { | 483 | { |
| @@ -465,7 +486,8 @@ apply_xft_settings (dpyinfo, send_event_p) | |||
| 465 | FcPatternDel (pat, FC_DPI); | 486 | FcPatternDel (pat, FC_DPI); |
| 466 | FcPatternAddDouble (pat, FC_DPI, settings.dpi); | 487 | FcPatternAddDouble (pat, FC_DPI, settings.dpi); |
| 467 | ++changed; | 488 | ++changed; |
| 468 | 489 | oldsettings.dpi = settings.dpi; | |
| 490 | |||
| 469 | /* Change the DPI on this display and all frames on the display. */ | 491 | /* Change the DPI on this display and all frames on the display. */ |
| 470 | dpyinfo->resy = dpyinfo->resx = settings.dpi; | 492 | dpyinfo->resy = dpyinfo->resx = settings.dpi; |
| 471 | FOR_EACH_FRAME (tail, frame) | 493 | FOR_EACH_FRAME (tail, frame) |
| @@ -474,12 +496,16 @@ apply_xft_settings (dpyinfo, send_event_p) | |||
| 474 | XFRAME (frame)->resy = XFRAME (frame)->resx = settings.dpi; | 496 | XFRAME (frame)->resy = XFRAME (frame)->resx = settings.dpi; |
| 475 | } | 497 | } |
| 476 | 498 | ||
| 499 | if (strlen (buf) > 0) strcat (buf, ", "); | ||
| 500 | sprintf (buf+strlen (buf), "DPI: %lf", oldsettings.dpi); | ||
| 501 | |||
| 477 | if (changed) | 502 | if (changed) |
| 478 | { | 503 | { |
| 479 | XftDefaultSet (dpyinfo->display, pat); | 504 | XftDefaultSet (dpyinfo->display, pat); |
| 480 | if (send_event_p) | 505 | if (send_event_p) |
| 481 | store_font_changed_event (Qfont_render, | 506 | store_font_changed_event (Qfont_render, |
| 482 | XCAR (dpyinfo->name_list_element)); | 507 | XCAR (dpyinfo->name_list_element)); |
| 508 | Vxft_settings = make_string (buf, strlen (buf)); | ||
| 483 | } | 509 | } |
| 484 | else | 510 | else |
| 485 | FcPatternDestroy (pat); | 511 | FcPatternDestroy (pat); |
| @@ -638,6 +664,10 @@ syms_of_xsettings () | |||
| 638 | doc: /* *Non-nil means to use the system defined font. */); | 664 | doc: /* *Non-nil means to use the system defined font. */); |
| 639 | use_system_font = 0; | 665 | use_system_font = 0; |
| 640 | 666 | ||
| 667 | DEFVAR_LISP ("xft-settings", &Vxft_settings, | ||
| 668 | doc: /* Font settings applied to Xft. */); | ||
| 669 | Vxft_settings = make_string ("", 0); | ||
| 670 | |||
| 641 | #ifdef HAVE_XFT | 671 | #ifdef HAVE_XFT |
| 642 | Fprovide (intern_c_string ("font-render-setting"), Qnil); | 672 | Fprovide (intern_c_string ("font-render-setting"), Qnil); |
| 643 | #ifdef HAVE_GCONF | 673 | #ifdef HAVE_GCONF |