From 86a297a43d614f11df5a8ec051879ec3af51e679 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Thu, 22 Dec 2016 08:35:07 +0100 Subject: Work around reporting a dpi change in apply_xft_settings * src/xsettings.c (apply_xft_settings): Don't report a change when dpi settings do not differ substantially. --- src/xsettings.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/xsettings.c b/src/xsettings.c index d7af68f1c5f..10afd7d15c8 100644 --- a/src/xsettings.c +++ b/src/xsettings.c @@ -667,8 +667,23 @@ apply_xft_settings (struct x_display_info *dpyinfo, } #endif - if ((settings->seen & SEEN_DPI) != 0 && oldsettings.dpi != settings->dpi - && settings->dpi > 0) + if ((settings->seen & SEEN_DPI) != 0 + && settings->dpi > 0 + /* The following conjunct avoids setting `changed' to true when + old and new dpi settings do not differ "substantially". + Otherwise, the dynamic-setting Elisp code may process all sorts + of unrelated settings that override users' font customizations, + among others. Compare: + + http://lists.gnu.org/archive/html/emacs-devel/2016-05/msg00557.html + http://lists.gnu.org/archive/html/bug-gnu-emacs/2016-12/msg00820.html + + As soon as the dynamic-settings code has been tested and + verified, this Emacs 25.2 workaround should be removed. */ + && ((oldsettings.dpi >= settings->dpi + && (oldsettings.dpi - settings->dpi) > 2) + || ((settings->dpi > oldsettings.dpi) + && (settings->dpi - oldsettings.dpi) > 2))) { FcPatternDel (pat, FC_DPI); FcPatternAddDouble (pat, FC_DPI, settings->dpi); -- cgit v1.2.1 From 3ace7309476e1899a67ba2883a0003afe9d48d4d Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 23 Dec 2016 22:26:25 +0200 Subject: Attempt to fix 64-bit AIX build * src/unexaix.c (make_hdr, copy_text_and_data, write_segment): Fix type-casts that assumed 32-bit pointers. (Bug#25141) --- src/unexaix.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/unexaix.c b/src/unexaix.c index c2012f77cac..5685aee5480 100644 --- a/src/unexaix.c +++ b/src/unexaix.c @@ -245,15 +245,15 @@ make_hdr (int new, int a_out, if (f_thdr == 0) { - ERROR1 ("unexec: couldn't find \"%s\" section", (int) _TEXT); + ERROR1 ("unexec: couldn't find \"%s\" section", _TEXT); } if (f_dhdr == 0) { - ERROR1 ("unexec: couldn't find \"%s\" section", (int) _DATA); + ERROR1 ("unexec: couldn't find \"%s\" section", _DATA); } if (f_bhdr == 0) { - ERROR1 ("unexec: couldn't find \"%s\" section", (int) _BSS); + ERROR1 ("unexec: couldn't find \"%s\" section", _BSS); } } else @@ -382,7 +382,7 @@ copy_text_and_data (int new) write_segment (new, ptr, end); lseek (new, data_scnptr, SEEK_SET); - ptr = (char *) f_ohdr.data_start; + ptr = (char *) (ptrdiff_t) f_ohdr.data_start; end = ptr + f_ohdr.dsize; write_segment (new, ptr, end); @@ -399,7 +399,7 @@ write_segment (int new, char *ptr, char *end) for (i = 0; ptr < end;) { /* distance to next block. */ - nwrite = (((int) ptr + UnexBlockSz) & -UnexBlockSz) - (int) ptr; + nwrite = (((ptrdiff_t) ptr + UnexBlockSz) & -UnexBlockSz) - (ptrdiff_t) ptr; /* But not beyond specified end. */ if (nwrite > end - ptr) nwrite = end - ptr; ret = write (new, ptr, nwrite); -- cgit v1.2.1