X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 19 Jan 2016 05:50:01 +0000 Resent-Message-ID: <handler.22404.B.145318259826335 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 22404 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.145318259826335 (code B ref -1); Tue, 19 Jan 2016 05:50:01 +0000 Received: (at submit) by debbugs.gnu.org; 19 Jan 2016 05:49:58 +0000 Received: from localhost ([127.0.0.1]:53312 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aLPAz-0006qh-VJ for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 00:49:58 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38450) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aLPAy-0006qQ-Vv for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 00:49:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1aLPAs-00033W-FX for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 00:49:51 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:58217) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1aLPAs-00033Q-Ct for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 00:49:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57631) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1aLPAq-0002dQ-SK for bug-gnu-emacs@HIDDEN; Tue, 19 Jan 2016 00:49:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1aLPAm-00032b-NL for bug-gnu-emacs@HIDDEN; Tue, 19 Jan 2016 00:49:48 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:36291) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1aLPAm-00032E-Fi for bug-gnu-emacs@HIDDEN; Tue, 19 Jan 2016 00:49:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:To:From:Message-ID:Date; bh=Y79lpXs/APiyUktz4K/J/cwl2I+0U7utswORXBxHHLc=; b=sLqRwnS6nXwz96UIER4jEBEnvyfGhzhOzQ2LoQ1GENEUVc/pGgJR6PfCjJU+WTzPC5aHuftMYge/VL8uW3zDVugQe4bzMV+U6QxfRqjlglx6OmXteHZrjYuiMQUTsa3K; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:56866 helo=server.local.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aLPAi-0007yS-Mu for bug-gnu-emacs@HIDDEN; Tue, 19 Jan 2016 00:49:40 -0500 Date: Mon, 18 Jan 2016 21:49:40 -0800 Message-ID: <m260yqdsp7.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) As a feature request, please consider adding an alternative method to force the `window-scroll-functions` hook to run -- but NOT more than it would normally run. [In other words, it shouldn't run 3 times.] I only found `(set-window-buffer (selected-window) (current-buffer))` as a viable means to achieve this goal. `run-window-scroll-functions` runs immediately and is not a viable substitute for this feature request. Some users may not wish to `set-window-buffer` or run the `window-configuration-change-hook` to achieve this feature request. In my particular use case, I want to run a custom function only one time per command loop that is dependent upon the new `window-start` and `window-end`, which is only reliably available to the user after the `post-command-hook` has run its course. My function is too costly time-wise to run more than once each command loop. I have tried, to no avail, to come up with a test to ascertain with 100% accuracy (from the `post-command-hook`) to guess whether the `window-scroll-functions` hook will run and/or whether it will run more than one time (e.g., when cursor/point is partially visible). I played around with `(pos-visible-in-window-p nil nil t)` and whether it returned a length of 0, 2 or 6 -- however, from the `post-command-hook`, that is insufficient to ascertain with 100% accuracy whether the `window-scroll-functions` hook will run once or twice or not at all. The solution, I believe, is to force the `window-scroll-functions` hook to run during every redisplay -- but not more than it would normally run. In other words, I want the `window-scroll-functions` hook to run every command loop when my custom minor-mode is active -- or twice if point/cursor is only partially visible (at the bottom of the window) and needs to be moved up a smidgen by redisplay. Background: my custom function is a cross-hairs created with overlays that works with `word-wrap` -- the vertical line is XPM that matches the character and color underneath. Thanks, Keith ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; In GNU Emacs 25.1.50.1 (x86_64-apple-darwin10.8.0, NS appkit-1038.36 Version 10.6.8 (Build 10K549)) of 2016-01-03 built on server.local Repository revision: e94b1799d4f4c57266bdbc4801b26fe0121b7c7a Windowing system distributor 'Apple', version 10.3.1038 Configured using: 'configure --with-ns --without-imagemagick --enable-checking=glyphs CPPFLAGS=-I/Users/HOME/.0.data/.0.emacs/macports/include LDFLAGS=-L/Users/HOME/.0.data/.0.emacs/macports/lib' Configured features: JPEG RSVG DBUS NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS Important settings: locale-coding-system: utf-8-unix Major mode: Grep Minor modes in effect: tabbar-mode: t sb-mode: t ml-mode: t hl-mode: t kb-mode: t sd-mode: t fl-mode: t bc-mode: t buffer-read-only: t Recent messages: Load-path shadows: None found. Features: (shadow emacsbug message mml mml-sec mm-decode mm-bodies mm-encode gmm-utils mailheader sendmail lawlist-ztree lawlist-ys lawlist-ws lawlist-wl elmo-imap4 elmo-localdir modb-standard modb-legacy elmo-internal elmo-flag mmelmo-imap mmelmo-buffer elsp-generic mel-u epg-config lawlist-w3m doc-view jka-compr image-mode ccl lawlist-vl lawlist-view lawlist-undo lawlist-txt lawlist-tm lawlist-tex compare-w diff-mode lawlist-tabbar lawlist-speedbar lawlist-shell info esh-groups ehelp ange-ftp lawlist-sgml lawlist-sb lawlist-ruler lawlist-replace lawlist-rectangle lawlist-re-builder lawlist-python skeleton lawlist-profiler lawlist-print lawlist-php cl-seq cc-langs lawlist-perl lawlist-parens lawlist-org lawlist-calendar org-agenda org org-macro org-footnote org-pcomplete org-list org-faces org-entities org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs org-loaddefs find-func holidays hol-loaddefs cal-menu calendar cal-loaddefs lawlist-neotree lawlist-movement lawlist-mouse lawlist-ml lawlist-misc lawlist-messages lawlist-mc lawlist-markdown noutline outline lawlist-lorem lawlist-linum lawlist-keymap lawlist-js json map thingatpt cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs lawlist-ispell lawlist-isearch lawlist-info lawlist-imenu lawlist-ibuffer lawlist-hl lawlist-grep lawlist-git pcvs-util ido seq server conf-mode lawlist-framebufs lawlist-frame lawlist-fm lawlist-files zeroconf dbus xml lawlist-env lawlist-elscreen lawlist-elisp lawlist-dv lawlist-image lawlist-ds lawlist-dired dired dired-loaddefs format-spec lawlist-diff lawlist-desktop frameset lawlist-saveplace lawlist-debug lawlist-window debug lawlist-css smie lawlist-compile rx lawlist-color lawlist-cm lawlist-cc lawlist-font-lock cl-macs lawlist-calc lawlist-calc+ lawlist-bk lawlist-bc lawlist-bbdb gnus gnus-ems nnheader mail-utils wid-edit mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-extr rfc822 timezone lawlist-minibuffer gv lawlist-auth gnus-util mm-util help-fns mail-prsvr password-cache lawlist-as lawlist-archive lawlist-apropos lawlist-+ lawlist-lcl byte-opt bytecomp byte-compile cl-extra cconv lawlist-help disp-table easy-mmode edmacro kmacro quail help-mode easymenu cl-loaddefs cl-lib pcase derived advice shell pcomplete comint ansi-color ring savehist time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win ucs-normalize term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind kqueue cocoa ns multi-tty make-network-process emacs) Memory information: ((conses 16 2506629 211607) (symbols 48 86281 0) (miscs 40 1116 1187) (strings 32 198663 21468) (string-bytes 1 7537848) (vectors 16 61491) (vector-slots 8 1294267 27715) (floats 8 3369 803) (intervals 56 4477 414) (buffers 976 17))
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Keith David Bershatsky <esq@HIDDEN> Subject: bug#22404: Acknowledgement (25.1.50; Forcing `window-scroll-functions` to run.) Message-ID: <handler.22404.B.145318259826335.ack <at> debbugs.gnu.org> References: <m260yqdsp7.wl%esq@HIDDEN> X-Gnu-PR-Message: ack 22404 X-Gnu-PR-Package: emacs Reply-To: 22404 <at> debbugs.gnu.org Date: Tue, 19 Jan 2016 05:50:01 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 22404 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 22404: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D22404 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 19 Jan 2016 17:51:02 +0000 Resent-Message-ID: <handler.22404.B22404.145322581222410 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145322581222410 (code B ref 22404); Tue, 19 Jan 2016 17:51:02 +0000 Received: (at 22404) by debbugs.gnu.org; 19 Jan 2016 17:50:12 +0000 Received: from localhost ([127.0.0.1]:53965 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aLaPz-0005pN-So for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 12:50:12 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54370) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aLaPy-0005p9-56 for 22404 <at> debbugs.gnu.org; Tue, 19 Jan 2016 12:50:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aLaPo-0003nJ-In for 22404 <at> debbugs.gnu.org; Tue, 19 Jan 2016 12:50:04 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34647) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aLaPo-0003nF-Fg; Tue, 19 Jan 2016 12:50:00 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2245 helo=HOME-C4E4A596F7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aLaPn-00052N-Rc; Tue, 19 Jan 2016 12:50:00 -0500 Date: Tue, 19 Jan 2016 19:50:08 +0200 Message-Id: <83mvs1bgrz.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m260yqdsp7.wl%esq@HIDDEN> (message from Keith David Bershatsky on Mon, 18 Jan 2016 21:49:40 -0800) References: <m260yqdsp7.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) > Date: Mon, 18 Jan 2016 21:49:40 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > > As a feature request, please consider adding an alternative method to force the `window-scroll-functions` hook to run -- but NOT more than it would normally run. [In other words, it shouldn't run 3 times.] I only found `(set-window-buffer (selected-window) (current-buffer))` as a viable means to achieve this goal. `run-window-scroll-functions` runs immediately and is not a viable substitute for this feature request. Some users may not wish to `set-window-buffer` or run the `window-configuration-change-hook` to achieve this feature request. > > In my particular use case, I want to run a custom function only one time per command loop that is dependent upon the new `window-start` and `window-end`, which is only reliably available to the user after the `post-command-hook` has run its course. My function is too costly time-wise to run more than once each command loop. I have tried, to no avail, to come up with a test to ascertain with 100% accuracy (from the `post-command-hook`) to guess whether the `window-scroll-functions` hook will run and/or whether it will run more than one time (e.g., when cursor/point is partially visible). I played around with `(pos-visible-in-window-p nil nil t)` and whether it returned a length of 0, 2 or 6 -- however, from the `post-command-hook`, that is insufficient to ascertain with 100% accuracy whether the `window-scroll-functions` hook will run once or twice or not at all. The solution, I believe, is to force the `window-scroll-functions` hook to run during every redisplay -- but not more than it would normally run. > > In other words, I want the `window-scroll-functions` hook to run every command loop when my custom minor-mode is active -- or twice if point/cursor is only partially visible (at the bottom of the window) and needs to be moved up a smidgen by redisplay. > > Background: my custom function is a cross-hairs created with overlays that works with `word-wrap` -- the vertical line is XPM that matches the character and color underneath. Can you please tell more details about the problem you have? I;ve read this description several times, and couldn't figure out why are you having problems. For example, why can't you run your function from the post-command-hook directly? If you want it to run after all the hook functions finished, you can use the APPEND argument to add-hook, right? Or if the above somehow doesn't work, what about pre-command-hook? And those are just 2 random thoughts that went through my head while I was reading your request. Thanks.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 19 Jan 2016 18:51:01 +0000 Resent-Message-ID: <handler.22404.B22404.145322940711313 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145322940711313 (code B ref 22404); Tue, 19 Jan 2016 18:51:01 +0000 Received: (at 22404) by debbugs.gnu.org; 19 Jan 2016 18:50:07 +0000 Received: from localhost ([127.0.0.1]:54020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aLbLy-0002wP-OU for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 13:50:06 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:58777) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aLbLx-0002vr-9T for 22404 <at> debbugs.gnu.org; Tue, 19 Jan 2016 13:50:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=j4P4Vyr+ukMFLelPeE4RIvGFS/MVdd+kjr9FwJRv8o8=; b=7qzhJan5WZezTtCE1O0IEVrSyjjfLgLIBPlASX4ewxOv7Si+ZcV7V9CGmPAVjZMtwTqKQRjE3vYfTlzWQnPozWEgWAFcDaTv/UqG/9By+gfyt76oFws47YvPX5PwT79S; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50137 helo=server.local.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aLbLo-0002OE-3u; Tue, 19 Jan 2016 13:49:56 -0500 Date: Tue, 19 Jan 2016 10:49:57 -0800 Message-ID: <m2ziw19zfu.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Thank you, Eli, for taking a look at this feature request. The post-command-hook ("PCH") is only sufficient to return the correct window-start and window-end when no scrolling occurs. If I attach a function to the PCH that places overlays, then I would need to know programmatically with 100% certainty whether the window-scroll-functions ("WSF") will be running one or more times subsequent to the PCH. If the WSF will be running one or more times subsequent to the PCH, then I want to programmatically *prevent* overlays from being placed with the PCH -- i.e., so that they can instead be placed by the WSF. If the WSF will run more than once, then I want to wait until the last time it runs to place my overlays -- i.e., because start/end have changed since the first time WSF ran. E.g., point was partially visible and redisplay brings it into full view. I was not able to come up with a 100% reliable test from the PCH that tells me whether WSF will be running one or more times subsequent thereto. So, I am using the following work-around to force the WSF to run all the time. The problem remaining is that I still need a reliable test to determine whether the WSF will be running more than once, so that I can delay my overlay function until the last call. The feature request is essentially: trigger WSF (similar to set-window-buffer), but there is no need to set-window-buffer and there is no need to run the window-configuration-change-hook. If there is any way you can think of to programmatically know with 100% certainty whether the WSF will be running more than one time, your help would be greatly appreciated. (setq scroll-conservatively 101) (defun pch-fn () (let ((window-configuration-change-hook nil)) (set-window-buffer (selected-window) (current-buffer) 'keep-margins))) (add-hook 'post-command-hook 'pch-fn nil 'local) (defun wsf-fn (win start) (message "win: %s | start: %s | end: %s" win start (window-end win t))) (add-hook 'window-scroll-functions 'wsf-fn nil 'local) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Tue, 19 Jan 2016 19:50:08 +0200, Eli Zaretskii wrote: > > * * * > > Can you please tell more details about the problem you have? I;ve > read this description several times, and couldn't figure out why are > you having problems. > > For example, why can't you run your function from the > post-command-hook directly? If you want it to run after all the hook > functions finished, you can use the APPEND argument to add-hook, > right? > > Or if the above somehow doesn't work, what about pre-command-hook? > > And those are just 2 random thoughts that went through my head while I > was reading your request. > > Thanks.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: John Wiegley <jwiegley@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 19 Jan 2016 18:54:01 +0000 Resent-Message-ID: <handler.22404.B22404.145322963411662 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: John Wiegley <johnw@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145322963411662 (code B ref 22404); Tue, 19 Jan 2016 18:54:01 +0000 Received: (at 22404) by debbugs.gnu.org; 19 Jan 2016 18:53:54 +0000 Received: from localhost ([127.0.0.1]:54024 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aLbPe-000322-8s for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 13:53:54 -0500 Received: from mail-pa0-f49.google.com ([209.85.220.49]:33598) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <jwiegley@HIDDEN>) id 1aLbPc-00031q-CO for 22404 <at> debbugs.gnu.org; Tue, 19 Jan 2016 13:53:52 -0500 Received: by mail-pa0-f49.google.com with SMTP id cy9so455926473pac.0 for <22404 <at> debbugs.gnu.org>; Tue, 19 Jan 2016 10:53:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:reply-to:mime-version:content-type; bh=ztbzhUpC9bsHQ9vfmrbzjWxv0tuz/GfVB4JW2H2Q+JE=; b=EaaiHwyAQkgTs/muLfT2f0QoqGLDHnQzkK5Rbj7rV43+EQ8DFAXskKb0z8PS0r65bh DdfdFyYmEo6DTTBQcYJQEd1dIcioi45QNcS6Uj9qpVkMKbABozJVyX+Nm9GIAIAYdSdq 9BsnXtIByA5nM3chp9KyZvp4m/SMLlD8fNY6FClH50hti6Gi7JJ0Lo4A+LQOrbBoKAhB +JyjL6SOvnw4KiHoqxGNT/v9zR5rHxmDI6yz+jERf8ivWXHNf45mpstXfanLBJgSjto9 mwLSlu/i8i1SSHYxPbSUYfH+uErfJ7R7cCP2n44siddy7vOGxYBjeYUmm4hklS9CSvhb y1TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id :references:user-agent:reply-to:mime-version:content-type; bh=ztbzhUpC9bsHQ9vfmrbzjWxv0tuz/GfVB4JW2H2Q+JE=; b=Wf+TkVWsIndy2BreHwnPW6NLZ93QWXTXA+6VMOC3aOxBmP0nAJC/YUNFu+6VOvAV2k mLkiRQSbdMyMZpVD4c/4Zku/5t9t5wIW62g+yNoJgc/x5dS2lhdobjP7qVrQNZ9uQmyL zLNohinCNVxpLAEGFh2R/FbJPoTg50ZixgMsB0q1RkLg91tK+9rjQHSoNHSos3fjq0Zj p3KjMpuiNSne3hhtcU761k2Rp6aoQojnBfV66L3ixLISBC2xe7xDo6wicS+qsG1xPFUt eHKPl7j/PtTIM7aRIVilwlTqmA49oDfXzwTjPSn3GHgefuWWNqloeLPGYQIGVxHgzhfU 534A== X-Gm-Message-State: AG10YORcLqSF+DEQkchj2q1LEtpMrOcTxisvpK23B+7N+gy5vJHG/NxpRgqsXIo43+Sf3Q== X-Received: by 10.66.232.202 with SMTP id tq10mr3894723pac.14.1453229626407; Tue, 19 Jan 2016 10:53:46 -0800 (PST) Received: from Vulcan.local (76-234-68-79.lightspeed.frokca.sbcglobal.net. [76.234.68.79]) by smtp.gmail.com with ESMTPSA id tm4sm43584612pab.3.2016.01.19.10.53.45 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 19 Jan 2016 10:53:45 -0800 (PST) From: John Wiegley <jwiegley@HIDDEN> X-Google-Original-From: "John Wiegley" <johnw@HIDDEN> Received: by Vulcan.local (Postfix, from userid 501) id E69C3124F86F2; Tue, 19 Jan 2016 10:53:44 -0800 (PST) In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> (Keith David Bershatsky's message of "Mon, 18 Jan 2016 21:49:40 -0800") Date: Tue, 19 Jan 2016 10:53:32 -0800 Message-ID: <m2bn8hl7tf.fsf@HIDDEN> References: <m260yqdsp7.wl%esq@HIDDEN> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/24.5 (darwin) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) >>>>> Keith David Bershatsky <esq@HIDDEN> writes: > `run-window-scroll-functions` runs immediately and is not a viable > substitute for this feature request. Keith, why is the fact that it runs immediately a problem? The very name of this function answers your feature request, but you don't explain why it is insufficient, other than this comment. How would run-window-scroll-functions need to be changed, since that is the advertised way to... run the window-scroll-functions? -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 19 Jan 2016 19:28:02 +0000 Resent-Message-ID: <handler.22404.B22404.145323162814964 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: "John Wiegley" <johnw@HIDDEN> Cc: Eli Zaretskii <eliz@HIDDEN>, 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145323162814964 (code B ref 22404); Tue, 19 Jan 2016 19:28:02 +0000 Received: (at 22404) by debbugs.gnu.org; 19 Jan 2016 19:27:08 +0000 Received: from localhost ([127.0.0.1]:54054 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aLbvo-0003tH-K7 for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 14:27:08 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:59745) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aLbvn-0003sw-CZ for 22404 <at> debbugs.gnu.org; Tue, 19 Jan 2016 14:27:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=UUK713tnyeiLbGWRF25Z9FeS3MsFhZathDRh+7Q80wU=; b=bpcJD/RmzJFCySPwXajGS1snzw1mUHQZqwjhdrUgssB1OKjDeZfh5a3H+y9YtI8B1/KuD41zi2t1k/D0vMFDZVHtuGaQ8aE4zB+Ok/befxO2rC7iSDhHXG0ZONHOL/j5; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50396 helo=server.local.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aLbvd-0005Rf-Ty; Tue, 19 Jan 2016 14:26:58 -0500 Date: Tue, 19 Jan 2016 11:26:59 -0800 Message-ID: <m2vb6p9xq4.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) I too, John, got really excited when I saw `run-window-scroll-functions`. Unfortunately, it doesn't return the correct window-start and window-end because it runs too soon. It's not really a trigger that forces the WSF to run at its normal stages during redisplay. If you run the following test in a lengthy buffer in a vertical split window pane with a *Messages* buffer in the other pane, then use the down arrow key to force window scrolling as the cursor moves, you'll see the numbers from the PCH are wrong and the numbers from WSF are correct. The other problem with `run-window-scroll-functions` for this usage is that the WSF still runs when it is supposed to run, but there is an extra call to just the function attached to the WSF hook -- in other words, there might be as many as three (3) times the WSF function runs -- once with the wrong results off of the PCH, and once with the initial results from the WSF, and one final time when the WSF does its last call. That last call on the WSF is the one I'm seeking. Sometimes WSF only runs once when scrolling if point is fully visible. (setq scroll-conservatively 101) (defvar pch-test-var nil) (defun pch-fn () (let ((pch-test-var t)) (run-window-scroll-functions (selected-window)))) (add-hook 'post-command-hook 'pch-fn nil 'local) (defun wsf-fn (win start) (message "hook: %s | win: %s | start: %s | end: %s" (if pch-test-var "PCH" "WSF") win start (window-end win t))) (add-hook 'window-scroll-functions 'wsf-fn nil 'local) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Tue, 19 Jan 2016 10:53:32 -0800, John Wiegley wrote: > > >>>>> Keith David Bershatsky <esq@HIDDEN> writes: > > > `run-window-scroll-functions` runs immediately and is not a viable > > substitute for this feature request. > > Keith, why is the fact that it runs immediately a problem? The very name of > this function answers your feature request, but you don't explain why it is > insufficient, other than this comment. > > How would run-window-scroll-functions need to be changed, since that is the > advertised way to... run the window-scroll-functions? > > -- > John Wiegley
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 19 Jan 2016 19:40:01 +0000 Resent-Message-ID: <handler.22404.B22404.145323239516155 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145323239516155 (code B ref 22404); Tue, 19 Jan 2016 19:40:01 +0000 Received: (at 22404) by debbugs.gnu.org; 19 Jan 2016 19:39:55 +0000 Received: from localhost ([127.0.0.1]:54058 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aLc8A-0004CV-PB for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 14:39:54 -0500 Received: from eggs.gnu.org ([208.118.235.92]:59535) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aLc89-0004CE-50 for 22404 <at> debbugs.gnu.org; Tue, 19 Jan 2016 14:39:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aLc80-0007fe-Nn for 22404 <at> debbugs.gnu.org; Tue, 19 Jan 2016 14:39:47 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:36721) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aLc80-0007fY-K8; Tue, 19 Jan 2016 14:39:44 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2346 helo=HOME-C4E4A596F7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aLc7z-00084i-Rd; Tue, 19 Jan 2016 14:39:44 -0500 Date: Tue, 19 Jan 2016 21:39:53 +0200 Message-Id: <83a8o1bbp2.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m2ziw19zfu.wl%esq@HIDDEN> (message from Keith David Bershatsky on Tue, 19 Jan 2016 10:49:57 -0800) References: <m2ziw19zfu.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) If you call set-window-start with its 3rd argument non-nil, doesn't that force window-scroll-functions to be run?
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 19 Jan 2016 20:36:02 +0000 Resent-Message-ID: <handler.22404.B22404.145323574921511 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145323574921511 (code B ref 22404); Tue, 19 Jan 2016 20:36:02 +0000 Received: (at 22404) by debbugs.gnu.org; 19 Jan 2016 20:35:49 +0000 Received: from localhost ([127.0.0.1]:54076 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aLd0H-0005at-La for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 15:35:49 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:33045) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aLd0F-0005ad-JN for 22404 <at> debbugs.gnu.org; Tue, 19 Jan 2016 15:35:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=anom+d5VUlNx2LS6ImfI6h4ZUtShaoC1tuzEDCnc6RI=; b=DCjVg9fRgGQENVydGz61AeeIDKQ3uc0yQ+yhEWTlrXWZArO3jng+NvUts/pFVvFnUlUPbQ5NBBhuuGFqgJsc3maed6weKoj8ZmI+ZBSs7Ayn4mDtICD9lTgZB0bl+2NK; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:51083 helo=server.local.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aLd04-0002bu-2C; Tue, 19 Jan 2016 15:35:36 -0500 Date: Tue, 19 Jan 2016 12:35:38 -0800 Message-ID: <m24me9l339.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Explicitly calling `set-window-start` doesn't appear to trigger the WSF based on the following test -- e.g., moving around the window without scrolling doesn't yield any messages. (setq scroll-conservatively 101) (defvar pch-test-var nil) (defun pch-fn () (set-window-start (selected-window) (window-start (selected-window)) 'noforce)) (add-hook 'post-command-hook 'pch-fn nil 'local) (defun wsf-fn (win start) (message "win: %s | start: %s | end: %s" win start (window-end win t))) (add-hook 'window-scroll-functions 'wsf-fn nil 'local) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Tue, 19 Jan 2016 21:39:53 +0200, Eli Zaretskii wrote: > > If you call set-window-start with its 3rd argument non-nil, doesn't > that force window-scroll-functions to be run?
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 19 Jan 2016 23:08:01 +0000 Resent-Message-ID: <handler.22404.B22404.145324487616570 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145324487616570 (code B ref 22404); Tue, 19 Jan 2016 23:08:01 +0000 Received: (at 22404) by debbugs.gnu.org; 19 Jan 2016 23:07:56 +0000 Received: from localhost ([127.0.0.1]:54150 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aLfNU-0004JC-BR for submit <at> debbugs.gnu.org; Tue, 19 Jan 2016 18:07:56 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:36392) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aLfNT-0004Iz-2u for 22404 <at> debbugs.gnu.org; Tue, 19 Jan 2016 18:07:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=4f6Uz2+8Lfa78xxVyko4uhmV8KcwzmVzEwWyiupL7pM=; b=M9esn6d6xNaNcJKFLAdARFe5hKMqpWbDT40gAtELTWk65r9p1u19+D7Eo+K2lMSZnMkCNV7lWw88HJfvQzWf16sQ60QIB68gDNx4pzaPKKiAcpQC7cRS+4K2YQ5gC11I; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:52396 helo=server.local.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aLfNK-0005mJ-9W; Tue, 19 Jan 2016 18:07:46 -0500 Date: Tue, 19 Jan 2016 15:07:46 -0800 Message-ID: <m21t9di2wt.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) The following example uses `pos-visible-in-window-p` to guess as to whether the WSF will run more than one time -- i.e., if point is not fully visible, then WSF will run again. [The last call to WSF is the most important so that the values of window-start and window-end are truly accurate.] In addition to the WSF trigger feature request, a more sophisticated C-source solution to ascertain whether the WSF will run more than one time would be helpful. (setq scroll-conservatively 101) (defun pch-fn () (let ((window-configuration-change-hook nil)) (set-window-buffer (selected-window) (current-buffer) 'keep-margins))) (add-hook 'post-command-hook 'pch-fn nil 'local) (defun wsf-fn (win start) (message "point: %s | win: %s | start: %s | end: %s" (if (pos-visible-in-window-p nil nil nil) "visible" "NOT visible") win start (window-end win t))) (add-hook 'window-scroll-functions 'wsf-fn nil 'local)
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 20 Jan 2016 13:35:01 +0000 Resent-Message-ID: <handler.22404.B22404.145329688220394 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145329688220394 (code B ref 22404); Wed, 20 Jan 2016 13:35:01 +0000 Received: (at 22404) by debbugs.gnu.org; 20 Jan 2016 13:34:42 +0000 Received: from localhost ([127.0.0.1]:54483 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aLsuI-0005Is-I7 for submit <at> debbugs.gnu.org; Wed, 20 Jan 2016 08:34:42 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55335) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aLsuG-0005If-BT for 22404 <at> debbugs.gnu.org; Wed, 20 Jan 2016 08:34:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aLsu6-000653-Cw for 22404 <at> debbugs.gnu.org; Wed, 20 Jan 2016 08:34:35 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:53516) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aLsu6-00064z-9h; Wed, 20 Jan 2016 08:34:30 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3120 helo=HOME-C4E4A596F7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aLsu5-0001Ey-M7; Wed, 20 Jan 2016 08:34:30 -0500 Date: Wed, 20 Jan 2016 15:34:41 +0200 Message-Id: <83fuxs9xxq.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m24me9l339.wl%esq@HIDDEN> (message from Keith David Bershatsky on Tue, 19 Jan 2016 12:35:38 -0800) References: <m24me9l339.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) > Date: Tue, 19 Jan 2016 12:35:38 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org > > Explicitly calling `set-window-start` doesn't appear to trigger the WSF based on the following test -- e.g., moving around the window without scrolling doesn't yield any messages. > > (setq scroll-conservatively 101) > > (defvar pch-test-var nil) > > (defun pch-fn () > (set-window-start (selected-window) (window-start (selected-window)) 'noforce)) Sorry, I was mistaken: you need to call set-window-start with its 3rd argument omitted or nil. Does that solve your problem?
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 21 Jan 2016 02:33:01 +0000 Resent-Message-ID: <handler.22404.B22404.145334357013869 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145334357013869 (code B ref 22404); Thu, 21 Jan 2016 02:33:01 +0000 Received: (at 22404) by debbugs.gnu.org; 21 Jan 2016 02:32:50 +0000 Received: from localhost ([127.0.0.1]:55691 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aM53J-0003bd-OS for submit <at> debbugs.gnu.org; Wed, 20 Jan 2016 21:32:49 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:41975) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aM53I-0003bP-P7 for 22404 <at> debbugs.gnu.org; Wed, 20 Jan 2016 21:32:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=tzunJn7d/AW9pyuVSgrB6BGFsc3rtrzF5qCoFu2A6+8=; b=k972R6108FkXKpGiaYHoyzrjmv4KQzi/8FxxubrnyoXIgpNCr+F4sZwvybQIwP+tSmhsOW057dZI4XkMEqwXgaofYjyYqnBnx2/JhPMF0pwQ6ErglaUs0RRLyKpbBcK2; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:54898 helo=server.local.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aM538-0000vA-Qx; Wed, 20 Jan 2016 21:32:39 -0500 Date: Wed, 20 Jan 2016 18:32:40 -0800 Message-ID: <m2io2nk6gn.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Wed_Jan_20_18:32:39_2016-1" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --Multipart_Wed_Jan_20_18:32:39_2016-1 Content-Type: text/plain; charset=US-ASCII `set-window-start` (without the third option) would indeed trigger the WSF because it contains a key ingredient: `w->force_start = true`. Because the second argument (i.e., POS) cannot be known from the PCH when point has moved beyond the visible window, `set-window-start` is not a viable substitute for this feature request. The attached patch is an example of an implementation of this feature request. I created a new function called `force-wsf`, whose sole purpose is to trigger the WSF to run during redisplay -- after the PCH has already finished. As noted in a previous e-mail, `run-window-scroll-functions` doesn't accomplish what `force-wsf` can achieve because the former runs the function attached to the WSF immediately -- instead of waiting until later on during redisplay when the correct values of `window-start` and `window-end` are ascertainable. This is my first attempt at writing something like this, and I'm not sure exactly if everything is correct. It does, however, appear to achieve the desired affect -- i.e., run the WSF at least once every command loop (even if no scrolling occurs) so we can always know the correct values for `window-start` and `window-end`. It is no longer necessary to guess with `elisp` from the PCH regarding whether WSF will run. I would, however, still like to come up with a test at the C-source code level that tells me whether the WSF will run more than one time -- because I only care about the last call on the WSF when the final values for `window-start` and `window-end` become available. The usage for the new function `force-wsf` is as follows: (defun pch-fn () (force-wsf (selected-window))) (add-hook 'post-command-hook 'pch-fn nil 'local) (defun wsf-fn (win start) (message "point: %s | win: %s | start: %s | end: %s" ;; A better test at the C-source code level appears to be needed to ascertain whether ;; the WSF will run more than one time -- because we want the value for `window-start` ;; and `window-end win t` based on the LAST time WSF runs during the command loop. (if (pos-visible-in-window-p nil nil nil) "visible" "NOT visible") win start (window-end win t))) (add-hook 'window-scroll-functions 'wsf-fn nil 'local) The new function in window.c looks like this: DEFUN ("force-wsf", Fforce_wsf, Sforce_wsf, 0, 1, 0, doc: /* Set force_start so that redisplay_window will run the window-scroll-functions. */) (Lisp_Object window) { register struct window *w = decode_live_window (window); w->optional_new_start = true; return; } And, the there is one additional line that may also be required further on down in window.d: defsubr (&Sforce_wsf); Thanks, Keith ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Wed, 20 Jan 2016 15:34:41 +0200, Eli Zaretskii wrote: > > > . . . you need to call set-window-start with its 3rd > argument omitted or nil. Does that solve your problem? --Multipart_Wed_Jan_20_18:32:39_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy93aW5kb3cuYyBiL3NyYy93aW5kb3cuYwppbmRleCA0YWViOGIzLi5m OTlhMWI1IDEwMDY0NAotLS0gYS9zcmMvd2luZG93LmMKKysrIGIvc3JjL3dpbmRvdy5jCkBAIC0z MzIzLDYgKzMzMjMsMTYgQEAgc2V0X3dpbmRvd19idWZmZXIgKExpc3BfT2JqZWN0IHdpbmRvdywg TGlzcF9PYmplY3QgYnVmZmVyLAogICB1bmJpbmRfdG8gKGNvdW50LCBRbmlsKTsKIH0KIAorREVG VU4gKCJmb3JjZS13c2YiLCBGZm9yY2Vfd3NmLCBTZm9yY2Vfd3NmLCAwLCAxLCAwLAorICAgICAg IGRvYzogLyogU2V0IGZvcmNlX3N0YXJ0IHNvIHRoYXQgcmVkaXNwbGF5X3dpbmRvdyB3aWxsIHJ1 biB0aGUKK3dpbmRvdy1zY3JvbGwtZnVuY3Rpb25zLiAgKi8pCisgIChMaXNwX09iamVjdCB3aW5k b3cpCit7CisgIHJlZ2lzdGVyIHN0cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cg KHdpbmRvdyk7CisgICAgdy0+b3B0aW9uYWxfbmV3X3N0YXJ0ID0gdHJ1ZTsKKyAgICByZXR1cm47 Cit9CisKIERFRlVOICgic2V0LXdpbmRvdy1idWZmZXIiLCBGc2V0X3dpbmRvd19idWZmZXIsIFNz ZXRfd2luZG93X2J1ZmZlciwgMiwgMywgMCwKICAgICAgICBkb2M6IC8qIE1ha2UgV0lORE9XIGRp c3BsYXkgQlVGRkVSLU9SLU5BTUUuCiBXSU5ET1cgbXVzdCBiZSBhIGxpdmUgd2luZG93IGFuZCBk ZWZhdWx0cyB0byB0aGUgc2VsZWN0ZWQgb25lLgpAQCAtNzQxOCw2ICs3NDI4LDcgQEAgZGlzcGxh eWVkIGFmdGVyIGEgc2Nyb2xsaW5nIG9wZXJhdGlvbiB0byBiZSBzb21ld2hhdCBpbmFjY3VyYXRl LiAgKi8pOwogICBkZWZzdWJyICgmU2RlbGV0ZV9vdGhlcl93aW5kb3dzX2ludGVybmFsKTsKICAg ZGVmc3ViciAoJlNkZWxldGVfd2luZG93X2ludGVybmFsKTsKICAgZGVmc3ViciAoJlNyZXNpemVf bWluaV93aW5kb3dfaW50ZXJuYWwpOworICBkZWZzdWJyICgmU2ZvcmNlX3dzZik7CiAgIGRlZnN1 YnIgKCZTc2V0X3dpbmRvd19idWZmZXIpOwogICBkZWZzdWJyICgmU3J1bl93aW5kb3dfY29uZmln dXJhdGlvbl9jaGFuZ2VfaG9vayk7CiAgIGRlZnN1YnIgKCZTcnVuX3dpbmRvd19zY3JvbGxfZnVu Y3Rpb25zKTsK --Multipart_Wed_Jan_20_18:32:39_2016-1--
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 21 Jan 2016 17:42:02 +0000 Resent-Message-ID: <handler.22404.B22404.145339807610177 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145339807610177 (code B ref 22404); Thu, 21 Jan 2016 17:42:02 +0000 Received: (at 22404) by debbugs.gnu.org; 21 Jan 2016 17:41:16 +0000 Received: from localhost ([127.0.0.1]:56670 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aMJES-0002e5-7t for submit <at> debbugs.gnu.org; Thu, 21 Jan 2016 12:41:16 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38286) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aMJEQ-0002ds-RT for 22404 <at> debbugs.gnu.org; Thu, 21 Jan 2016 12:41:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aMJEI-0003RT-Gn for 22404 <at> debbugs.gnu.org; Thu, 21 Jan 2016 12:41:09 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49210) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aMJEI-0003RP-Ds; Thu, 21 Jan 2016 12:41:06 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4445 helo=HOME-C4E4A596F7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aMJEH-0004ql-QU; Thu, 21 Jan 2016 12:41:06 -0500 Date: Thu, 21 Jan 2016 19:41:20 +0200 Message-Id: <83mvry96f3.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m2io2nk6gn.wl%esq@HIDDEN> (message from Keith David Bershatsky on Wed, 20 Jan 2016 18:32:40 -0800) References: <m2io2nk6gn.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) > Date: Wed, 20 Jan 2016 18:32:40 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org > > `set-window-start` (without the third option) would indeed trigger the WSF because it contains a key ingredient: `w->force_start = true`. > > Because the second argument (i.e., POS) cannot be known from the PCH when point has moved beyond the visible window, `set-window-start` is not a viable substitute for this feature request. Then I'm afraid I must insist on understanding your needs better. I still don't, not even after re-reading your description several times. Maybe you could describe your use case from a different perspective: instead of telling how you tried to make sure window-scroll-functions are run exactly once, perhaps try to describe the problem for which you needed to invoke window-scroll-functions in the first place. After all, window-scroll-functions is just the means towards some specific goal. And I don't think I understand the goal. Once you described what you are trying to accomplish, it might be easier to understand how you arrived at window-scroll-functions and the need to run them when you do. > The attached patch is an example of an implementation of this feature request. I created a new function called `force-wsf`, whose sole purpose is to trigger the WSF to run during redisplay -- after the PCH has already finished. As noted in a previous e-mail, `run-window-scroll-functions` doesn't accomplish what `force-wsf` can achieve because the former runs the function attached to the WSF immediately -- instead of waiting until later on during redisplay when the correct values of `window-start` and `window-end` are ascertainable. I'd prefer to understand the need before we discuss the implementation. > I would, however, still like to come up with a test at the C-source code level that tells me whether the WSF will run more than one time I think this is fundamentally impossible. But I didn't yet take a good enough look at the involved code, so maybe I'm missing something. Thanks.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 21 Jan 2016 19:55:01 +0000 Resent-Message-ID: <handler.22404.B22404.145340608122872 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145340608122872 (code B ref 22404); Thu, 21 Jan 2016 19:55:01 +0000 Received: (at 22404) by debbugs.gnu.org; 21 Jan 2016 19:54:41 +0000 Received: from localhost ([127.0.0.1]:56694 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aMLJZ-0005wq-2Y for submit <at> debbugs.gnu.org; Thu, 21 Jan 2016 14:54:41 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:35050) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aMLJY-0005wa-3q for 22404 <at> debbugs.gnu.org; Thu, 21 Jan 2016 14:54:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=RkyARdFMZqfMuaUm+xBBiv3O5PZkIEKjr2M6xuzMY0U=; b=fGTKPG2QLh4MU8oQX1YBvrzSZWZ/JuAMR+VWmoxbA/g+MwevnJFlLH9u8Fxy8bGmZH+ia/O5bv4QnwYvRot2C1yI5nym+T2p432/6KtgF/oHjDo3gU6IP2/gxGdbw7RO; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50522 helo=server.local.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aMLJN-00062p-HE; Thu, 21 Jan 2016 14:54:29 -0500 Date: Thu, 21 Jan 2016 11:54:30 -0800 Message-ID: <m2d1suaetl.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) I have a minor mode that draws overlays from `window-start` to `window-end`, and those two values are mission critical to making sure that the overlays are placed correctly. I have `word-wrap` set to `t`. I have a function that makes relevant calculations in the visible window, which begins at `window-start` and uses `vertical-motion` for every visual line until `window-end`. Along the way, I gather 22 different elements of a list for EACH visible line: points at the beginning/ending of visual line (pbovl/peovl); points at beginning/ending of full line (bol/eol); column at the end of visual line (col-at-eovl); line number `(format-mode-line "%l")`; and all of the following in a vertical line (from top to bottom of the window) where the cursor is: column, point, character, foreground/background colors of character. When the list is assembled, I then take that list and place overlays to create a horizontal and vertical line compatible with `word-wrap` -- the result is a visual cross-hairs spanning the entire length and width of the visible window. I am using XPM images for the vertical line, which permits me to achieve a thin vertical line to the left of each character -- it looks just like a thin vbar cursor. I control the color of the vertical line -- the letters remain the same color they were, but the line color varies -- yellow for even column number; red for odd column number; green for when I am beyond the fill-column on the first visual line; a medium blue for a line that is visually wrapped when point is on a visual line subsequent to the first wrapped line; and a cyan color when point is at the right window boundary. The horizontal line stretches the entire length of the window, even for the word-wrapped lines. I have some fancy XPM images that change depending upon where point is. It works with active regions too. I have line numbering (in the left-hand margin) for each line. I placer certain bitmap images in the right fringe depending when point is at the last character at the window edge, or when there is a hard return at the right window edge. Each line-end (eol) has a pilcrow symbol that is XPM, except when cursor is at eol, in which case it is a different XPM image. The end of the buffer has a different XPM image and the vertical line extends to the last visual line, even if the point at the end of the buffer is a few inches to the left of the vertical line. The calculations (primarily because of `vertical-motion`) are too costly time-wise to perform more than once during each command loop because it slows down performance. If I run the calculations from the `post-command-hook`, I will have wasted precious time IF the `window-scroll-functions` hook will be running. IF the `window-scroll-functions` hook will be running, then the `window-start` and `window-end` obtained from the `post-command-hook` will be wrong -- so there is no point using those PCH wrong numbers. If I run the calculations from the INITIAL run of the `window-scroll-functions` hook, I will have wasted precious time IF the WSF hook will be running a SECOND time. [WSF runs a SECOND time if point was PARTIALLY visible.] IF the WSF will be running more than one time, then the INITIAL values for `window-start` and `window-end` will be wrong -- so there is no point using those WSF wrong numbers. Instead, I have to wait until the LAST call on the WSF when the final correct values for `window-start` and `window-end` can be truly ascertained. Without the benefit of feature request 22404, there are a couple of options that are not ideal. OPTION # 1(a): Devise an efficient/accurate test that can be called from the `post-command-hook` to ascertain whether the `window-scroll-functions` hook will be running one or more times. [Without a forced trigger, WSF only runs SOME of the time.] If the WSF will be running one or more times, then do NOT perform the overlay calculations because the PCH values for `window-start` and `window-end` are wrong. If the WSF will NOT be running, then go ahead and perform the time-costly calculations and place the overlays immediately. OPTION # 1(b): When the `window-scroll-functions` hook runs, I need to figure out whether it will be running one more time (subsequently) because point was only partially visible. The only test I am aware of is `(pos-visible-in-window-p nil nil nil)`. The LAST call on the WSF is the mission critical because that produces the correct values for `window-start` and `window-end`. If WSF will only be running once, then go ahead and perform the time-costly calculations and place the overlays immediately. If the WSF will be running more than once, then the *initial* WSF values for `window-start and `window-end` are wrong -- in that case, wait until the last call of WSF to perform the calculations and place overlays. OPTION # 2: Call `set-window-buffer` from the `post-command-hook` as a means of forcing WSF to run during the latter part of redisplay. In this case, we never use the PCH values of `window-start` and `window-end` -- instead, we wait for WSF to give us the correct values. This solution is not preferred because `set-window-buffer` was not designed to be used solely as a WSF trigger. In the context of my example, I don't need to set the window buffer and I don't need to run the `window-configuration-change-hook` -- I just want to force WSF to run during the latter part of redisplay. OPTION # 3: Trigger the WSF without all the hoopla -- e.g., w->optional_new_start = true;. E.g., my sample C-function `force_wsf`. OPTION # 4 (ideal): Create an entirely new animal that knows whether WSF will run more than once, and only produces the correct values for `window-start` and `window-end` in ALL circumstances, and then permits the user to run a custom function that takes advantage of those values. Thanks, Keith
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 21 Jan 2016 20:29:01 +0000 Resent-Message-ID: <handler.22404.B22404.145340808232648 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145340808232648 (code B ref 22404); Thu, 21 Jan 2016 20:29:01 +0000 Received: (at 22404) by debbugs.gnu.org; 21 Jan 2016 20:28:02 +0000 Received: from localhost ([127.0.0.1]:56725 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aMLpq-0008US-1Y for submit <at> debbugs.gnu.org; Thu, 21 Jan 2016 15:28:02 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55252) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aMLpo-0008U4-AB for 22404 <at> debbugs.gnu.org; Thu, 21 Jan 2016 15:28:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aMLpf-0006e6-W9 for 22404 <at> debbugs.gnu.org; Thu, 21 Jan 2016 15:27:55 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52026) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aMLpf-0006e2-SX; Thu, 21 Jan 2016 15:27:51 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4577 helo=HOME-C4E4A596F7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aMLpe-0005rv-P6; Thu, 21 Jan 2016 15:27:51 -0500 Date: Thu, 21 Jan 2016 22:28:05 +0200 Message-Id: <8337tq8yp6.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m2d1suaetl.wl%esq@HIDDEN> (message from Keith David Bershatsky on Thu, 21 Jan 2016 11:54:30 -0800) References: <m2d1suaetl.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) > Date: Thu, 21 Jan 2016 11:54:30 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org > > The calculations (primarily because of `vertical-motion`) are too costly time-wise to perform more than once during each command loop because it slows down performance. > > If I run the calculations from the `post-command-hook`, I will have wasted precious time IF the `window-scroll-functions` hook will be running. IF the `window-scroll-functions` hook will be running, then the `window-start` and `window-end` obtained from the `post-command-hook` will be wrong -- so there is no point using those PCH wrong numbers. > > If I run the calculations from the INITIAL run of the `window-scroll-functions` hook, I will have wasted precious time IF the WSF hook will be running a SECOND time. [WSF runs a SECOND time if point was PARTIALLY visible.] IF the WSF will be running more than one time, then the INITIAL values for `window-start` and `window-end` will be wrong -- so there is no point using those WSF wrong numbers. Instead, I have to wait until the LAST call on the WSF when the final correct values for `window-start` and `window-end` can be truly ascertained. > > Without the benefit of feature request 22404, there are a couple of options that are not ideal. What do you need from window-scroll-functions? Only the correct values of window-start and window-end? Or something else? The other thing I still don't understand is how forcing window-scroll-functions to run could fix your problem or _avoiding_ extra calculations. Where and under what conditions would you call the function that forces Emacs to run window-scroll-functions? Doesn't that waste processing in those cases where normally window-scroll-functions didn't need to be run (because window-start and window-end don't change)? IOW, aren't you running those costly calculations from window-scroll-functions? Finally, wouldn't running from pre-command-hook solve the problem? The values of window-start and window-end are known by then, and you can record the old values to compare them against new, to know when they change. No?
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 21 Jan 2016 21:12:02 +0000 Resent-Message-ID: <handler.22404.B22404.145341072023855 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145341072023855 (code B ref 22404); Thu, 21 Jan 2016 21:12:02 +0000 Received: (at 22404) by debbugs.gnu.org; 21 Jan 2016 21:12:00 +0000 Received: from localhost ([127.0.0.1]:56803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aMMWO-0006Ch-DL for submit <at> debbugs.gnu.org; Thu, 21 Jan 2016 16:12:00 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:37166) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aMMWM-0006CU-UF for 22404 <at> debbugs.gnu.org; Thu, 21 Jan 2016 16:11:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=dqNV8W82rnHx+xxEoStjzNVnFhQGRNxLjjDx68jY+Ro=; b=keaWfFncZlIdTEAox6l4HodtfROXsMrbfEjEE7/QjnieJ/znEE09dQkcp2zOz/LGJwMl535fvXw+S/mpWSWbVF9DjLqfpQ1CEq2wMndbr/8Fpn6wVz4vyjYjc4QQxDDW; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:51101 helo=server.local.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aMMWA-0004Tx-BN; Thu, 21 Jan 2016 16:11:46 -0500 Date: Thu, 21 Jan 2016 13:11:48 -0800 Message-ID: <m2bn8eab8r.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) > What do you need from window-scroll-functions? Only the correct > values of window-start and window-end? Or something else? Correct, I just need the 100% accurate `window-start` and `window-end`. :) :) > The other thing I still don't understand is how forcing > window-scroll-functions to run could fix your problem or _avoiding_ > extra calculations. Where and under what conditions would you call > the function that forces Emacs to run window-scroll-functions? I either need to use BOTH the `post-command-hook` and `window-scroll-functions` hook; OR, just the WSF if it is forced to always run. WSF is needed (for sure) whenever `window-start` and `window-end` have changed -- so PCH must do the work the rest of the time. I had previously been using a poor test to GUESS (from the PCH) whether WSF will run. > Doesn't that waste processing in those cases where normally > window-scroll-functions didn't need to be run (because window-start > and window-end don't change)? IOW, aren't you running those costly > calculations from window-scroll-functions? If point moves left or right, the vertical ruler that tracks the cursor position moves with the cursor -- so recalculation is needed. The vertical ruler is on a 0.3 idle timer, and the horizontal ruler (with line numbers and pilcrows) is on all the time. For the horizontal ruler, I have a test that compares the previous window-start/end to the new window-start/end -- if it is just cursor movement (instead of self-insert-command), then I use the previously recorded list of calculations. Just moving the cursor left/right/up/down within the same window bounds is much faster than typing or deleting a character. ;; HORIZONTAL RULER (snippet) (setq posn-list (if (and hr-prev-start (= hr-prev-start start) hr-prev-end (= hr-prev-end end) +-posn-list (or (eq +-this-command 'lawlist-left-char) (eq +-this-command 'lawlist-right-char) (eq +-this-command 'lawlist-previous-line) (eq +-this-command 'lawlist-next-line) (eq +-this-command 'lawlist-forward-entity) (eq +-this-command 'lawlist-backward-entity) (eq +-this-command 'lawlist-forward-paragraph) (eq +-this-command 'lawlist-backward-paragraph) (eq +-this-command 'lawlist-end-of-visual-line) (eq +-this-command 'lawlist-beginning-of-visual-line))) +-posn-list (posn start end vcol))) The vertical ruler (on an idle timer) will use the previously recorded list of calculations under a few limited circumstances. ;; VERTICAL RULER (snippet) (setq posn-list (if (or (not +-posn-list) (and (not force) (memq last-command '( special-yank special-copy-selected-region copy-selected-region delete-word-or-whitespace delete-forward-char lawlist-backward-delete-char-untabify lawlist-beginning-of-buffer lawlist-end-of-buffer beginning-of-buffer end-of-buffer scroll-up scroll-down lawlist-super-scroll-up lawlist-super-scroll-down lawlist-scroll-up lawlist-scroll-down lawlist-left-char lawlist-right-char left-char right-char lawlist-previous-line lawlist-next-line previous-line next-line lawlist-forward-entity lawlist-backward-entity lawlist-forward-paragraph lawlist-backward-paragraph forward-paragraph backward-paragraph lawlist-end-of-visual-line lawlist-beginning-of-visual-line end-of-visual-line beginning-of-visual-line)))) (posn start end vcol) +-posn-list)) > Finally, wouldn't running from pre-command-hook solve the problem? > The values of window-start and window-end are known by then, and you > can record the old values to compare them against new, to know when > they change. No? Basically any change to the text requires some type of recalculation -- e.g., line got shorter/longer, block of test was deleted/pasted. Keith
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: John Wiegley <jwiegley@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 29 Jan 2016 02:19:01 +0000 Resent-Message-ID: <handler.22404.B22404.145403389716297 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: Eli Zaretskii <eliz@HIDDEN>, 22404 <at> debbugs.gnu.org Reply-To: John Wiegley <johnw@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145403389716297 (code B ref 22404); Fri, 29 Jan 2016 02:19:01 +0000 Received: (at 22404) by debbugs.gnu.org; 29 Jan 2016 02:18:17 +0000 Received: from localhost ([127.0.0.1]:40159 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aOydd-0004En-G8 for submit <at> debbugs.gnu.org; Thu, 28 Jan 2016 21:18:17 -0500 Received: from mail-ob0-f182.google.com ([209.85.214.182]:34062) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <jwiegley@HIDDEN>) id 1aOydc-0004EW-Eq for 22404 <at> debbugs.gnu.org; Thu, 28 Jan 2016 21:18:16 -0500 Received: by mail-ob0-f182.google.com with SMTP id wb13so19187528obb.1 for <22404 <at> debbugs.gnu.org>; Thu, 28 Jan 2016 18:18:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:reply-to:mime-version:content-type; bh=9Ux+Dyk7atvfwKZBz8Xo9vnIUjbk0Ubb+1fcx6Q9U0g=; b=II/C+r95HURdw8f5yN4ky5e+GNPFjhuWk+uwHJ0lxedEWX/OjqZ7MYnKgnRoecAN/R Y5Qgf5GgZ01Si8KNsQoIoxZV8DBLG4e1TipLTAgAmBfZk7E4zIS084dMk90q5+zRYJCU 5BYMbJH1Q91AMy7dZlmUAN+5bwSk/Y3qf4H926mme3t50rH+49EWvqRMJpsKogHWvgNl mipWVGUSkTPpaoLogC7XIXAXMpp5M7/7VyY/LRUEDvVbszhb/hnocDLkP5tSZUFQCgUH 1vdagaXfRbmXdY6+9sSZHBQ97Npptko3G3hiq5xaKEF24+C2qFbiw6PKN2Lazz5Gz2BT SW1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id :references:user-agent:reply-to:mime-version:content-type; bh=9Ux+Dyk7atvfwKZBz8Xo9vnIUjbk0Ubb+1fcx6Q9U0g=; b=FT6JDv+WlheeXuooQvXbYfO4nTjvkKTSfg0BxTVcCm8X0Nw45/ErDJ0Z6TVCJm32In zns8qD7/XxRjio6c9voH2hQgqmX7OPG2vxNejcEb1pyp3qOPnkMANisKSoPmFZlGnfm6 C3JIg6Q+lhG4EtqMDcvRW0qnWxB5F4sUAeoN20906agW0zFkzikAEjr4+QcNSqlD6dgB P0Ggbrbd15O7qTqcsxk+GuLk54OJYvregTEHdiprIjCyd7ZMERiR1VCYDrMiwb8O5NKu xwliAO1Xc4myUIdMj50UMCnamQ/J8LCD5MM863Wgnj0gmbU/rIfzZqS9Sv6VWNVOqlb/ BwPw== X-Gm-Message-State: AG10YORwgmwvrD7TyuB3fCVAqHQtWMZVjud9Xw4MN979XvMf7XWIiT8fKhPqiSEutRAkpA== X-Received: by 10.60.176.100 with SMTP id ch4mr4749502oec.7.1454033890894; Thu, 28 Jan 2016 18:18:10 -0800 (PST) Received: from Vulcan.local (76-234-68-79.lightspeed.frokca.sbcglobal.net. [76.234.68.79]) by smtp.gmail.com with ESMTPSA id v142sm6929997oie.28.2016.01.28.18.18.08 (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 28 Jan 2016 18:18:09 -0800 (PST) From: John Wiegley <jwiegley@HIDDEN> X-Google-Original-From: "John Wiegley" <johnw@HIDDEN> Received: by Vulcan.local (Postfix, from userid 501) id F21A01297BAE3; Thu, 28 Jan 2016 18:18:07 -0800 (PST) In-Reply-To: <m2bn8eab8r.wl%esq@HIDDEN> (Keith David Bershatsky's message of "Thu, 21 Jan 2016 13:11:48 -0800") Date: Thu, 28 Jan 2016 18:14:43 -0800 Message-ID: <m2r3h1ku7g.fsf@HIDDEN> References: <m260yqdsp7.wl%esq@HIDDEN> <m2bn8eab8r.wl%esq@HIDDEN> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/24.5 (darwin) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) >>>>> Keith David Bershatsky <esq@HIDDEN> writes: >> What do you need from window-scroll-functions? Only the correct values of >> window-start and window-end? Or something else? > Correct, I just need the 100% accurate `window-start` and > `window-end`. :) :) Keith, your use case here does strike me as a bit exotic. I'm not saying it's not a bug, but I'm wondering if your suggested solution is really the best path to the final result you're reaching for. The cost of `vertical-motion', for example, seems to be a driving force behind your request. -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 29 Jan 2016 03:09:01 +0000 Resent-Message-ID: <handler.22404.B22404.145403691121007 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: "John Wiegley" <johnw@HIDDEN> Cc: Eli Zaretskii <eliz@HIDDEN>, 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145403691121007 (code B ref 22404); Fri, 29 Jan 2016 03:09:01 +0000 Received: (at 22404) by debbugs.gnu.org; 29 Jan 2016 03:08:31 +0000 Received: from localhost ([127.0.0.1]:40179 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aOzQF-0005Sl-CP for submit <at> debbugs.gnu.org; Thu, 28 Jan 2016 22:08:31 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:59667) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aOzQD-0005SY-T5 for 22404 <at> debbugs.gnu.org; Thu, 28 Jan 2016 22:08:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=oUfAtJAH5HCCCUuEI2zq3Ie1s63nwTMs2U09cW05dBs=; b=Nit7t4CI9YnIdW8G9Xt8Ryb1CRw4Bcj2MouJ7rr51coN7eT4aBVFQ3VkGYCVGeskGRuyS5vOn8QCBMt7ha7HEvJZMP21Uj0oqUgLiYLZn8vgEgY5GteNojzvv/T4Q8n8; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:53099 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aOzQ5-0002sn-5f; Thu, 28 Jan 2016 22:08:21 -0500 Date: Thu, 28 Jan 2016 19:08:22 -0800 Message-ID: <m237thf5g9.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Thanks, John, for taking another look at #22404. Let's say for example that someone has a function named `foo` which uses `window-start` and `window-end`, and the user wants that function to run every command loop. Everyone will immediately think of the `post-command-hook` because the buffer or position may have been modified by `this-command` (whatever that may be). The way Emacs is presently designed, people are needlessly calling `foo` multiple times when scrolling occurs because the `post-command-hook` can't provide correct numbers. Most people probably don't care because `foo` is trivial in terms of the time it takes to run -- so if it runs 3 times per command loop, no problem. I personally think calling `foo` 3 times per command loop, when it only needed to run once, is a poor design. [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [50.28.13.150 listed in list.dnswl.org] 2.7 GUARANTEED_100_PERCENT BODY: One hundred percent guaranteed 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Thanks, John, for taking another look at #22404. Let's say for example that someone has a function named `foo` which uses `window-start` and `window-end`, and the user wants that function to run every command loop. Everyone will immediately think of the `post-command-hook` because the buffer or position may have been modified by `this-command` (whatever that may be). The way Emacs is presently designed, people are needlessly calling `foo` multiple times when scrolling occurs because the `post-command-hook` can't provide correct numbers. Most people probably don't care because `foo` is trivial in terms of the time it takes to run -- so if it runs 3 times per command loop, no problem. I personally think calling `foo` 3 times per command loop, when it only needed to run once, is a poor design. [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [50.28.13.150 listed in list.dnswl.org] 2.7 GUARANTEED_100_PERCENT BODY: One hundred percent guaranteed 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid Thanks, John, for taking another look at #22404. Let's say for example that someone has a function named `foo` which uses `window-start` and `window-end`, and the user wants that function to run every command loop. Everyone will immediately think of the `post-command-hook` because the buffer or position may have been modified by `this-command` (whatever that may be). The way Emacs is presently designed, people are needlessly calling `foo` multiple times when scrolling occurs because the `post-command-hook` can't provide correct numbers. Most people probably don't care because `foo` is trivial in terms of the time it takes to run -- so if it runs 3 times per command loop, no problem. I personally think calling `foo` 3 times per command loop, when it only needed to run once, is a poor design. There is no 100% guaranteed test from the `post-command-hook` to know whether the `window-scroll-functions` hook will run, and if so, whether it will run 2 times (instead of just one). Here is an excerpt from `window.h` that tells us what `optional_new_start` is currently used for: /* True means we have explicitly changed the value of start, but that the next redisplay is not obliged to use the new value. This is used in Fdelete_other_windows to force a call to Vwindow_scroll_functions; also by Frecenter with argument. */ bool_bf optional_new_start : 1; It is also used for `set-window-buffer`; so perhaps that should be added to the doc-string. By setting `optional_new_start` to `true`, we force the `window_scroll_functions` hook to run every command loop (during redisplay). If that happens, then the `post-command-hook` is no longer needed to run `foo`. So we have just reduced `foo` being called 2 to 3 times, to 1 to 2 times instead. I have been studying `xdisp.c` and have concluded that it is extremely difficult to know whether the `window-scroll-functions` hook will run 1 or 2 times, because that hook can modify the buffer and there are some other hooks that may modify the buffer too -- thus requiring a second call to the WSF. So, the moral of the story is whether it is a good thing to call `foo` 2 to 3 times per command loop, instead of 1 to 2 times per command loop. And, it boils down to whether `foo` is costly. It is costly for me because I use `vertical-motion`. It may be costly to other users for a different reason. Another idea would be to create a new animal that permits users to THROW_ANY_SWITCH from `elisp`. It doesn't have to be `optional_new_start` specifically. If users have an `elisp` mechanism to THROW_ANY_SWITCH, they can throw it from anywhere -- `pre-command-hook`, `post-command-hook`, etc. [By switch, I mean the bool_bf items in `window.h`.] Keith ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Thu, 28 Jan 2016 18:14:43 -0800, John Wiegley wrote: > > >>>>> Keith David Bershatsky <esq@HIDDEN> writes: > > >> What do you need from window-scroll-functions? Only the correct values of > >> window-start and window-end? Or something else? > > > Correct, I just need the 100% accurate `window-start` and > > `window-end`. :) :) > > Keith, your use case here does strike me as a bit exotic. I'm not saying it's > not a bug, but I'm wondering if your suggested solution is really the best > path to the final result you're reaching for. The cost of `vertical-motion', > for example, seems to be a driving force behind your request.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 29 Jan 2016 08:43:02 +0000 Resent-Message-ID: <handler.22404.B22404.145405696925583 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: johnw@HIDDEN, 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145405696925583 (code B ref 22404); Fri, 29 Jan 2016 08:43:02 +0000 Received: (at 22404) by debbugs.gnu.org; 29 Jan 2016 08:42:49 +0000 Received: from localhost ([127.0.0.1]:40268 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aP4dk-0006eZ-Qn for submit <at> debbugs.gnu.org; Fri, 29 Jan 2016 03:42:49 -0500 Received: from eggs.gnu.org ([208.118.235.92]:33862) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aP4di-0006eD-KK for 22404 <at> debbugs.gnu.org; Fri, 29 Jan 2016 03:42:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aP4dc-0005B1-LC for 22404 <at> debbugs.gnu.org; Fri, 29 Jan 2016 03:42:41 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:53031) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aP4dX-000577-BO; Fri, 29 Jan 2016 03:42:35 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3560 helo=HOME-C4E4A596F7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aP4dT-0005ji-Vi; Fri, 29 Jan 2016 03:42:32 -0500 Date: Fri, 29 Jan 2016 10:42:25 +0200 Message-Id: <83y4b8ydxq.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m237thf5g9.wl%esq@HIDDEN> (message from Keith David Bershatsky on Thu, 28 Jan 2016 19:08:22 -0800) References: <m237thf5g9.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) > Date: Thu, 28 Jan 2016 19:08:22 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org,Eli Zaretskii <eliz@HIDDEN> > > Let's say for example that someone has a function named `foo` which uses `window-start` and `window-end`, and the user wants that function to run every command loop. Everyone will immediately think of the `post-command-hook` because the buffer or position may have been modified by `this-command` (whatever that may be). The way Emacs is presently designed, people are needlessly calling `foo` multiple times when scrolling occurs because the `post-command-hook` can't provide correct numbers. Personally, I think that having a function run by post-command-hook that crucially depends on window-start and window-end is poor design. Emacs never promised that these values be accurate before redisplay runs, since redisplay sometimes needs to change where the window starts and ends. Solving this with window-scroll-functions is not the proper solution, either, for the reasons already discussed at length in this thread. I still don't understand well enough why pre-command-hook is not a better solution here. Until I do, I don't see how this issue can be resolved better than it is today. I don't like exposing APIs that manipulate flags which are there for internal machinery. Lisp programs that set these flags arbitrarily can easily disrupt the redisplay operation, so such APIs is a time bomb.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Michael Heerdegen <michael_heerdegen@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 29 Jan 2016 12:01:02 +0000 Resent-Message-ID: <handler.22404.B22404.145406885912105 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: Keith David Bershatsky <esq@HIDDEN>, 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145406885912105 (code B ref 22404); Fri, 29 Jan 2016 12:01:02 +0000 Received: (at 22404) by debbugs.gnu.org; 29 Jan 2016 12:00:59 +0000 Received: from localhost ([127.0.0.1]:40332 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aP7jX-00039B-JB for submit <at> debbugs.gnu.org; Fri, 29 Jan 2016 07:00:59 -0500 Received: from mout.web.de ([212.227.15.4]:56488) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <michael_heerdegen@HIDDEN>) id 1aP7jV-00038x-Fq for 22404 <at> debbugs.gnu.org; Fri, 29 Jan 2016 07:00:57 -0500 Received: from drachen.dragon ([92.77.162.209]) by smtp.web.de (mrweb003) with ESMTPSA (Nemesis) id 0LvSQV-1Zy0UQ0PAJ-010c4L; Fri, 29 Jan 2016 13:00:45 +0100 From: Michael Heerdegen <michael_heerdegen@HIDDEN> References: <m2d1suaetl.wl%esq@HIDDEN> <8337tq8yp6.fsf@HIDDEN> Date: Fri, 29 Jan 2016 13:00:42 +0100 In-Reply-To: <8337tq8yp6.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 21 Jan 2016 22:28:05 +0200") Message-ID: <87d1sk389h.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:F9J7Q06ZXB2BjEXkfZNphkhber21CZt/z8wktGuqWXbnjR0HDBq lD/XyRfbA4jz1sEBV0Fiw13sO6pR5jFbxLvWGRRzEOtrbgai0MVv2163DgzcjCC8gjhbPb2 1N1KCUtiNa1VHlVUhl53tMLwclzUvqw1CTlmcyvPzEDHynuqm0OwYWHLEfqIlNMh78Awgwk Ibu2Mwnitkr2cfmegv39A== X-UI-Out-Filterresults: notjunk:1;V01:K0:4RF/jeIWGBc=:lp2YnLBAu13DNbE8Sqgt5U +hpZLq73sjeZS2cH1haK62KoqploMzHvvVVqWiuTq+J/7GpAJtIRZ2+mit71gjKIw7qWR/zT2 2a8P4OhOl40Z7wYW+r6heXdOWRVVO9HfCLZSphDYTcAmQyOmVIpZoSNy5wB+uMyEL9Z4EiXCm EBUq5OVyO93vVZDJqfSoH9bm0zYH5ONzR9WMdW80b2K7osY6AJCrIiDGQ5NHARtzNCIzxWeUU bBI8dnduLFB6t4QhiwaG3LkCVgrQR4T1g8lIJ3XFzoUi9SBfgJGHJMAhO71P9POQiIaQoosBb LDAmqxsxRLsitMIFspkspgUyjwIzr5nnA/aIjAT83RlI6CrNlnDhcDdnclogWB69QLF8to+to CEPUbU6MTczWpSdrwu9hii3T8JktGqI0Uv9rBa0aepwRqNF+ziJpfynyPyQqDP8MAdALIkLm+ n8bZRzxGH9ZQKscSy8Qsc5mTh5Et0nwlqfP0SLWkpKzlc5xIwh3AyG8tty3VIA/9yiuLaU29j v3TRC1ItL0pdNXuQyBIw26h3v0HIzo+74egCDiopajhD6bp3qv1fVUjC2CeZLe1bb3eaznIKj /RhA59HTYVWaZ0Znl041hk1xDoETrNW3AQzHkt3V+6nIYpnPPNCNFrqWt+POQ6veoo0yZILQR YNpF1WZ299l8IbqMpe2dSbnhYbg2cPg0l7adC7dOhbbPhz0R6Qch2p0Sfz3I6enmdx0dvupoW r6zYaSpuYCT11VD7B5EQ0ng3aCGSrGmi6sPuFeFNIhabN3xXKynBYR+DmnXA92aXqvcyabsmh 4FDKDLQ X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Eli Zaretskii <eliz@HIDDEN> writes: > The other thing I still don't understand is how forcing > window-scroll-functions to run could fix your problem or _avoiding_ > extra calculations. Where and under what conditions would you call > the function that forces Emacs to run window-scroll-functions? > Doesn't that waste processing in those cases where normally > window-scroll-functions didn't need to be run (because window-start > and window-end don't change)? IOW, aren't you running those costly > calculations from window-scroll-functions? FWIW, I ran into this class of problems for several times: after scrolling had been happening, I want to do something with the newly visible area of the buffer (e.g., place overlays). The main problem here is that even when window-scroll-function run, AFAIK the value of `window-end' can still be outdated, even when called with the update argument. I didn't need to use post-command-hook in my cases, so it's a bit different from what Keith wants. Anyway, using pre-command-hook is too late for us: it's not executed unless the next input arrives, so you have to hit a key until decorations or whatever get updated. The only solution I know of is to do things in a timer, which works, but not nicely (you sometimes get delays). Regards, Michael.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 29 Jan 2016 14:38:02 +0000 Resent-Message-ID: <handler.22404.B22404.145407826832336 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Michael Heerdegen <michael_heerdegen@HIDDEN> Cc: esq@HIDDEN, 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145407826832336 (code B ref 22404); Fri, 29 Jan 2016 14:38:02 +0000 Received: (at 22404) by debbugs.gnu.org; 29 Jan 2016 14:37:48 +0000 Received: from localhost ([127.0.0.1]:40376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aPABH-0008PU-OU for submit <at> debbugs.gnu.org; Fri, 29 Jan 2016 09:37:47 -0500 Received: from eggs.gnu.org ([208.118.235.92]:36579) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aPABG-0008PG-0T for 22404 <at> debbugs.gnu.org; Fri, 29 Jan 2016 09:37:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aPAB6-0006TV-4S for 22404 <at> debbugs.gnu.org; Fri, 29 Jan 2016 09:37:40 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:42679) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aPAB6-0006TP-1R; Fri, 29 Jan 2016 09:37:36 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4038 helo=HOME-C4E4A596F7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aPAB4-000397-9S; Fri, 29 Jan 2016 09:37:35 -0500 Date: Fri, 29 Jan 2016 16:37:16 +0200 Message-Id: <83mvroxxib.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <87d1sk389h.fsf@HIDDEN> (message from Michael Heerdegen on Fri, 29 Jan 2016 13:00:42 +0100) References: <m2d1suaetl.wl%esq@HIDDEN> <8337tq8yp6.fsf@HIDDEN> <87d1sk389h.fsf@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) > From: Michael Heerdegen <michael_heerdegen@HIDDEN> > Cc: Keith David Bershatsky <esq@HIDDEN>, 22404 <at> debbugs.gnu.org > Date: Fri, 29 Jan 2016 13:00:42 +0100 > > Anyway, using pre-command-hook is too late for us: it's not executed > unless the next input arrives, so you have to hit a key until > decorations or whatever get updated. Then maybe we need a post-redisplay-hook.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Michael Heerdegen <michael_heerdegen@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 29 Jan 2016 14:59:02 +0000 Resent-Message-ID: <handler.22404.B22404.14540794921956 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: esq@HIDDEN, 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.14540794921956 (code B ref 22404); Fri, 29 Jan 2016 14:59:02 +0000 Received: (at 22404) by debbugs.gnu.org; 29 Jan 2016 14:58:12 +0000 Received: from localhost ([127.0.0.1]:40720 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aPAV2-0000VU-HK for submit <at> debbugs.gnu.org; Fri, 29 Jan 2016 09:58:12 -0500 Received: from mout.web.de ([212.227.15.14]:55521) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <michael_heerdegen@HIDDEN>) id 1aPAV1-0000VI-8N for 22404 <at> debbugs.gnu.org; Fri, 29 Jan 2016 09:58:11 -0500 Received: from drachen.dragon ([92.77.162.209]) by smtp.web.de (mrweb001) with ESMTPSA (Nemesis) id 0LqDD6-1ZuURN0zyK-00dnQo; Fri, 29 Jan 2016 15:58:01 +0100 From: Michael Heerdegen <michael_heerdegen@HIDDEN> References: <m2d1suaetl.wl%esq@HIDDEN> <8337tq8yp6.fsf@HIDDEN> <87d1sk389h.fsf@HIDDEN> <83mvroxxib.fsf@HIDDEN> Date: Fri, 29 Jan 2016 15:57:57 +0100 In-Reply-To: <83mvroxxib.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 29 Jan 2016 16:37:16 +0200") Message-ID: <87vb6ctoui.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:DMZwYAKzrMSYl9VV//sXI82uBGzcqYmpi9VnvIhvXpERzBsHoyR sd+dIPIC+bKuy36hQmMKDfJ+H+915tDihSCLw6xeUAOua8G3Z6pPdkv4q03ur5H0szoPFPK rpHv0FA1eWQZCyFnt1o2KW3Q8me9L8xscb0by4EiHDTMDWWheGbSjPbBJ3FW+rGhbVUUG7L u1ReivD/OFzbJyz3szZDg== X-UI-Out-Filterresults: notjunk:1;V01:K0:hZAVYnI1b+U=:0Db8MZRGSGOr5Spf6dMcRL I4U2qCG+QlVoEHM+XlzR/kUrV/j/UweG+LAvneYwH8WssTYmbcm0RRi2e+FrTjeyzG4WFUEja h/dDlPq0HUFsdveF3tbLGMiord3ajs05AoJiOqzpLCOHICntPTMd2pzWBKKJt5KIej2YChq5M fDywuDl/nxnx867YYasUx4cExo9HGTDiZaZQRHOTBW0Dr5zFiTTbUglvnp1tXYizu1QHNYd4H RzK1HFZ8/BMl1mpDzxIfF49Yr0Ent/6BpA9Vh/xI0Mr48qwlUrVND7WQvAj+Npa/Ne2H6OB4p tmL4eeEUd6cXjmDPpEfP9J/TxHeyofoGS4Tc+pMrX2FWpPC4IyYPEiD5rclI1zbnUQmU6BW/Z xcBj4KYsiBuTBVXPpNvGz4v/ryglyUB5sg/RcinP+4w6+PE+sKBMzNF08xOuwoocmyFXqlWPz XeOWrA4hez3XXY0Uq315mYCMyByQG/tZHludJdzJXLW1WJxNGgsb++3T53m0lKY4nNF0was2w OV5sDW5tsoXrZ8qUhTMP5RKyv1o92cH23UfVPcpYWQZkHZe1vnXsPwYAYNBI6czpbSPyaGVbu 34xZh53QYaSxUSB4B7XwMKlvyxCgzzCvDq+4gGNlT5hWdeZnWX9uMkhCnBDWRmEamueD+kJdI 83cZzs2kKWynjz+XIXp8Gq1cSqvFv+wA+uCHB43yCAVNirM1krp4ZWAVavesxGIB0MuRihvEr LJzfoRwEhwKUSQ1z8f+dII+kMlHNJizD9oWKEvJBWXBU+TBJx3dTx5/lYfaFm2zxRwb1yvJ8t kNATtxy X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Eli Zaretskii <eliz@HIDDEN> writes: > Then maybe we need a post-redisplay-hook. I would like that! - and I think it would solve Keith's problem as well. Regards, Michael.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 29 Jan 2016 15:35:01 +0000 Resent-Message-ID: <handler.22404.B22404.14540816565172 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Michael Heerdegen <michael_heerdegen@HIDDEN> Cc: esq@HIDDEN, 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.14540816565172 (code B ref 22404); Fri, 29 Jan 2016 15:35:01 +0000 Received: (at 22404) by debbugs.gnu.org; 29 Jan 2016 15:34:16 +0000 Received: from localhost ([127.0.0.1]:40728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aPB3w-0001LM-Cw for submit <at> debbugs.gnu.org; Fri, 29 Jan 2016 10:34:16 -0500 Received: from eggs.gnu.org ([208.118.235.92]:50797) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aPB3v-0001L9-3K for 22404 <at> debbugs.gnu.org; Fri, 29 Jan 2016 10:34:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aPB3m-0005ur-OO for 22404 <at> debbugs.gnu.org; Fri, 29 Jan 2016 10:34:09 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:43602) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aPB3m-0005un-Lp; Fri, 29 Jan 2016 10:34:06 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4082 helo=HOME-C4E4A596F7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aPB3l-0003DQ-2R; Fri, 29 Jan 2016 10:34:05 -0500 Date: Fri, 29 Jan 2016 17:33:46 +0200 Message-Id: <83io2cxuw5.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <87vb6ctoui.fsf@HIDDEN> (message from Michael Heerdegen on Fri, 29 Jan 2016 15:57:57 +0100) References: <m2d1suaetl.wl%esq@HIDDEN> <8337tq8yp6.fsf@HIDDEN> <87d1sk389h.fsf@HIDDEN> <83mvroxxib.fsf@HIDDEN> <87vb6ctoui.fsf@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) > From: Michael Heerdegen <michael_heerdegen@HIDDEN> > Cc: esq@HIDDEN, 22404 <at> debbugs.gnu.org > Date: Fri, 29 Jan 2016 15:57:57 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > Then maybe we need a post-redisplay-hook. > > I would like that! - and I think it would solve Keith's problem as well. Patches welcome to that effect.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 29 Jan 2016 15:55:01 +0000 Resent-Message-ID: <handler.22404.B22404.14540828586904 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN>,Michael Heerdegen <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.14540828586904 (code B ref 22404); Fri, 29 Jan 2016 15:55:01 +0000 Received: (at 22404) by debbugs.gnu.org; 29 Jan 2016 15:54:18 +0000 Received: from localhost ([127.0.0.1]:40736 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aPBNK-0001nI-2L for submit <at> debbugs.gnu.org; Fri, 29 Jan 2016 10:54:18 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:45649) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aPBNI-0001n6-H8 for 22404 <at> debbugs.gnu.org; Fri, 29 Jan 2016 10:54:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=ehfdvhWq4g/1Vpood9NQyItt5pXUBRX/U+YUSUHQizs=; b=hlx394nZM8vr/DRuSVQ1CU5YkVTTEmAwYlxKsAW7TpCL9EokqFbIRESor8IhBlgCRHCIg/siivK3Y9KO1lz4MsdO4tD8vBAW5xWVNfR6jSlgnFc3pVD40f13tMw2ad87; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:49569 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aPBN8-0000SQ-2d; Fri, 29 Jan 2016 10:54:06 -0500 Date: Fri, 29 Jan 2016 07:54:08 -0800 Message-ID: <m2d1skv0tb.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Fri_Jan_29_07:54:07_2016-1" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --Multipart_Fri_Jan_29_07:54:07_2016-1 Content-Type: text/plain; charset=US-ASCII In reading the comments in `xdisp.c`, there is a lot of mention about checking to see if the function that ran changed `window-start` and whether the cursor is still visible. In my own tests over the past few days, I created something just like `post-redisplay-hook` that runs towards the end of redisplay. I felt that my own feeble attempt to create the equivalent of the `post-redisplay-hook` had no checking built-in (due to lack knowledge / experience on my part). So, I love the idea of a `post-redisplay-hook`, but think there probably needs to be some type of check to see whether the function that ran from it did some things that require certain recalculations -- e.g., maybe cursor was moved and is no longer partially or fully visible (there is even a setting I discovered where a user can decide that a partially visible cursor is just fine), maybe some text was inserted prior to window-start (which means the prior value is outdated), etc. Sorry that I didn't understand your previous comments about the `pre-command-hook` potentially being a substitute for the contemplated `post-redisplay-hook`. Michael is correct -- the goal is generally to have the screen looking perfectly once redisplay concludes and the `pre-command-hook` (after the fact) can't accomplish that goal. When switching windows, the `pre-command-hook` will also have the wrong window in mind -- the correct window/buffer needs to be determined after the main command finishes. Attached is an example of what I have been using for the past few days while I continue my ongoing tinkering -- it creates a new animal just like `window-scroll-functions` but with a different name. Keith ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Fri, 29 Jan 2016 16:37:16 +0200, Eli Zaretskii wrote: > > > From: Michael Heerdegen <michael_heerdegen@HIDDEN> > > Cc: Keith David Bershatsky <esq@HIDDEN>, 22404 <at> debbugs.gnu.org > > Date: Fri, 29 Jan 2016 13:00:42 +0100 > > > > Anyway, using pre-command-hook is too late for us: it's not executed > > unless the next input arrives, so you have to hit a key until > > decorations or whatever get updated. > > Then maybe we need a post-redisplay-hook. --Multipart_Fri_Jan_29_07:54:07_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="wsf.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy93aW5kb3cuYyBiL3NyYy93aW5kb3cuYwppbmRleCA0YWViOGIzLi44 ZmRjOWY5IDEwMDY0NAotLS0gYS9zcmMvd2luZG93LmMKKysrIGIvc3JjL3dpbmRvdy5jCkBAIC0z MjI4LDYgKzMyMjgsMTYgQEAgSWYgV0lORE9XIGlzIG9taXR0ZWQgb3IgbmlsLCBpdCBkZWZhdWx0 cyB0byB0aGUgc2VsZWN0ZWQgd2luZG93LiAgKi8pCiAgIHJldHVybiBRbmlsOwogfQogCitERUZV TiAoImZvcmNlLXdzZiIsIEZmb3JjZV93c2YsIFNmb3JjZV93c2YsIDAsIDEsIDAsCisgICAgICAg ZG9jOiAvKiBTZXQgd3NmX3RvZ2dsZSBzbyB0aGF0IHJlZGlzcGxheV93aW5kb3cgd2lsbCBydW4g YHdzZi1ob29rJworKGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lKSBldmVuIGlmIG5vIHdpbmRvdyBz Y3JvbGxpbmcgb2NjdXJzLiAgKi8pCisgIChMaXNwX09iamVjdCB3aW5kb3cpCit7CisgIHJlZ2lz dGVyIHN0cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdpbmRvdyk7CisgICAg dy0+d3NmX3RvZ2dsZSA9IHRydWU7CisgICAgcmV0dXJuIHdpbmRvdzsKK30KKwogLyogTWFrZSBX SU5ET1cgZGlzcGxheSBCVUZGRVIuICBSVU5fSE9PS1NfUCBtZWFucyBpdCdzIGFsbG93ZWQKICAg IHRvIHJ1biBob29rcy4gIFNlZSBtYWtlX2ZyYW1lIGZvciBhIGNhc2Ugd2hlcmUgaXQncyBub3Qg YWxsb3dlZC4KICAgIEtFRVBfTUFSR0lOU19QIG1lYW5zIHRoYXQgdGhlIGN1cnJlbnQgbWFyZ2lu cywgZnJpbmdlcywgYW5kCkBAIC03NDIxLDYgKzc0MzEsNyBAQCBkaXNwbGF5ZWQgYWZ0ZXIgYSBz Y3JvbGxpbmcgb3BlcmF0aW9uIHRvIGJlIHNvbWV3aGF0IGluYWNjdXJhdGUuICAqLyk7CiAgIGRl ZnN1YnIgKCZTc2V0X3dpbmRvd19idWZmZXIpOwogICBkZWZzdWJyICgmU3J1bl93aW5kb3dfY29u ZmlndXJhdGlvbl9jaGFuZ2VfaG9vayk7CiAgIGRlZnN1YnIgKCZTcnVuX3dpbmRvd19zY3JvbGxf ZnVuY3Rpb25zKTsKKyAgZGVmc3ViciAoJlNmb3JjZV93c2YpOwogICBkZWZzdWJyICgmU3NlbGVj dF93aW5kb3cpOwogICBkZWZzdWJyICgmU2ZvcmNlX3dpbmRvd191cGRhdGUpOwogICBkZWZzdWJy ICgmU3NwbGl0X3dpbmRvd19pbnRlcm5hbCk7CmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmggYi9z cmMvd2luZG93LmgKaW5kZXggYzI5MjA3ZC4uMTFhZWExMyAxMDA2NDQKLS0tIGEvc3JjL3dpbmRv dy5oCisrKyBiL3NyYy93aW5kb3cuaApAQCAtMzQ4LDYgKzM0OCw5IEBAIHN0cnVjdCB3aW5kb3cK ICAgICAgICBWd2luZG93X3Njcm9sbF9mdW5jdGlvbnM7IGFsc28gYnkgRnJlY2VudGVyIHdpdGgg YXJndW1lbnQuICAqLwogICAgIGJvb2xfYmYgb3B0aW9uYWxfbmV3X3N0YXJ0IDogMTsKIAorICAg IC8qIFRydWUgbWVhbnMgZm9yY2UgYSBjYWxsIHRvIFZ3c2ZfaG9vay4gICovCisgICAgYm9vbF9i ZiB3c2ZfdG9nZ2xlIDogMTsKKwogICAgIC8qIFRydWUgbWVhbnMgdGhlIGN1cnNvciBpcyBjdXJy ZW50bHkgZGlzcGxheWVkLiAgVGhpcyBjYW4gYmUKICAgICAgICBzZXQgdG8gemVybyBieSBmdW5j dGlvbnMgb3ZlcnBhaW50aW5nIHRoZSBjdXJzb3IgaW1hZ2UuICAqLwogICAgIGJvb2xfYmYgcGh5 c19jdXJzb3Jfb25fcCA6IDE7CmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94ZGlzcC5j CmluZGV4IGQ3MzBhMGIuLjQxNmY2MzIgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisrKyBiL3Ny Yy94ZGlzcC5jCkBAIC0xMzY3Miw2ICsxMzY3Miw3IEBAIHJlZGlzcGxheV9pbnRlcm5hbCAodm9p ZCkKICAgICAgICYmIG1hdGNoX3AKICAgICAgICYmICF3LT5mb3JjZV9zdGFydAogICAgICAgJiYg IXctPm9wdGlvbmFsX25ld19zdGFydAorICAgICAgJiYgIXctPndzZl90b2dnbGUKICAgICAgIC8q IFBvaW50IG11c3QgYmUgb24gdGhlIGxpbmUgdGhhdCB3ZSBoYXZlIGluZm8gcmVjb3JkZWQgYWJv dXQuICAqLwogICAgICAgJiYgUFQgPj0gQ0hBUlBPUyAodGxidWZwb3MpCiAgICAgICAmJiBQVCA8 PSBaIC0gQ0hBUlBPUyAodGxlbmRwb3MpCkBAIC0xNTAzMCw2ICsxNTAzMSwyMiBAQCBydW5fd2lu ZG93X3Njcm9sbF9mdW5jdGlvbnMgKExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IHRleHRfcG9z IHN0YXJ0cCkKICAgcmV0dXJuIHN0YXJ0cDsKIH0KIAorc3RhdGljIHN0cnVjdCB0ZXh0X3Bvcwor cnVuX3dzZiAoTGlzcF9PYmplY3Qgd2luZG93LCBzdHJ1Y3QgdGV4dF9wb3Mgc3RhcnRwLCBzdHJ1 Y3QgdGV4dF9wb3MgZW5kcCkKK3sKKyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKHdpbmRv dyk7CisgIFNFVF9NQVJLRVJfRlJPTV9URVhUX1BPUyAody0+c3RhcnQsIHN0YXJ0cCk7CisgIGVh c3NlcnQgKGN1cnJlbnRfYnVmZmVyID09IFhCVUZGRVIgKHctPmNvbnRlbnRzKSk7CisgIGlmICgh TklMUCAoVndzZl9ob29rKQorICAgICAgJiYgKEZsb2NhbF92YXJpYWJsZV9wIChRd3NmX3Zhciwg RndpbmRvd19idWZmZXIgKHdpbmRvdykpKSkKKyAgICB7CisgICAgICBDQUxMTiAoRnJ1bl9ob29r X3dpdGhfYXJncywgUXdzZl9ob29rLCB3aW5kb3csIG1ha2VfbnVtYmVyIChDSEFSUE9TIChzdGFy dHApKSwgbWFrZV9udW1iZXIgKENIQVJQT1MgKGVuZHApKSk7CisgICAgICBTRVRfVEVYVF9QT1Nf RlJPTV9NQVJLRVIgKHN0YXJ0cCwgdy0+c3RhcnQpOworICAgICAgLyogSW4gY2FzZSB0aGUgaG9v ayBmdW5jdGlvbnMgc3dpdGNoIGJ1ZmZlcnMuICAqLworICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5h bCAoWEJVRkZFUiAody0+Y29udGVudHMpKTsKKyAgICB9CisgIHJldHVybiBzdGFydHA7Cit9CiAK IC8qIE1ha2Ugc3VyZSB0aGUgbGluZSBjb250YWluaW5nIHRoZSBjdXJzb3IgaXMgZnVsbHkgdmlz aWJsZS4KICAgIEEgdmFsdWUgb2YgdHJ1ZSBtZWFucyB0aGVyZSBpcyBub3RoaW5nIHRvIGJlIGRv bmUuCkBAIC0xNTM3MSw2ICsxNTM4OCwxMSBAQCB0cnlfc2Nyb2xsaW5nIChMaXNwX09iamVjdCB3 aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wLAogICAvKiBSdW4gd2luZG93IHNjcm9sbCBmdW5j dGlvbnMuICAqLwogICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRv dywgc3RhcnRwKTsKIAorICBzdGFydHAgPSBydW5fd3NmICh3aW5kb3csIHN0YXJ0cCwgc3RhcnRw KTsKKyNpZmRlZiBHTFlQSF9ERUJVRworICBkZWJ1Z19tZXRob2RfYWRkICh3LCAicnVuX3dzZiBb MSBvZiAzXSB3YXMgZXhlY3V0ZWQiKTsKKyNlbmRpZgorCiAgIC8qIERpc3BsYXkgdGhlIHdpbmRv dy4gIEdpdmUgdXAgaWYgbmV3IGZvbnRzIGFyZSBsb2FkZWQsIG9yIGlmIHBvaW50CiAgICAgIGRv ZXNuJ3QgYXBwZWFyLiAgKi8KICAgaWYgKCF0cnlfd2luZG93ICh3aW5kb3csIHN0YXJ0cCwgMCkp CkBAIC0xNjIyNSwxMyArMTYyNDcsMTIgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qg d2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAogICAvKiBJZiBzb21lb25lIHNwZWNpZmll ZCBhIG5ldyBzdGFydGluZyBwb2ludCBidXQgZGlkIG5vdCBpbnNpc3QsCiAgICAgIGNoZWNrIHdo ZXRoZXIgaXQgY2FuIGJlIHVzZWQuICAqLwotICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8 fCB3aW5kb3dfZnJvemVuX3AgKHcpKQorICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3 LT53c2ZfdG9nZ2xlIHx8IHdpbmRvd19mcm96ZW5fcCAodykpCiAgICAgICAmJiBDSEFSUE9TIChz dGFydHApID49IEJFR1YKICAgICAgICYmIENIQVJQT1MgKHN0YXJ0cCkgPD0gWlYpCiAgICAgewog ICAgICAgcHRyZGlmZl90IGl0X2NoYXJwb3M7CiAKLSAgICAgIHctPm9wdGlvbmFsX25ld19zdGFy dCA9IGZhbHNlOwogICAgICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBzdGFydHApOwogICAgICAg bW92ZV9pdF90byAoJml0LCBQVCwgMCwgaXQubGFzdF92aXNpYmxlX3ksIC0xLAogCQkgIE1PVkVf VE9fUE9TIHwgTU9WRV9UT19YIHwgTU9WRV9UT19ZKTsKQEAgLTE2MjUyLDE0ICsxNjI3MywyOCBA QCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29u ZV9wKQogCSAgICB3LT5mb3JjZV9zdGFydCA9IHRydWU7CiAjaWZkZWYgR0xZUEhfREVCVUcKIAkg IGlmICh3LT5mb3JjZV9zdGFydCkKLQkgICAgewotCSAgICAgIGlmICh3aW5kb3dfZnJvemVuX3Ag KHcpKQotCQlkZWJ1Z19tZXRob2RfYWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gZnJvemVu IHdpbmRvdyBzdGFydCIpOwotCSAgICAgIGVsc2UKLQkJZGVidWdfbWV0aG9kX2FkZCAodywgInNl dCBmb3JjZV9zdGFydCBmcm9tIG9wdGlvbmFsX25ld19zdGFydCIpOwotCSAgICB9CisgICAgewor ICAgICAgaWYgKHdpbmRvd19mcm96ZW5fcCAodykpCisgICAgICAgIHsKKyAgICAgICAgZGVidWdf bWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIGZyb3plbiB3aW5kb3cgc3RhcnQi KTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYgKHctPm9wdGlvbmFsX25ld19zdGFydCkKKyAgICAg ICAgeworICAgICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20g b3B0aW9uYWxfbmV3X3N0YXJ0Iik7CisgICAgICB9CisgICAgICBlbHNlIGlmICh3LT53c2ZfdG9n Z2xlKQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vf c3RhcnQgZnJvbSB3c2ZfdG9nZ2xlIik7CisgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsK KyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgIlRoaXMgc2l0dWF0aW9uIGlzIG5vdCB5ZXQg Y29udGVtcGxhdGVkLiIpOworICAgICAgfQorICAgIH0KICNlbmRpZgogCX0KKyAgICAgIHctPm9w dGlvbmFsX25ld19zdGFydCA9IGZhbHNlOworICAgICAgdy0+d3NmX3RvZ2dsZSA9IGZhbHNlOwog ICAgIH0KIAogIGZvcmNlX3N0YXJ0OgpAQCAtMTYyODcsMTEgKzE2MzIyLDE5IEBAIHJlZGlzcGxh eV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJIHRo YW4gdG8gZ2V0IGludG8gYW4gaW5maW5pdGUgbG9vcCBjYWxsaW5nIHRoZSBob29rIGZ1bmN0aW9u cwogCSBhbmQgaGF2aW5nIHRoZW0gZ2V0IG1vcmUgZXJyb3JzLiAgKi8KICAgICAgIGlmICghdXBk YXRlX21vZGVfbGluZQotCSAgfHwgISBOSUxQIChWd2luZG93X3Njcm9sbF9mdW5jdGlvbnMpKQor CSAgfHwgISBOSUxQIChWd2luZG93X3Njcm9sbF9mdW5jdGlvbnMpCisJICB8fCAhIE5JTFAgKFZ3 c2ZfaG9vaykpCiAJewogCSAgdXBkYXRlX21vZGVfbGluZSA9IHRydWU7CiAJICB3LT51cGRhdGVf bW9kZV9saW5lID0gdHJ1ZTsKKyAgLyogUnVuIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb25zLiAgKi8K IAkgIHN0YXJ0cCA9IHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBzdGFydHAp OworCisgIHN0YXJ0cCA9IHJ1bl93c2YgKHdpbmRvdywgc3RhcnRwLCBzdGFydHApOworI2lmZGVm IEdMWVBIX0RFQlVHCisgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJydW5fd3NmIFsyIG9mIDNdIHdh cyBleGVjdXRlZCIpOworI2VuZGlmCisKIAl9CiAKICAgICAgIGlmIChDSEFSUE9TIChzdGFydHAp IDwgQkVHVikKQEAgLTE2NTU5LDYgKzE2NjAyLDcgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9P YmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAkgICAgIGJlY2F1c2UgYSB3aW5k b3cgc2Nyb2xsIGZ1bmN0aW9uIGNhbiBoYXZlIGNoYW5nZWQgdGhlCiAJICAgICBidWZmZXIuICAq LwogCSAgfHwgIU5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucykKKwkgIHx8ICFOSUxQIChW d3NmX2hvb2spCiAJICB8fCBNSU5JX1dJTkRPV19QICh3KQogCSAgfHwgISh1c2VkX2N1cnJlbnRf bWF0cml4X3AKIAkgICAgICAgPSB0cnlfd2luZG93X3JldXNpbmdfY3VycmVudF9tYXRyaXggKHcp KSkKQEAgLTE2NzU2LDYgKzE2ODAwLDExIEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0 IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAgIC8qIFJ1biBzY3JvbGwgaG9va3MuICAq LwogICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRvdywgaXQuY3Vy cmVudC5wb3MpOwogCisgIHN0YXJ0cCA9IHJ1bl93c2YgKHdpbmRvdywgaXQuY3VycmVudC5wb3Ms IGl0LmN1cnJlbnQucG9zKTsKKyNpZmRlZiBHTFlQSF9ERUJVRworICBkZWJ1Z19tZXRob2RfYWRk ICh3LCAicnVuX3dzZiBbMyBvZiAzXSBleGVjdXRlZCIpOworI2VuZGlmCisKICAgLyogUmVkaXNw bGF5IHRoZSB3aW5kb3cuICAqLwogICBib29sIHVzZV9kZXNpcmVkX21hdHJpeCA9IGZhbHNlOwog ICBpZiAoIWN1cnJlbnRfbWF0cml4X3VwX3RvX2RhdGVfcApAQCAtMTY3NjQsNiArMTY4MTMsNyBA QCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29u ZV9wKQogICAgICAgLyogRG9uJ3QgdXNlIHRyeV93aW5kb3dfcmV1c2luZ19jdXJyZW50X21hdHJp eCBpbiB0aGlzIGNhc2UKIAkgYmVjYXVzZSBpdCBjYW4gaGF2ZSBjaGFuZ2VkIHRoZSBidWZmZXIu ICAqLwogICAgICAgfHwgIU5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucykKKyAgICAgIHx8 ICFOSUxQIChWd3NmX2hvb2spCiAgICAgICB8fCAhanVzdF90aGlzX29uZV9wCiAgICAgICB8fCBN SU5JX1dJTkRPV19QICh3KQogICAgICAgfHwgISh1c2VkX2N1cnJlbnRfbWF0cml4X3AKQEAgLTIz NjE2LDYgKzIzNjY2LDIwIEBAIGRlY29kZV9tb2RlX3NwZWMgKHN0cnVjdCB3aW5kb3cgKncsIHJl Z2lzdGVyIGludCBjLCBpbnQgZmllbGRfd2lkdGgsCiAJICByZXR1cm4gIkAiOwogICAgICAgfQog CisgICAgY2FzZSAndyc6CisgICAgICB7CisgIHB0cmRpZmZfdCB3aW5kb3dfc3RhcnQgPSBtYXJr ZXJfcG9zaXRpb24gKHctPnN0YXJ0KTsKKyAgcGludDJzdHIgKGRlY29kZV9tb2RlX3NwZWNfYnVm LCB3aWR0aCwgd2luZG93X3N0YXJ0KTsKKyAgcmV0dXJuIGRlY29kZV9tb2RlX3NwZWNfYnVmOwor ICAgICAgfQorCisgICAgY2FzZSAnVyc6CisgICAgICB7CisgIHB0cmRpZmZfdCB3aW5kb3dfZW5k ID0gQlVGX1ogKGIpIC0gdy0+d2luZG93X2VuZF9wb3M7CisgIHBpbnQyc3RyIChkZWNvZGVfbW9k ZV9zcGVjX2J1Ziwgd2lkdGgsIHdpbmRvd19lbmQpOworICByZXR1cm4gZGVjb2RlX21vZGVfc3Bl Y19idWY7CisgICAgICB9CisKICAgICBjYXNlICd6JzoKICAgICAgIC8qIGNvZGluZy1zeXN0ZW0g KG5vdCBpbmNsdWRpbmcgZW5kLW9mLWxpbmUgZm9ybWF0KSAqLwogICAgIGNhc2UgJ1onOgpAQCAt MzA5MjgsNiArMzA5OTIsNyBAQCBUaGV5IGFyZSBzdGlsbCBsb2dnZWQgdG8gdGhlICpNZXNzYWdl cyogYnVmZmVyLiAgKi8pOwogICBERUZTWU0gKFFvdmVycmlkaW5nX3Rlcm1pbmFsX2xvY2FsX21h cCwgIm92ZXJyaWRpbmctdGVybWluYWwtbG9jYWwtbWFwIik7CiAgIERFRlNZTSAoUW92ZXJyaWRp bmdfbG9jYWxfbWFwLCAib3ZlcnJpZGluZy1sb2NhbC1tYXAiKTsKICAgREVGU1lNIChRd2luZG93 X3Njcm9sbF9mdW5jdGlvbnMsICJ3aW5kb3ctc2Nyb2xsLWZ1bmN0aW9ucyIpOworICBERUZTWU0g KFF3c2ZfaG9vaywgIndzZi1ob29rIik7CiAgIERFRlNZTSAoUXdpbmRvd190ZXh0X2NoYW5nZV9m dW5jdGlvbnMsICJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVuY3Rpb25zIik7CiAgIERFRlNZTSAoUXJl ZGlzcGxheV9lbmRfdHJpZ2dlcl9mdW5jdGlvbnMsICJyZWRpc3BsYXktZW5kLXRyaWdnZXItZnVu Y3Rpb25zIik7CiAgIERFRlNZTSAoUWluaGliaXRfcG9pbnRfbW90aW9uX2hvb2tzLCAiaW5oaWJp dC1wb2ludC1tb3Rpb24taG9va3MiKTsKQEAgLTMxMjQ5LDYgKzMxMzE0LDE2IEBAIGlzIHNjcm9s bGVkLiAgSXQgaXMgbm90IGRlc2lnbmVkIGZvciB0aGF0LCBhbmQgc3VjaCB1c2UgcHJvYmFibHkg d29uJ3QKIHdvcmsuICAqLyk7CiAgIFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyA9IFFuaWw7CiAK KyAgREVGVkFSX0xJU1AgKCJ3c2YtaG9vayIsIFZ3c2ZfaG9vaywKKyAgICBkb2M6IC8qIFVzZWQg dG8gb2J0YWluIHRoZSBuZXcgYHdpbmRvdy1zdGFydCcgZHVyaW5nIHJlZGlzcGxheS4gICovKTsK KyAgVndzZl9ob29rID0gUW5pbDsKKworICBERUZWQVJfTElTUCAoIndzZi12YXIiLCBWd3NmX3Zh ciwKKyAgICBkb2M6IC8qIGB3c2YtaG9va2AgY2hlY2tzIHRvIHNlZSBpZiBgd3NmLXZhcmAgaXMg c2V0IGxvY2FsbHkuICAqLyk7CisgIFZ3c2ZfdmFyID0gUW5pbDsKKyAgRm1ha2VfdmFyaWFibGVf YnVmZmVyX2xvY2FsIChRd3NmX3Zhcik7CisgIERFRlNZTSAoUXdzZl92YXIsICJ3c2YtdmFyIik7 CisKICAgREVGVkFSX0xJU1AgKCJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVuY3Rpb25zIiwKIAkgICAg ICAgVndpbmRvd190ZXh0X2NoYW5nZV9mdW5jdGlvbnMsCiAgICAgZG9jOiAvKiBGdW5jdGlvbnMg dG8gY2FsbCBpbiByZWRpc3BsYXkgd2hlbiB0ZXh0IGluIHRoZSB3aW5kb3cgbWlnaHQgY2hhbmdl LiAgKi8pOwo= --Multipart_Fri_Jan_29_07:54:07_2016-1--
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Mon, 01 Feb 2016 03:51:02 +0000 Resent-Message-ID: <handler.22404.B22404.14542986161474 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: Michael Heerdegen <eliz@HIDDEN>, 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.14542986161474 (code B ref 22404); Mon, 01 Feb 2016 03:51:02 +0000 Received: (at 22404) by debbugs.gnu.org; 1 Feb 2016 03:50:16 +0000 Received: from localhost ([127.0.0.1]:43739 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aQ5VI-0000Ni-2Z for submit <at> debbugs.gnu.org; Sun, 31 Jan 2016 22:50:16 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:55510) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aQ5VF-0000NV-Rk for 22404 <at> debbugs.gnu.org; Sun, 31 Jan 2016 22:50:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=rDlY5brax27XFHPsv0ccCZ0U0yRuSE9UnFgy7+t+VXU=; b=v8i2uhJdBR6Sl8Vb0/9wz4btewScj08gkwww5FYEHy6dLpBrvflAHb9t2vZGJV8Oh9Ruu/YeXKlHmV2KLlHOHHH0DciyGvpXM71f1s7uhlgTJPcLxmzE/PrKI5Hi/awa; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:56095 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aQ5V4-0001WF-Bo; Sun, 31 Jan 2016 22:50:02 -0500 Date: Sun, 31 Jan 2016 19:50:05 -0800 Message-ID: <m2powh2ioi.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Sun_Jan_31_19:50:03_2016-1" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --Multipart_Sun_Jan_31_19:50:03_2016-1 Content-Type: text/plain; charset=US-ASCII I see that there are a few express circumstances in the function `window-end` where a forced update will not occur, even though a user expressly requested it with the optional argument being set to `t`. Michael had mentioned an unspecified situation where `window-end` was incorrect from the `window-scroll-functions` hook even with a forced update, so perhaps one or more of those expressly coded exceptions is/are to blame. I encountered a similar situation today in my testing with interactively calling `previous-line` at the top window edge (and scroll-conservatively 101) where the `window-end` was not updating correctly. Attached is a diff-patch of the second draft for the new proposed animal that is somewhat similar to the `window-scroll-functions` hook, but this new animal is able to run every command loop even when there is no scrolling. It automatically updates `window-end`, and it throws four (4) values that can be used by the user's custom function attached to the new hook: * window-start * window-end * point at the beginning of the line of window-start. * point at the end of the line of window-end. I added two new symbols for the mode-line: little `%w` for `window-start` and big `%W` for `window-end`. This made debugging much easier, and I do a lot with window-start/end, so it comes in handy for writing other related functions. I removed one double quote in comments in `window.c` that was breaking my font-lock highlighting -- an unmatched double quotes in a comment always causes havoc with my highlighting for the remainder of the buffer, so I try to fix those whenever I come across them. I still haven't figured out how to entirely substitute throwing the switch `w->wsf_toggle = true` with just a buffer-local variable. Ideally, I would prefer that the new hook run whenever local variable `wsf-var` is `t` -- without needing a switch. At the present time, I am throwing the switch each command loop with the `post-command-hook`. [The switch gets set back to `false` during redisplay, and is needed as sort of a counter so that a section of the redisplay code does not run more than necessary.] This draft diff-patch can of course still use some polishing up -- e.g., the forced window update only needs to occur when `wsf-var` is `t`. In future drafts, I'll probably change some of the names to further distinguish this from the built-in WSF. [The built-in WSF section near a patched comment labeled "2 of 3" should probably now have an exception so that it doesn't run merely because this new animal is running, and I'll think some more about that in the coming days.] I'll be using this patch in my daily routine to see how it works out. Here is the sample usage, which is designed to be buffer-local: (setq scroll-conservatively 101) (setq wsf-var t) (defun hr-pch-fn () (force-wsf (selected-window))) (defun hr-wsf-fn (win start end pbol-start peol-end) (message "win: %s | start: %s | end: %s | peol-start: %s | peol-end: %s" win start end pbol-start peol-end)) (add-hook 'post-command-hook 'hr-pch-fn t t) (add-hook 'wsf-hook 'hr-wsf-fn nil t) --Multipart_Sun_Jan_31_19:50:03_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="wsf.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy93aW5kb3cuYyBiL3NyYy93aW5kb3cuYwppbmRleCBlMWEzMGVlLi5j MTZjZDM2IDEwMDY0NAotLS0gYS9zcmMvd2luZG93LmMKKysrIGIvc3JjL3dpbmRvdy5jCkBAIC0x NTU5LDcgKzE1NTksNyBAQCBoYXZlIGJlZW4gaWYgcmVkaXNwbGF5IGhhZCBmaW5pc2hlZCwgZG8g dGhpczoKICAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgIChnb3RvLWNoYXIgKHdpbmRvdy1zdGFy dCB3aW5kb3cpKQogICAgICAgKHZlcnRpY2FsLW1vdGlvbiAoMS0gKHdpbmRvdy1oZWlnaHQgd2lu ZG93KSkgd2luZG93KQotICAgICAgKHBvaW50KSkiKSAgKi8KKyAgICAgIChwb2ludCkpKSAgKi8K IAogREVGVU4gKCJ3aW5kb3ctZW5kIiwgRndpbmRvd19lbmQsIFN3aW5kb3dfZW5kLCAwLCAyLCAw LAogICAgICAgIGRvYzogLyogUmV0dXJuIHBvc2l0aW9uIGF0IHdoaWNoIGRpc3BsYXkgY3VycmVu dGx5IGVuZHMgaW4gV0lORE9XLgpAQCAtMzIyOSw2ICszMjI5LDE2IEBAIElmIFdJTkRPVyBpcyBv bWl0dGVkIG9yIG5pbCwgaXQgZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIHdpbmRvdy4gICovKQog ICByZXR1cm4gUW5pbDsKIH0KIAorREVGVU4gKCJmb3JjZS13c2YiLCBGZm9yY2Vfd3NmLCBTZm9y Y2Vfd3NmLCAwLCAxLCAwLAorICAgICAgIGRvYzogLyogU2V0IHdzZl90b2dnbGUgc28gdGhhdCBy ZWRpc3BsYXlfd2luZG93IHdpbGwgcnVuIGB3c2YtaG9vaycKKyhhdCB0aGUgYXBwcm9wcmlhdGUg dGltZSkgZXZlbiBpZiBubyB3aW5kb3cgc2Nyb2xsaW5nIG9jY3Vycy4gICovKQorICAoTGlzcF9P YmplY3Qgd2luZG93KQoreworICByZWdpc3RlciBzdHJ1Y3Qgd2luZG93ICp3ID0gZGVjb2RlX2xp dmVfd2luZG93ICh3aW5kb3cpOworICAgIHctPndzZl90b2dnbGUgPSB0cnVlOworICAgIHJldHVy biB3aW5kb3c7Cit9CisKIC8qIE1ha2UgV0lORE9XIGRpc3BsYXkgQlVGRkVSLiAgUlVOX0hPT0tT X1AgbWVhbnMgaXQncyBhbGxvd2VkCiAgICB0byBydW4gaG9va3MuICBTZWUgbWFrZV9mcmFtZSBm b3IgYSBjYXNlIHdoZXJlIGl0J3Mgbm90IGFsbG93ZWQuCiAgICBLRUVQX01BUkdJTlNfUCBtZWFu cyB0aGF0IHRoZSBjdXJyZW50IG1hcmdpbnMsIGZyaW5nZXMsIGFuZApAQCAtNzQyMyw2ICs3NDMz LDcgQEAgZGlzcGxheWVkIGFmdGVyIGEgc2Nyb2xsaW5nIG9wZXJhdGlvbiB0byBiZSBzb21ld2hh dCBpbmFjY3VyYXRlLiAgKi8pOwogICBkZWZzdWJyICgmU3NldF93aW5kb3dfYnVmZmVyKTsKICAg ZGVmc3ViciAoJlNydW5fd2luZG93X2NvbmZpZ3VyYXRpb25fY2hhbmdlX2hvb2spOwogICBkZWZz dWJyICgmU3J1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyk7CisgIGRlZnN1YnIgKCZTZm9yY2Vf d3NmKTsKICAgZGVmc3ViciAoJlNzZWxlY3Rfd2luZG93KTsKICAgZGVmc3ViciAoJlNmb3JjZV93 aW5kb3dfdXBkYXRlKTsKICAgZGVmc3ViciAoJlNzcGxpdF93aW5kb3dfaW50ZXJuYWwpOwpkaWZm IC0tZ2l0IGEvc3JjL3dpbmRvdy5oIGIvc3JjL3dpbmRvdy5oCmluZGV4IGMyOTIwN2QuLjExYWVh MTMgMTAwNjQ0Ci0tLSBhL3NyYy93aW5kb3cuaAorKysgYi9zcmMvd2luZG93LmgKQEAgLTM0OCw2 ICszNDgsOSBAQCBzdHJ1Y3Qgd2luZG93CiAgICAgICAgVndpbmRvd19zY3JvbGxfZnVuY3Rpb25z OyBhbHNvIGJ5IEZyZWNlbnRlciB3aXRoIGFyZ3VtZW50LiAgKi8KICAgICBib29sX2JmIG9wdGlv bmFsX25ld19zdGFydCA6IDE7CiAKKyAgICAvKiBUcnVlIG1lYW5zIGZvcmNlIGEgY2FsbCB0byBW d3NmX2hvb2suICAqLworICAgIGJvb2xfYmYgd3NmX3RvZ2dsZSA6IDE7CisKICAgICAvKiBUcnVl IG1lYW5zIHRoZSBjdXJzb3IgaXMgY3VycmVudGx5IGRpc3BsYXllZC4gIFRoaXMgY2FuIGJlCiAg ICAgICAgc2V0IHRvIHplcm8gYnkgZnVuY3Rpb25zIG92ZXJwYWludGluZyB0aGUgY3Vyc29yIGlt YWdlLiAgKi8KICAgICBib29sX2JmIHBoeXNfY3Vyc29yX29uX3AgOiAxOwpkaWZmIC0tZ2l0IGEv c3JjL3hkaXNwLmMgYi9zcmMveGRpc3AuYwppbmRleCA3OGZkZGQ2Li43OTQzZTI4IDEwMDY0NAot LS0gYS9zcmMveGRpc3AuYworKysgYi9zcmMveGRpc3AuYwpAQCAtMTM3MDQsNiArMTM3MDQsNyBA QCByZWRpc3BsYXlfaW50ZXJuYWwgKHZvaWQpCiAgICAgICAmJiBtYXRjaF9wCiAgICAgICAmJiAh dy0+Zm9yY2Vfc3RhcnQKICAgICAgICYmICF3LT5vcHRpb25hbF9uZXdfc3RhcnQKKyAgICAgICYm ICF3LT53c2ZfdG9nZ2xlCiAgICAgICAvKiBQb2ludCBtdXN0IGJlIG9uIHRoZSBsaW5lIHRoYXQg d2UgaGF2ZSBpbmZvIHJlY29yZGVkIGFib3V0LiAgKi8KICAgICAgICYmIFBUID49IENIQVJQT1Mg KHRsYnVmcG9zKQogICAgICAgJiYgUFQgPD0gWiAtIENIQVJQT1MgKHRsZW5kcG9zKQpAQCAtMTUw NjIsNiArMTUwNjMsMjcgQEAgcnVuX3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zIChMaXNwX09iamVj dCB3aW5kb3csIHN0cnVjdCB0ZXh0X3BvcyBzdGFydHApCiAgIHJldHVybiBzdGFydHA7CiB9CiAK K3N0YXRpYyBzdHJ1Y3QgdGV4dF9wb3MKK3J1bl93c2YgKExpc3BfT2JqZWN0IHdpbmRvdywgc3Ry dWN0IHRleHRfcG9zIHN0YXJ0cCwgaW50IGVuZHAsCisgICAgICAgICBpbnQgcGJvbF9zdGFydHAs IGludCBwZW9sX2VuZHApCit7CisgIHN0cnVjdCB3aW5kb3cgKncgPSBYV0lORE9XICh3aW5kb3cp OworICBTRVRfTUFSS0VSX0ZST01fVEVYVF9QT1MgKHctPnN0YXJ0LCBzdGFydHApOworICBlYXNz ZXJ0IChjdXJyZW50X2J1ZmZlciA9PSBYQlVGRkVSICh3LT5jb250ZW50cykpOworICBpZiAoIU5J TFAgKFZ3c2ZfaG9vaykKKyAgICAgICYmIChGbG9jYWxfdmFyaWFibGVfcCAoUXdzZl92YXIsIEZ3 aW5kb3dfYnVmZmVyICh3aW5kb3cpKSkpCisgICAgeworICAgICAgQ0FMTE4gKEZydW5faG9va193 aXRoX2FyZ3MsIFF3c2ZfaG9vaywgd2luZG93LAorICAgICAgICBtYWtlX251bWJlciAoQ0hBUlBP UyAoc3RhcnRwKSksCisgICAgICAgIG1ha2VfbnVtYmVyIChlbmRwKSwKKyAgICAgICAgbWFrZV9u dW1iZXIgKHBib2xfc3RhcnRwKSwKKyAgICAgICAgbWFrZV9udW1iZXIgKHBlb2xfZW5kcCkpOwor ICAgICAgU0VUX1RFWFRfUE9TX0ZST01fTUFSS0VSIChzdGFydHAsIHctPnN0YXJ0KTsKKyAgICAg IC8qIEluIGNhc2UgdGhlIGhvb2sgZnVuY3Rpb25zIHN3aXRjaCBidWZmZXJzLiAgKi8KKyAgICAg IHNldF9idWZmZXJfaW50ZXJuYWwgKFhCVUZGRVIgKHctPmNvbnRlbnRzKSk7CisgICAgfQorICBy ZXR1cm4gc3RhcnRwOworfQogCiAvKiBNYWtlIHN1cmUgdGhlIGxpbmUgY29udGFpbmluZyB0aGUg Y3Vyc29yIGlzIGZ1bGx5IHZpc2libGUuCiAgICBBIHZhbHVlIG9mIHRydWUgbWVhbnMgdGhlcmUg aXMgbm90aGluZyB0byBiZSBkb25lLgpAQCAtMTUxNTQsNyArMTUxNzYsNyBAQCB0cnlfc2Nyb2xs aW5nIChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wLAogICBzdHJ1Y3Qg ZnJhbWUgKmYgPSBYRlJBTUUgKHctPmZyYW1lKTsKICAgc3RydWN0IHRleHRfcG9zIHBvcywgc3Rh cnRwOwogICBzdHJ1Y3QgaXQgaXQ7Ci0gIGludCB0aGlzX3Njcm9sbF9tYXJnaW4sIHNjcm9sbF9t YXgsIHJjLCBoZWlnaHQ7CisgIGludCB0aGlzX3Njcm9sbF9tYXJnaW4sIHNjcm9sbF9tYXgsIHJj LCBoZWlnaHQsIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9sX2VuZHA7CiAgIGludCBkeSA9IDAsIGFt b3VudF90b19zY3JvbGwgPSAwOwogICBib29sIHNjcm9sbF9kb3duX3AgPSBmYWxzZTsKICAgaW50 IGV4dHJhX3Njcm9sbF9tYXJnaW5fbGluZXMgPSBsYXN0X2xpbmVfbWlzZml0OwpAQCAtMTU0MDMs NiArMTU0MjUsNDAgQEAgdHJ5X3Njcm9sbGluZyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1 c3RfdGhpc19vbmVfcCwKICAgLyogUnVuIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb25zLiAgKi8KICAg c3RhcnRwID0gcnVuX3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zICh3aW5kb3csIHN0YXJ0cCk7CiAK KyAgLyogUmVjYWxjdWxhdGUgdGhlIHdpbmRvdyBlbmQgcG9zaXRpb24uICAqLworICBzdHJ1Y3Qg YnVmZmVyICpiOworICBMaXNwX09iamVjdCBidWY7CisgIGJ1ZiA9IHctPmNvbnRlbnRzOworICBD SEVDS19CVUZGRVIgKGJ1Zik7CisgIGIgPSBYQlVGRkVSIChidWYpOworICBzdHJ1Y3QgYnVmZmVy ICpvbGRfYnVmZmVyID0gTlVMTDsKKyAgdm9pZCAqaXRkYXRhID0gTlVMTDsKKyAgICBpZiAoYiAh PSBjdXJyZW50X2J1ZmZlcikKKyAgICAgIHsKKyAgICAgIG9sZF9idWZmZXIgPSBjdXJyZW50X2J1 ZmZlcjsKKyAgICAgIHNldF9idWZmZXJfaW50ZXJuYWwgKGIpOworICAgICAgfQorICAgIENMSVBf VEVYVF9QT1NfRlJPTV9NQVJLRVIgKHN0YXJ0cCwgdy0+c3RhcnQpOworICAgIGl0ZGF0YSA9IGJp ZGlfc2hlbHZlX2NhY2hlICgpOworICAgIHN0YXJ0X2Rpc3BsYXkgKCZpdCwgdywgc3RhcnRwKTsK KyAgICBtb3ZlX2l0X3ZlcnRpY2FsbHkgKCZpdCwgd2luZG93X2JveF9oZWlnaHQgKHcpKTsKKyAg ICBpZiAoaXQuY3VycmVudF95IDwgaXQubGFzdF92aXNpYmxlX3kpCisgICAgICBtb3ZlX2l0X3Bh c3RfZW9sICgmaXQpOworICAgIGVuZHAgPSAoSVRfQ0hBUlBPUyAoaXQpKTsKKyAgICBiaWRpX3Vu c2hlbHZlX2NhY2hlIChpdGRhdGEsIGZhbHNlKTsKKyAgICBpZiAob2xkX2J1ZmZlcikKKyAgICAg IHNldF9idWZmZXJfaW50ZXJuYWwgKG9sZF9idWZmZXIpOworICBwdHJkaWZmX3Qgb3JpZ2luYWxf cG9zID0gUFQ7CisgIFNFVF9QVCAoQ0hBUlBPUyAoc3RhcnRwKSk7CisgIHBib2xfc3RhcnRwID0g WElOVCAoRmxpbmVfYmVnaW5uaW5nX3Bvc2l0aW9uIChRbmlsKSk7CisgIFNFVF9QVCAoZW5kcCk7 CisgIHBlb2xfZW5kcCA9IFhJTlQgKEZsaW5lX2VuZF9wb3NpdGlvbiAoUW5pbCkpOworICBTRVRf UFQgKG9yaWdpbmFsX3Bvcyk7CisgIHN0YXJ0cCA9IHJ1bl93c2YgKHdpbmRvdywgc3RhcnRwLCBl bmRwLCBwYm9sX3N0YXJ0cCwgcGVvbF9lbmRwKTsKKyNpZmRlZiBHTFlQSF9ERUJVRworICBkZWJ1 Z19tZXRob2RfYWRkICh3LCAicnVuX3dzZiBbMSBvZiAzXSIpOworI2VuZGlmCisKICAgLyogRGlz cGxheSB0aGUgd2luZG93LiAgR2l2ZSB1cCBpZiBuZXcgZm9udHMgYXJlIGxvYWRlZCwgb3IgaWYg cG9pbnQKICAgICAgZG9lc24ndCBhcHBlYXIuICAqLwogICBpZiAoIXRyeV93aW5kb3cgKHdpbmRv dywgc3RhcnRwLCAwKSkKQEAgLTE2MDUyLDcgKzE2MTA4LDcgQEAgcmVkaXNwbGF5X3dpbmRvdyAo TGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKICAgc3RydWN0IGJ1ZmZl ciAqb2xkID0gY3VycmVudF9idWZmZXI7CiAgIHN0cnVjdCB0ZXh0X3BvcyBscG9pbnQsIG9wb2lu dCwgc3RhcnRwOwogICBib29sIHVwZGF0ZV9tb2RlX2xpbmU7Ci0gIGludCB0ZW07CisgIGludCB0 ZW0sIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9sX2VuZHA7CiAgIHN0cnVjdCBpdCBpdDsKICAgLyog UmVjb3JkIGl0IG5vdyBiZWNhdXNlIGl0J3Mgb3ZlcndyaXR0ZW4uICAqLwogICBib29sIGN1cnJl bnRfbWF0cml4X3VwX3RvX2RhdGVfcCA9IGZhbHNlOwpAQCAtMTYyNTcsMTMgKzE2MzEzLDEyIEBA IHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25l X3ApCiAKICAgLyogSWYgc29tZW9uZSBzcGVjaWZpZWQgYSBuZXcgc3RhcnRpbmcgcG9pbnQgYnV0 IGRpZCBub3QgaW5zaXN0LAogICAgICBjaGVjayB3aGV0aGVyIGl0IGNhbiBiZSB1c2VkLiAgKi8K LSAgaWYgKCh3LT5vcHRpb25hbF9uZXdfc3RhcnQgfHwgd2luZG93X2Zyb3plbl9wICh3KSkKKyAg aWYgKCh3LT5vcHRpb25hbF9uZXdfc3RhcnQgfHwgdy0+d3NmX3RvZ2dsZSB8fCB3aW5kb3dfZnJv emVuX3AgKHcpKQogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA+PSBCRUdWCiAgICAgICAmJiBD SEFSUE9TIChzdGFydHApIDw9IFpWKQogICAgIHsKICAgICAgIHB0cmRpZmZfdCBpdF9jaGFycG9z OwogCi0gICAgICB3LT5vcHRpb25hbF9uZXdfc3RhcnQgPSBmYWxzZTsKICAgICAgIHN0YXJ0X2Rp c3BsYXkgKCZpdCwgdywgc3RhcnRwKTsKICAgICAgIG1vdmVfaXRfdG8gKCZpdCwgUFQsIDAsIGl0 Lmxhc3RfdmlzaWJsZV95LCAtMSwKIAkJICBNT1ZFX1RPX1BPUyB8IE1PVkVfVE9fWCB8IE1PVkVf VE9fWSk7CkBAIC0xNjI4NCwxNCArMTYzMzksMjggQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9P YmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAkgICAgdy0+Zm9yY2Vfc3RhcnQg PSB0cnVlOwogI2lmZGVmIEdMWVBIX0RFQlVHCiAJICBpZiAody0+Zm9yY2Vfc3RhcnQpCi0JICAg IHsKLQkgICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkKLQkJZGVidWdfbWV0aG9kX2FkZCAo dywgInNldCBmb3JjZV9zdGFydCBmcm9tIGZyb3plbiB3aW5kb3cgc3RhcnQiKTsKLQkgICAgICBl bHNlCi0JCWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQgZnJvbSBvcHRpb25h bF9uZXdfc3RhcnQiKTsKLQkgICAgfQorICAgIHsKKyAgICAgIGlmICh3aW5kb3dfZnJvemVuX3Ag KHcpKQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vf c3RhcnQgZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7CisgICAgICB9CisgICAgICBlbHNlIGlm ICh3LT5vcHRpb25hbF9uZXdfc3RhcnQpCisgICAgICAgIHsKKyAgICAgICAgZGVidWdfbWV0aG9k X2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIG9wdGlvbmFsX25ld19zdGFydCIpOworICAg ICAgfQorICAgICAgZWxzZSBpZiAody0+d3NmX3RvZ2dsZSkKKyAgICAgICAgeworICAgICAgICBk ZWJ1Z19tZXRob2RfYWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gd3NmX3RvZ2dsZSIpOwor ICAgICAgfQorICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQg KHcsICJUaGlzIHNpdHVhdGlvbiBpcyBub3QgeWV0IGNvbnRlbXBsYXRlZC4iKTsKKyAgICAgIH0K KyAgICB9CiAjZW5kaWYKIAl9CisgICAgICB3LT5vcHRpb25hbF9uZXdfc3RhcnQgPSBmYWxzZTsK KyAgICAgIHctPndzZl90b2dnbGUgPSBmYWxzZTsKICAgICB9CiAKICBmb3JjZV9zdGFydDoKQEAg LTE2MzE5LDExICsxNjM4OCw0OCBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5k b3csIGJvb2wganVzdF90aGlzX29uZV9wKQogCSB0aGFuIHRvIGdldCBpbnRvIGFuIGluZmluaXRl IGxvb3AgY2FsbGluZyB0aGUgaG9vayBmdW5jdGlvbnMKIAkgYW5kIGhhdmluZyB0aGVtIGdldCBt b3JlIGVycm9ycy4gICovCiAgICAgICBpZiAoIXVwZGF0ZV9tb2RlX2xpbmUKLQkgIHx8ICEgTklM UCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25zKSkKKwkgIHx8ICEgTklMUCAoVndpbmRvd19zY3Jv bGxfZnVuY3Rpb25zKQorCSAgfHwgISBOSUxQIChWd3NmX2hvb2spKQogCXsKIAkgIHVwZGF0ZV9t b2RlX2xpbmUgPSB0cnVlOwogCSAgdy0+dXBkYXRlX21vZGVfbGluZSA9IHRydWU7CisgIC8qIFJ1 biB3aW5kb3cgc2Nyb2xsIGZ1bmN0aW9ucy4gICovCiAJICBzdGFydHAgPSBydW5fd2luZG93X3Nj cm9sbF9mdW5jdGlvbnMgKHdpbmRvdywgc3RhcnRwKTsKKworICAvKiBSZWNhbGN1bGF0ZSB0aGUg d2luZG93IGVuZCBwb3NpdGlvbi4gICovCisgIHN0cnVjdCBidWZmZXIgKmI7CisgIExpc3BfT2Jq ZWN0IGJ1ZjsKKyAgYnVmID0gdy0+Y29udGVudHM7CisgIENIRUNLX0JVRkZFUiAoYnVmKTsKKyAg YiA9IFhCVUZGRVIgKGJ1Zik7CisgIHN0cnVjdCBidWZmZXIgKm9sZF9idWZmZXIgPSBOVUxMOwor ICB2b2lkICppdGRhdGEgPSBOVUxMOworICAgIGlmIChiICE9IGN1cnJlbnRfYnVmZmVyKQorICAg ICAgeworICAgICAgb2xkX2J1ZmZlciA9IGN1cnJlbnRfYnVmZmVyOworICAgICAgc2V0X2J1ZmZl cl9pbnRlcm5hbCAoYik7CisgICAgICB9CisgICAgQ0xJUF9URVhUX1BPU19GUk9NX01BUktFUiAo c3RhcnRwLCB3LT5zdGFydCk7CisgICAgaXRkYXRhID0gYmlkaV9zaGVsdmVfY2FjaGUgKCk7Cisg ICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBzdGFydHApOworICAgIG1vdmVfaXRfdmVydGljYWxs eSAoJml0LCB3aW5kb3dfYm94X2hlaWdodCAodykpOworICAgIGlmIChpdC5jdXJyZW50X3kgPCBp dC5sYXN0X3Zpc2libGVfeSkKKyAgICAgIG1vdmVfaXRfcGFzdF9lb2wgKCZpdCk7CisgICAgZW5k cCA9IChJVF9DSEFSUE9TIChpdCkpOworICAgIGJpZGlfdW5zaGVsdmVfY2FjaGUgKGl0ZGF0YSwg ZmFsc2UpOworICAgIGlmIChvbGRfYnVmZmVyKQorICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAo b2xkX2J1ZmZlcik7CisgIHB0cmRpZmZfdCBvcmlnaW5hbF9wb3MgPSBQVDsKKyAgU0VUX1BUIChD SEFSUE9TIChzdGFydHApKTsKKyAgcGJvbF9zdGFydHAgPSBYSU5UIChGbGluZV9iZWdpbm5pbmdf cG9zaXRpb24gKFFuaWwpKTsKKyAgU0VUX1BUIChlbmRwKTsKKyAgcGVvbF9lbmRwID0gWElOVCAo RmxpbmVfZW5kX3Bvc2l0aW9uIChRbmlsKSk7CisgIFNFVF9QVCAob3JpZ2luYWxfcG9zKTsKKyAg c3RhcnRwID0gcnVuX3dzZiAod2luZG93LCBzdGFydHAsIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9s X2VuZHApOworI2lmZGVmIEdMWVBIX0RFQlVHCisgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJydW5f d3NmIFsyIG9mIDNdIik7CisjZW5kaWYKKwogCX0KIAogICAgICAgaWYgKENIQVJQT1MgKHN0YXJ0 cCkgPCBCRUdWKQpAQCAtMTY1OTEsNiArMTY2OTcsNyBAQCByZWRpc3BsYXlfd2luZG93IChMaXNw X09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogCSAgICAgYmVjYXVzZSBhIHdp bmRvdyBzY3JvbGwgZnVuY3Rpb24gY2FuIGhhdmUgY2hhbmdlZCB0aGUKIAkgICAgIGJ1ZmZlci4g ICovCiAJICB8fCAhTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25zKQorCSAgfHwgIU5JTFAg KFZ3c2ZfaG9vaykKIAkgIHx8IE1JTklfV0lORE9XX1AgKHcpCiAJICB8fCAhKHVzZWRfY3VycmVu dF9tYXRyaXhfcAogCSAgICAgICA9IHRyeV93aW5kb3dfcmV1c2luZ19jdXJyZW50X21hdHJpeCAo dykpKQpAQCAtMTY3ODgsNiArMTY4OTUsNDAgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmpl Y3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKICAgLyogUnVuIHNjcm9sbCBob29rcy4g ICovCiAgIHN0YXJ0cCA9IHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBpdC5j dXJyZW50LnBvcyk7CiAKKyAgLyogUmVjYWxjdWxhdGUgdGhlIHdpbmRvdyBlbmQgcG9zaXRpb24u ICAqLworICBzdHJ1Y3QgYnVmZmVyICpiOworICBMaXNwX09iamVjdCBidWY7CisgIGJ1ZiA9IHct PmNvbnRlbnRzOworICBDSEVDS19CVUZGRVIgKGJ1Zik7CisgIGIgPSBYQlVGRkVSIChidWYpOwor ICBzdHJ1Y3QgYnVmZmVyICpvbGRfYnVmZmVyID0gTlVMTDsKKyAgdm9pZCAqaXRkYXRhID0gTlVM TDsKKyAgICBpZiAoYiAhPSBjdXJyZW50X2J1ZmZlcikKKyAgICAgIHsKKyAgICAgIG9sZF9idWZm ZXIgPSBjdXJyZW50X2J1ZmZlcjsKKyAgICAgIHNldF9idWZmZXJfaW50ZXJuYWwgKGIpOworICAg ICAgfQorICAgIENMSVBfVEVYVF9QT1NfRlJPTV9NQVJLRVIgKHN0YXJ0cCwgdy0+c3RhcnQpOwor ICAgIGl0ZGF0YSA9IGJpZGlfc2hlbHZlX2NhY2hlICgpOworICAgIHN0YXJ0X2Rpc3BsYXkgKCZp dCwgdywgc3RhcnRwKTsKKyAgICBtb3ZlX2l0X3ZlcnRpY2FsbHkgKCZpdCwgd2luZG93X2JveF9o ZWlnaHQgKHcpKTsKKyAgICBpZiAoaXQuY3VycmVudF95IDwgaXQubGFzdF92aXNpYmxlX3kpCisg ICAgICBtb3ZlX2l0X3Bhc3RfZW9sICgmaXQpOworICAgIGVuZHAgPSAoSVRfQ0hBUlBPUyAoaXQp KTsKKyAgICBiaWRpX3Vuc2hlbHZlX2NhY2hlIChpdGRhdGEsIGZhbHNlKTsKKyAgICBpZiAob2xk X2J1ZmZlcikKKyAgICAgIHNldF9idWZmZXJfaW50ZXJuYWwgKG9sZF9idWZmZXIpOworICBwdHJk aWZmX3Qgb3JpZ2luYWxfcG9zID0gUFQ7CisgIFNFVF9QVCAoQ0hBUlBPUyAoc3RhcnRwKSk7Cisg IHBib2xfc3RhcnRwID0gWElOVCAoRmxpbmVfYmVnaW5uaW5nX3Bvc2l0aW9uIChRbmlsKSk7Cisg IFNFVF9QVCAoZW5kcCk7CisgIHBlb2xfZW5kcCA9IFhJTlQgKEZsaW5lX2VuZF9wb3NpdGlvbiAo UW5pbCkpOworICBTRVRfUFQgKG9yaWdpbmFsX3Bvcyk7CisgIHN0YXJ0cCA9IHJ1bl93c2YgKHdp bmRvdywgc3RhcnRwLCBlbmRwLCBwYm9sX3N0YXJ0cCwgcGVvbF9lbmRwKTsKKyNpZmRlZiBHTFlQ SF9ERUJVRworICBkZWJ1Z19tZXRob2RfYWRkICh3LCAicnVuX3dzZiBbMyBvZiAzXSIpOworI2Vu ZGlmCisKICAgLyogUmVkaXNwbGF5IHRoZSB3aW5kb3cuICAqLwogICBib29sIHVzZV9kZXNpcmVk X21hdHJpeCA9IGZhbHNlOwogICBpZiAoIWN1cnJlbnRfbWF0cml4X3VwX3RvX2RhdGVfcApAQCAt MTY3OTYsNiArMTY5MzcsNyBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3cs IGJvb2wganVzdF90aGlzX29uZV9wKQogICAgICAgLyogRG9uJ3QgdXNlIHRyeV93aW5kb3dfcmV1 c2luZ19jdXJyZW50X21hdHJpeCBpbiB0aGlzIGNhc2UKIAkgYmVjYXVzZSBpdCBjYW4gaGF2ZSBj aGFuZ2VkIHRoZSBidWZmZXIuICAqLwogICAgICAgfHwgIU5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1 bmN0aW9ucykKKyAgICAgIHx8ICFOSUxQIChWd3NmX2hvb2spCiAgICAgICB8fCAhanVzdF90aGlz X29uZV9wCiAgICAgICB8fCBNSU5JX1dJTkRPV19QICh3KQogICAgICAgfHwgISh1c2VkX2N1cnJl bnRfbWF0cml4X3AKQEAgLTIzNjcxLDYgKzIzODEzLDIwIEBAIGRlY29kZV9tb2RlX3NwZWMgKHN0 cnVjdCB3aW5kb3cgKncsIHJlZ2lzdGVyIGludCBjLCBpbnQgZmllbGRfd2lkdGgsCiAJICByZXR1 cm4gIkAiOwogICAgICAgfQogCisgICAgY2FzZSAndyc6CisgICAgICB7CisgIHB0cmRpZmZfdCB3 aW5kb3dfc3RhcnQgPSBtYXJrZXJfcG9zaXRpb24gKHctPnN0YXJ0KTsKKyAgcGludDJzdHIgKGRl Y29kZV9tb2RlX3NwZWNfYnVmLCB3aWR0aCwgd2luZG93X3N0YXJ0KTsKKyAgcmV0dXJuIGRlY29k ZV9tb2RlX3NwZWNfYnVmOworICAgICAgfQorCisgICAgY2FzZSAnVyc6CisgICAgICB7CisgIHB0 cmRpZmZfdCB3aW5kb3dfZW5kID0gQlVGX1ogKGIpIC0gdy0+d2luZG93X2VuZF9wb3M7CisgIHBp bnQyc3RyIChkZWNvZGVfbW9kZV9zcGVjX2J1Ziwgd2lkdGgsIHdpbmRvd19lbmQpOworICByZXR1 cm4gZGVjb2RlX21vZGVfc3BlY19idWY7CisgICAgICB9CisKICAgICBjYXNlICd6JzoKICAgICAg IC8qIGNvZGluZy1zeXN0ZW0gKG5vdCBpbmNsdWRpbmcgZW5kLW9mLWxpbmUgZm9ybWF0KSAqLwog ICAgIGNhc2UgJ1onOgpAQCAtMzExMzYsNiArMzEyOTIsNyBAQCBUaGV5IGFyZSBzdGlsbCBsb2dn ZWQgdG8gdGhlICpNZXNzYWdlcyogYnVmZmVyLiAgKi8pOwogICBERUZTWU0gKFFvdmVycmlkaW5n X3Rlcm1pbmFsX2xvY2FsX21hcCwgIm92ZXJyaWRpbmctdGVybWluYWwtbG9jYWwtbWFwIik7CiAg IERFRlNZTSAoUW92ZXJyaWRpbmdfbG9jYWxfbWFwLCAib3ZlcnJpZGluZy1sb2NhbC1tYXAiKTsK ICAgREVGU1lNIChRd2luZG93X3Njcm9sbF9mdW5jdGlvbnMsICJ3aW5kb3ctc2Nyb2xsLWZ1bmN0 aW9ucyIpOworICBERUZTWU0gKFF3c2ZfaG9vaywgIndzZi1ob29rIik7CiAgIERFRlNZTSAoUXdp bmRvd190ZXh0X2NoYW5nZV9mdW5jdGlvbnMsICJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVuY3Rpb25z Iik7CiAgIERFRlNZTSAoUXJlZGlzcGxheV9lbmRfdHJpZ2dlcl9mdW5jdGlvbnMsICJyZWRpc3Bs YXktZW5kLXRyaWdnZXItZnVuY3Rpb25zIik7CiAgIERFRlNZTSAoUWluaGliaXRfcG9pbnRfbW90 aW9uX2hvb2tzLCAiaW5oaWJpdC1wb2ludC1tb3Rpb24taG9va3MiKTsKQEAgLTMxNDU3LDYgKzMx NjE0LDE2IEBAIGlzIHNjcm9sbGVkLiAgSXQgaXMgbm90IGRlc2lnbmVkIGZvciB0aGF0LCBhbmQg c3VjaCB1c2UgcHJvYmFibHkgd29uJ3QKIHdvcmsuICAqLyk7CiAgIFZ3aW5kb3dfc2Nyb2xsX2Z1 bmN0aW9ucyA9IFFuaWw7CiAKKyAgREVGVkFSX0xJU1AgKCJ3c2YtaG9vayIsIFZ3c2ZfaG9vaywK KyAgICBkb2M6IC8qIFVzZWQgdG8gb2J0YWluIHRoZSBuZXcgYHdpbmRvdy1zdGFydCcgZHVyaW5n IHJlZGlzcGxheS4gICovKTsKKyAgVndzZl9ob29rID0gUW5pbDsKKworICBERUZWQVJfTElTUCAo IndzZi12YXIiLCBWd3NmX3ZhciwKKyAgICBkb2M6IC8qIGB3c2YtaG9va2AgY2hlY2tzIHRvIHNl ZSBpZiBgd3NmLXZhcmAgaXMgc2V0IGxvY2FsbHkuICAqLyk7CisgIFZ3c2ZfdmFyID0gUW5pbDsK KyAgRm1ha2VfdmFyaWFibGVfYnVmZmVyX2xvY2FsIChRd3NmX3Zhcik7CisgIERFRlNZTSAoUXdz Zl92YXIsICJ3c2YtdmFyIik7CisKICAgREVGVkFSX0xJU1AgKCJ3aW5kb3ctdGV4dC1jaGFuZ2Ut ZnVuY3Rpb25zIiwKIAkgICAgICAgVndpbmRvd190ZXh0X2NoYW5nZV9mdW5jdGlvbnMsCiAgICAg ZG9jOiAvKiBGdW5jdGlvbnMgdG8gY2FsbCBpbiByZWRpc3BsYXkgd2hlbiB0ZXh0IGluIHRoZSB3 aW5kb3cgbWlnaHQgY2hhbmdlLiAgKi8pOwo= --Multipart_Sun_Jan_31_19:50:03_2016-1--
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Mon, 01 Feb 2016 20:09:02 +0000 Resent-Message-ID: <handler.22404.B22404.14543573332570 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.14543573332570 (code B ref 22404); Mon, 01 Feb 2016 20:09:02 +0000 Received: (at 22404) by debbugs.gnu.org; 1 Feb 2016 20:08:53 +0000 Received: from localhost ([127.0.0.1]:55307 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aQKmK-0000fN-NY for submit <at> debbugs.gnu.org; Mon, 01 Feb 2016 15:08:52 -0500 Received: from eggs.gnu.org ([208.118.235.92]:45167) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aQKmJ-0000f4-Mt for 22404 <at> debbugs.gnu.org; Mon, 01 Feb 2016 15:08:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aQKZ0-0001ie-JO for 22404 <at> debbugs.gnu.org; Mon, 01 Feb 2016 14:55:09 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:39642) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aQKZ0-0001iX-Ff; Mon, 01 Feb 2016 14:55:06 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1528 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aQKYy-0004At-I2; Mon, 01 Feb 2016 14:55:06 -0500 Date: Mon, 01 Feb 2016 21:54:42 +0200 Message-Id: <83vb68yznh.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m2powh2ioi.wl%esq@HIDDEN> (message from Keith David Bershatsky on Sun, 31 Jan 2016 19:50:05 -0800) References: <m2powh2ioi.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.6 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.6 (-----) > Date: Sun, 31 Jan 2016 19:50:05 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org,Michael Heerdegen <eliz@HIDDEN> > > I see that there are a few express circumstances in the function `window-end` where a forced update will not occur, even though a user expressly requested it with the optional argument being set to `t`. Michael had mentioned an unspecified situation where `window-end` was incorrect from the `window-scroll-functions` hook even with a forced update, so perhaps one or more of those expressly coded exceptions is/are to blame. I encountered a similar situation today in my testing with interactively calling `previous-line` at the top window edge (and scroll-conservatively 101) where the `window-end` was not updating correctly. > > Attached is a diff-patch of the second draft for the new proposed animal that is somewhat similar to the `window-scroll-functions` hook, but this new animal is able to run every command loop even when there is no scrolling. It automatically updates `window-end`, and it throws four (4) values that can be used by the user's custom function attached to the new hook: > > * window-start > * window-end > * point at the beginning of the line of window-start. > * point at the end of the line of window-end. > > I added two new symbols for the mode-line: little `%w` for `window-start` and big `%W` for `window-end`. This made debugging much easier, and I do a lot with window-start/end, so it comes in handy for writing other related functions. > > I removed one double quote in comments in `window.c` that was breaking my font-lock highlighting -- an unmatched double quotes in a comment always causes havoc with my highlighting for the remainder of the buffer, so I try to fix those whenever I come across them. > > I still haven't figured out how to entirely substitute throwing the switch `w->wsf_toggle = true` with just a buffer-local variable. Ideally, I would prefer that the new hook run whenever local variable `wsf-var` is `t` -- without needing a switch. At the present time, I am throwing the switch each command loop with the `post-command-hook`. [The switch gets set back to `false` during redisplay, and is needed as sort of a counter so that a section of the redisplay code does not run more than necessary.] > > This draft diff-patch can of course still use some polishing up -- e.g., the forced window update only needs to occur when `wsf-var` is `t`. In future drafts, I'll probably change some of the names to further distinguish this from the built-in WSF. [The built-in WSF section near a patched comment labeled "2 of 3" should probably now have an exception so that it doesn't run merely because this new animal is running, and I'll think some more about that in the coming days.] I'll be using this patch in my daily routine to see how it works out. Here is the sample usage, which is designed to be buffer-local: Keith, I appreciate all the efforts you are putting into this, but I'd rather we'd not go in that direction. Running Lisp from within the bowels of redisplay is inherently dangerous (because Lisp code can signal an error, which then makes Emacs not responsive due to infinite attempts to display the error message, which causes another error, etc.). Your patches add more places where we call Lisp, and in particular in places, like redisplay_window, where it simply is out of the question. I'd prefer to have a post-redisplay-hook, which is called either at the end of redisplay cycle, or after redisplay_internal returns to its caller. Would that solve your problem, and if so, what information do you need to be passed to such a hook? Thanks.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 02 Feb 2016 01:19:01 +0000 Resent-Message-ID: <handler.22404.B22404.145437589511609 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145437589511609 (code B ref 22404); Tue, 02 Feb 2016 01:19:01 +0000 Received: (at 22404) by debbugs.gnu.org; 2 Feb 2016 01:18:15 +0000 Received: from localhost ([127.0.0.1]:55466 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aQPbj-00031B-Dv for submit <at> debbugs.gnu.org; Mon, 01 Feb 2016 20:18:15 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:57892) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aQPbh-00030u-JA for 22404 <at> debbugs.gnu.org; Mon, 01 Feb 2016 20:18:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=GkICBA2qMjKzCW1WnTP0gGZteHRGJDPkx7ge7ZtxeAM=; b=J+YUnF/D2nnSe6IWugOXeJSMPO/SFE3eOVArDPNoLAXrnz1b/VIyQb2gpdk8/YAq4N1GkK5gW+Y73ekP/G7HWVGESDWOO6pKUY+vslFClAySFH6woA3pV3X7kZ2qevA6; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:53639 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aQPbX-0005hf-Ox; Mon, 01 Feb 2016 20:18:03 -0500 Date: Mon, 01 Feb 2016 05:18:02 -0800 Message-ID: <m21t8wsh6d.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: 0.1 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.1 (/) The four (4) values that I am most interested in are: 1. window-start 2. window-end 3. Point at the beginning of the line containing window-start. 4. Point at the end of the line containing window-end. Although my proposed usage of the `post-redisplay-hook` will not be to alter buffer (i.e., I'm just adding overlays), other people who may use this new hook in the future may be modifying the buffer content -- e.g., adding/removing fonts, adding/removing text, moving the cursor, etc. The `window-scroll-functions` hook is strategically placed at three locations of `xdisp.c`, and some of those areas are revisited when things have changed since the first pass -- e.g., continuation line at the beginning of the window, or cursor is partially visible at the bottom of the window. If the `post-redisplay-hook` runs too late in time to receive any checks regarding cursor position and so forth, some users may be surprised when their cursor ends up below the visible screen at the conclusion of redisplay -- e.g., because they added text or increased a font size that pushed the cursor further down below. Keith ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Mon, 01 Feb 2016 21:54:42 +0200, Eli Zaretskii wrote: > > * * * > > I'd prefer to have a post-redisplay-hook, which is called either at > the end of redisplay cycle, or after redisplay_internal returns to its > caller. Would that solve your problem, and if so, what information do > you need to be passed to such a hook?
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 02 Feb 2016 05:59:02 +0000 Resent-Message-ID: <handler.22404.B22404.145439273329507 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145439273329507 (code B ref 22404); Tue, 02 Feb 2016 05:59:02 +0000 Received: (at 22404) by debbugs.gnu.org; 2 Feb 2016 05:58:53 +0000 Received: from localhost ([127.0.0.1]:55619 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aQTzI-0007fr-PQ for submit <at> debbugs.gnu.org; Tue, 02 Feb 2016 00:58:52 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:35255) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aQTzH-0007ff-Dq for 22404 <at> debbugs.gnu.org; Tue, 02 Feb 2016 00:58:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=D+MhVwjmX5J5HSuldZ3s4/wUbP4SEtticTTEyhrW75o=; b=243fbAM18zxasCq783nSixg4PF1u5u4vN4RCKVb4pcEhFlUYYAEyjsNEn4fbFNmnCu1C//x39dz/w8HqWqkffQet6wvNWtZJQuiup5zmCLILDcpUGMkEQVvsytntyjwz; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:56064 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aQTz8-0006ae-Dw; Tue, 02 Feb 2016 00:58:42 -0500 Date: Mon, 01 Feb 2016 21:58:43 -0800 Message-ID: <m2powfirfw.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Mon_Feb__1_21:58:42_2016-1" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --Multipart_Mon_Feb__1_21:58:42_2016-1 Content-Type: text/plain; charset=US-ASCII I completely understand and respect your decision to go in a different direction than my draft implementation of this new feature, but I thought it might be helpful for you to compare my ideas to your own proposed implementation as you go forward. Because my proposed implementation mirrors the current implementation of the `window-scroll-functions` hook, `xdisp.c` performs all of the necessary checking to see whether the user's function attached to the `window-start-end-hook` changes the buffer in such a way that requires further work on the part of redisplay. Attached is the revised edition of my new animal, whose proposed buffer-local usage is as follows: (setq scroll-conservatively 101) (setq window-start-end-var t) (defun window-start-end-fn (win start end pbol-start peol-end) (message "win: %s | start: %s | end: %s | peol-start: %s | peol-end: %s" win start end pbol-start peol-end)) (add-hook 'window-start-end-hook 'window-start-end-fn nil t) --Multipart_Mon_Feb__1_21:58:42_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="window_start_end.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggNjRkN2Ix My4uNGNiZmRjZSAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJk LmMKQEAgLTEyMzksNiArMTIzOSw3IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lkKQogICBFTUFDU19J TlQgcHJldl9tb2RpZmYgPSAwOwogICBzdHJ1Y3QgYnVmZmVyICpwcmV2X2J1ZmZlciA9IE5VTEw7 CiAgIGJvb2wgYWxyZWFkeV9hZGp1c3RlZCA9IDA7CisgIExpc3BfT2JqZWN0IHdpbmRvdzsKIAog ICBrc2V0X3ByZWZpeF9hcmcgKGN1cnJlbnRfa2JvYXJkLCBRbmlsKTsKICAga3NldF9sYXN0X3By ZWZpeF9hcmcgKGN1cnJlbnRfa2JvYXJkLCBRbmlsKTsKQEAgLTEyNTgsNiArMTI1OSwxMiBAQCBj b21tYW5kX2xvb3BfMSAodm9pZCkKICAgICAgIGlmICghTklMUCAoVnBvc3RfY29tbWFuZF9ob29r KSAmJiAhTklMUCAoVnJ1bl9ob29rcykpCiAJc2FmZV9ydW5faG9va3MgKFFwb3N0X2NvbW1hbmRf aG9vayk7CiAKKyAgLyogVHJpZ2dlciB0aGUgYHdpbmRvdy1zdGFydC1lbmQtaG9va2AuCisgIFJl ZGlzcGxheSByZXNldHMgYHctPndpbmRvd19zdGFydF9lbmRfdG9nZ2xlYCB0byBgZmFsc2VgLiAg Ki8KKyAgd2luZG93ID0gKHNlbGVjdGVkX3dpbmRvdyk7CisgIHJlZ2lzdGVyIHN0cnVjdCB3aW5k b3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdpbmRvdyk7CisgIHctPndpbmRvd19zdGFydF9l bmRfdG9nZ2xlID0gdHJ1ZTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1lc3NhZ2UsIHJl c2l6ZSB0aGUgZWNobyBhcmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdlJ3Mgc2l6ZSBl eGFjdGx5LiAgKi8KICAgICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclswXSkpCkBAIC0x NDc0LDYgKzE0ODEsMTIgQEAgY29tbWFuZF9sb29wXzEgKHZvaWQpCiAKICAgICAgIHNhZmVfcnVu X2hvb2tzIChRcG9zdF9jb21tYW5kX2hvb2spOwogCisgICAgICAvKiBUcmlnZ2VyIHRoZSBgd2lu ZG93LXN0YXJ0LWVuZC1ob29rYC4KKyAgICAgIFJlZGlzcGxheSByZXNldHMgYHctPndpbmRvd19z dGFydF9lbmRfdG9nZ2xlYCB0byBgZmFsc2VgLiAgKi8KKyAgICAgIHdpbmRvdyA9IChzZWxlY3Rl ZF93aW5kb3cpOworICAgICAgcmVnaXN0ZXIgc3RydWN0IHdpbmRvdyAqdyA9IGRlY29kZV9saXZl X3dpbmRvdyAod2luZG93KTsKKyAgICAgIHctPndpbmRvd19zdGFydF9lbmRfdG9nZ2xlID0gdHJ1 ZTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1lc3NhZ2UsIHJlc2l6ZSB0aGUgZWNobyBh cmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdlJ3Mgc2l6ZSBleGFjdGx5LiAgKi8KICAg ICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclswXSkpCmRpZmYgLS1naXQgYS9zcmMvd2lu ZG93LmggYi9zcmMvd2luZG93LmgKaW5kZXggYzI5MjA3ZC4uZGNjMzMzOSAxMDA2NDQKLS0tIGEv c3JjL3dpbmRvdy5oCisrKyBiL3NyYy93aW5kb3cuaApAQCAtMzQ4LDYgKzM0OCw5IEBAIHN0cnVj dCB3aW5kb3cKICAgICAgICBWd2luZG93X3Njcm9sbF9mdW5jdGlvbnM7IGFsc28gYnkgRnJlY2Vu dGVyIHdpdGggYXJndW1lbnQuICAqLwogICAgIGJvb2xfYmYgb3B0aW9uYWxfbmV3X3N0YXJ0IDog MTsKIAorICAgIC8qIFRydWUgbWVhbnMgZm9yY2UgYSBjYWxsIHRvIFZ3aW5kb3dfc3RhcnRfZW5k X2hvb2suICAqLworICAgIGJvb2xfYmYgd2luZG93X3N0YXJ0X2VuZF90b2dnbGUgOiAxOworCiAg ICAgLyogVHJ1ZSBtZWFucyB0aGUgY3Vyc29yIGlzIGN1cnJlbnRseSBkaXNwbGF5ZWQuICBUaGlz IGNhbiBiZQogICAgICAgIHNldCB0byB6ZXJvIGJ5IGZ1bmN0aW9ucyBvdmVycGFpbnRpbmcgdGhl IGN1cnNvciBpbWFnZS4gICovCiAgICAgYm9vbF9iZiBwaHlzX2N1cnNvcl9vbl9wIDogMTsKZGlm ZiAtLWdpdCBhL3NyYy94ZGlzcC5jIGIvc3JjL3hkaXNwLmMKaW5kZXggNzhmZGRkNi4uYjRmYmIz OCAxMDA2NDQKLS0tIGEvc3JjL3hkaXNwLmMKKysrIGIvc3JjL3hkaXNwLmMKQEAgLTEzNzA0LDYg KzEzNzA0LDcgQEAgcmVkaXNwbGF5X2ludGVybmFsICh2b2lkKQogICAgICAgJiYgbWF0Y2hfcAog ICAgICAgJiYgIXctPmZvcmNlX3N0YXJ0CiAgICAgICAmJiAhdy0+b3B0aW9uYWxfbmV3X3N0YXJ0 CisgICAgICAmJiAhdy0+d2luZG93X3N0YXJ0X2VuZF90b2dnbGUKICAgICAgIC8qIFBvaW50IG11 c3QgYmUgb24gdGhlIGxpbmUgdGhhdCB3ZSBoYXZlIGluZm8gcmVjb3JkZWQgYWJvdXQuICAqLwog ICAgICAgJiYgUFQgPj0gQ0hBUlBPUyAodGxidWZwb3MpCiAgICAgICAmJiBQVCA8PSBaIC0gQ0hB UlBPUyAodGxlbmRwb3MpCkBAIC0xNTA2Miw2ICsxNTA2MywyMyBAQCBydW5fd2luZG93X3Njcm9s bF9mdW5jdGlvbnMgKExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IHRleHRfcG9zIHN0YXJ0cCkK ICAgcmV0dXJuIHN0YXJ0cDsKIH0KIAorc3RhdGljIHN0cnVjdCB0ZXh0X3BvcworcnVuX3dpbmRv d19zdGFydF9lbmRfaG9vayAoTGlzcF9PYmplY3Qgd2luZG93LCBzdHJ1Y3QgdGV4dF9wb3Mgc3Rh cnRwLCBpbnQgZW5kcCwKKyAgICAgICAgIGludCBwYm9sX3N0YXJ0cCwgaW50IHBlb2xfZW5kcCkK K3sKKyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKHdpbmRvdyk7CisgIFNFVF9NQVJLRVJf RlJPTV9URVhUX1BPUyAody0+c3RhcnQsIHN0YXJ0cCk7CisgIGVhc3NlcnQgKGN1cnJlbnRfYnVm ZmVyID09IFhCVUZGRVIgKHctPmNvbnRlbnRzKSk7CisgIENBTExOIChGcnVuX2hvb2tfd2l0aF9h cmdzLCBRd2luZG93X3N0YXJ0X2VuZF9ob29rLCB3aW5kb3csCisgICAgbWFrZV9udW1iZXIgKENI QVJQT1MgKHN0YXJ0cCkpLAorICAgIG1ha2VfbnVtYmVyIChlbmRwKSwKKyAgICBtYWtlX251bWJl ciAocGJvbF9zdGFydHApLAorICAgIG1ha2VfbnVtYmVyIChwZW9sX2VuZHApKTsKKyAgU0VUX1RF WFRfUE9TX0ZST01fTUFSS0VSIChzdGFydHAsIHctPnN0YXJ0KTsKKyAgLyogSW4gY2FzZSB0aGUg aG9vayBmdW5jdGlvbnMgc3dpdGNoIGJ1ZmZlcnMuICAqLworICBzZXRfYnVmZmVyX2ludGVybmFs IChYQlVGRkVSICh3LT5jb250ZW50cykpOworICByZXR1cm4gc3RhcnRwOworfQogCiAvKiBNYWtl IHN1cmUgdGhlIGxpbmUgY29udGFpbmluZyB0aGUgY3Vyc29yIGlzIGZ1bGx5IHZpc2libGUuCiAg ICBBIHZhbHVlIG9mIHRydWUgbWVhbnMgdGhlcmUgaXMgbm90aGluZyB0byBiZSBkb25lLgpAQCAt MTUxNTQsNyArMTUxNzIsNyBAQCB0cnlfc2Nyb2xsaW5nIChMaXNwX09iamVjdCB3aW5kb3csIGJv b2wganVzdF90aGlzX29uZV9wLAogICBzdHJ1Y3QgZnJhbWUgKmYgPSBYRlJBTUUgKHctPmZyYW1l KTsKICAgc3RydWN0IHRleHRfcG9zIHBvcywgc3RhcnRwOwogICBzdHJ1Y3QgaXQgaXQ7Ci0gIGlu dCB0aGlzX3Njcm9sbF9tYXJnaW4sIHNjcm9sbF9tYXgsIHJjLCBoZWlnaHQ7CisgIGludCB0aGlz X3Njcm9sbF9tYXJnaW4sIHNjcm9sbF9tYXgsIHJjLCBoZWlnaHQsIGVuZHAsIHBib2xfc3RhcnRw LCBwZW9sX2VuZHA7CiAgIGludCBkeSA9IDAsIGFtb3VudF90b19zY3JvbGwgPSAwOwogICBib29s IHNjcm9sbF9kb3duX3AgPSBmYWxzZTsKICAgaW50IGV4dHJhX3Njcm9sbF9tYXJnaW5fbGluZXMg PSBsYXN0X2xpbmVfbWlzZml0OwpAQCAtMTU0MDMsNiArMTU0MjEsNDMgQEAgdHJ5X3Njcm9sbGlu ZyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCwKICAgLyogUnVuIHdp bmRvdyBzY3JvbGwgZnVuY3Rpb25zLiAgKi8KICAgc3RhcnRwID0gcnVuX3dpbmRvd19zY3JvbGxf ZnVuY3Rpb25zICh3aW5kb3csIHN0YXJ0cCk7CiAKKyAgaWYgKCFOSUxQIChWd2luZG93X3N0YXJ0 X2VuZF9ob29rKQorICAgICAgJiYgKEZsb2NhbF92YXJpYWJsZV9wIChRd2luZG93X3N0YXJ0X2Vu ZF92YXIsIEZ3aW5kb3dfYnVmZmVyICh3aW5kb3cpKSkpCisgICAgeworICAgIHN0cnVjdCBidWZm ZXIgKmI7CisgICAgTGlzcF9PYmplY3QgYnVmOworICAgIGJ1ZiA9IHctPmNvbnRlbnRzOworICAg IENIRUNLX0JVRkZFUiAoYnVmKTsKKyAgICBiID0gWEJVRkZFUiAoYnVmKTsKKyAgICBzdHJ1Y3Qg YnVmZmVyICpvbGRfYnVmZmVyID0gTlVMTDsKKyAgICB2b2lkICppdGRhdGEgPSBOVUxMOworICAg IGlmIChiICE9IGN1cnJlbnRfYnVmZmVyKQorICAgICAgeworICAgICAgb2xkX2J1ZmZlciA9IGN1 cnJlbnRfYnVmZmVyOworICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAoYik7CisgICAgICB9Cisg ICAgQ0xJUF9URVhUX1BPU19GUk9NX01BUktFUiAoc3RhcnRwLCB3LT5zdGFydCk7CisgICAgaXRk YXRhID0gYmlkaV9zaGVsdmVfY2FjaGUgKCk7CisgICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBz dGFydHApOworICAgIG1vdmVfaXRfdmVydGljYWxseSAoJml0LCB3aW5kb3dfYm94X2hlaWdodCAo dykpOworICAgIGlmIChpdC5jdXJyZW50X3kgPCBpdC5sYXN0X3Zpc2libGVfeSkKKyAgICAgIG1v dmVfaXRfcGFzdF9lb2wgKCZpdCk7CisgICAgZW5kcCA9IChJVF9DSEFSUE9TIChpdCkpOworICAg IGJpZGlfdW5zaGVsdmVfY2FjaGUgKGl0ZGF0YSwgZmFsc2UpOworICAgIGlmIChvbGRfYnVmZmVy KQorICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAob2xkX2J1ZmZlcik7CisgICAgcHRyZGlmZl90 IG9yaWdpbmFsX3BvcyA9IFBUOworICAgIFNFVF9QVCAoQ0hBUlBPUyAoc3RhcnRwKSk7CisgICAg cGJvbF9zdGFydHAgPSBYSU5UIChGbGluZV9iZWdpbm5pbmdfcG9zaXRpb24gKFFuaWwpKTsKKyAg ICBTRVRfUFQgKGVuZHApOworICAgIHBlb2xfZW5kcCA9IFhJTlQgKEZsaW5lX2VuZF9wb3NpdGlv biAoUW5pbCkpOworICAgIFNFVF9QVCAob3JpZ2luYWxfcG9zKTsKKyAgICBzdGFydHAgPSBydW5f d2luZG93X3N0YXJ0X2VuZF9ob29rICh3aW5kb3csIHN0YXJ0cCwgZW5kcCwgcGJvbF9zdGFydHAs IHBlb2xfZW5kcCk7CisjaWZkZWYgR0xZUEhfREVCVUcKKyAgZGVidWdfbWV0aG9kX2FkZCAodywg InJ1bl93aW5kb3dfc3RhcnRfZW5kX2hvb2sgWzEgb2YgM10iKTsKKyNlbmRpZgorICAgIH0KKwog ICAvKiBEaXNwbGF5IHRoZSB3aW5kb3cuICBHaXZlIHVwIGlmIG5ldyBmb250cyBhcmUgbG9hZGVk LCBvciBpZiBwb2ludAogICAgICBkb2Vzbid0IGFwcGVhci4gICovCiAgIGlmICghdHJ5X3dpbmRv dyAod2luZG93LCBzdGFydHAsIDApKQpAQCAtMTYwNTIsNyArMTYxMDcsNyBAQCByZWRpc3BsYXlf d2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogICBzdHJ1 Y3QgYnVmZmVyICpvbGQgPSBjdXJyZW50X2J1ZmZlcjsKICAgc3RydWN0IHRleHRfcG9zIGxwb2lu dCwgb3BvaW50LCBzdGFydHA7CiAgIGJvb2wgdXBkYXRlX21vZGVfbGluZTsKLSAgaW50IHRlbTsK KyAgaW50IHRlbSwgZW5kcCwgcGJvbF9zdGFydHAsIHBlb2xfZW5kcDsKICAgc3RydWN0IGl0IGl0 OwogICAvKiBSZWNvcmQgaXQgbm93IGJlY2F1c2UgaXQncyBvdmVyd3JpdHRlbi4gICovCiAgIGJv b2wgY3VycmVudF9tYXRyaXhfdXBfdG9fZGF0ZV9wID0gZmFsc2U7CkBAIC0xNjI1NywxMyArMTYz MTIsMTIgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3Rf dGhpc19vbmVfcCkKIAogICAvKiBJZiBzb21lb25lIHNwZWNpZmllZCBhIG5ldyBzdGFydGluZyBw b2ludCBidXQgZGlkIG5vdCBpbnNpc3QsCiAgICAgIGNoZWNrIHdoZXRoZXIgaXQgY2FuIGJlIHVz ZWQuICAqLwotICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3aW5kb3dfZnJvemVuX3Ag KHcpKQorICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3LT53aW5kb3dfc3RhcnRfZW5k X3RvZ2dsZSB8fCB3aW5kb3dfZnJvemVuX3AgKHcpKQogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRw KSA+PSBCRUdWCiAgICAgICAmJiBDSEFSUE9TIChzdGFydHApIDw9IFpWKQogICAgIHsKICAgICAg IHB0cmRpZmZfdCBpdF9jaGFycG9zOwogCi0gICAgICB3LT5vcHRpb25hbF9uZXdfc3RhcnQgPSBm YWxzZTsKICAgICAgIHN0YXJ0X2Rpc3BsYXkgKCZpdCwgdywgc3RhcnRwKTsKICAgICAgIG1vdmVf aXRfdG8gKCZpdCwgUFQsIDAsIGl0Lmxhc3RfdmlzaWJsZV95LCAtMSwKIAkJICBNT1ZFX1RPX1BP UyB8IE1PVkVfVE9fWCB8IE1PVkVfVE9fWSk7CkBAIC0xNjI4NCwxNCArMTYzMzgsMjggQEAgcmVk aXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkK IAkgICAgdy0+Zm9yY2Vfc3RhcnQgPSB0cnVlOwogI2lmZGVmIEdMWVBIX0RFQlVHCiAJICBpZiAo dy0+Zm9yY2Vfc3RhcnQpCi0JICAgIHsKLQkgICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkK LQkJZGVidWdfbWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIGZyb3plbiB3aW5k b3cgc3RhcnQiKTsKLQkgICAgICBlbHNlCi0JCWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9y Y2Vfc3RhcnQgZnJvbSBvcHRpb25hbF9uZXdfc3RhcnQiKTsKLQkgICAgfQorICAgIHsKKyAgICAg IGlmICh3aW5kb3dfZnJvemVuX3AgKHcpKQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhv ZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQgZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7Cisg ICAgICB9CisgICAgICBlbHNlIGlmICh3LT5vcHRpb25hbF9uZXdfc3RhcnQpCisgICAgICAgIHsK KyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIG9wdGlv bmFsX25ld19zdGFydCIpOworICAgICAgfQorICAgICAgZWxzZSBpZiAody0+d2luZG93X3N0YXJ0 X2VuZF90b2dnbGUpCisgICAgICAgIHsKKyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgInNl dCBmb3JjZV9zdGFydCBmcm9tIHdpbmRvd19zdGFydF9lbmRfdG9nZ2xlIik7CisgICAgICB9Cisg ICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgIlRoaXMg c2l0dWF0aW9uIGlzIG5vdCB5ZXQgY29udGVtcGxhdGVkLiIpOworICAgICAgfQorICAgIH0KICNl bmRpZgogCX0KKyAgICAgIHctPm9wdGlvbmFsX25ld19zdGFydCA9IGZhbHNlOworICAgICAgdy0+ d2luZG93X3N0YXJ0X2VuZF90b2dnbGUgPSBmYWxzZTsKICAgICB9CiAKICBmb3JjZV9zdGFydDoK QEAgLTE2MzE5LDExICsxNjM4Nyw1NCBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3 aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogCSB0aGFuIHRvIGdldCBpbnRvIGFuIGluZmlu aXRlIGxvb3AgY2FsbGluZyB0aGUgaG9vayBmdW5jdGlvbnMKIAkgYW5kIGhhdmluZyB0aGVtIGdl dCBtb3JlIGVycm9ycy4gICovCiAgICAgICBpZiAoIXVwZGF0ZV9tb2RlX2xpbmUKLQkgIHx8ICEg TklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25zKSkKKwkgIHx8ICEgTklMUCAoVndpbmRvd19z Y3JvbGxfZnVuY3Rpb25zKQorCSAgfHwgISBOSUxQIChWd2luZG93X3N0YXJ0X2VuZF9ob29rKSkK IAl7CiAJICB1cGRhdGVfbW9kZV9saW5lID0gdHJ1ZTsKIAkgIHctPnVwZGF0ZV9tb2RlX2xpbmUg PSB0cnVlOworCisgIC8qIFJ1biB3aW5kb3cgc2Nyb2xsIGZ1bmN0aW9ucy4gIEZJWE1FOiAgc2V0 IHVwIGNvbmRpdGlvbnMgc28gdGhhdAorYHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9uc2AgZG9l cyBub3QgYWx3YXlzIHJ1biB3aGVuZXZlcgorYHctPndpbmRvd19zdGFydF9lbmRfdG9nZ2xlYCBp cyBgdHJ1ZWAuICAqLwogCSAgc3RhcnRwID0gcnVuX3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zICh3 aW5kb3csIHN0YXJ0cCk7CisKKyAgaWYgKCFOSUxQIChWd2luZG93X3N0YXJ0X2VuZF9ob29rKQor ICAgICAgJiYgKEZsb2NhbF92YXJpYWJsZV9wIChRd2luZG93X3N0YXJ0X2VuZF92YXIsIEZ3aW5k b3dfYnVmZmVyICh3aW5kb3cpKSkpCisgICAgeworICAgIHN0cnVjdCBidWZmZXIgKmI7CisgICAg TGlzcF9PYmplY3QgYnVmOworICAgIGJ1ZiA9IHctPmNvbnRlbnRzOworICAgIENIRUNLX0JVRkZF UiAoYnVmKTsKKyAgICBiID0gWEJVRkZFUiAoYnVmKTsKKyAgICBzdHJ1Y3QgYnVmZmVyICpvbGRf YnVmZmVyID0gTlVMTDsKKyAgICB2b2lkICppdGRhdGEgPSBOVUxMOworICAgIGlmIChiICE9IGN1 cnJlbnRfYnVmZmVyKQorICAgICAgeworICAgICAgb2xkX2J1ZmZlciA9IGN1cnJlbnRfYnVmZmVy OworICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAoYik7CisgICAgICB9CisgICAgQ0xJUF9URVhU X1BPU19GUk9NX01BUktFUiAoc3RhcnRwLCB3LT5zdGFydCk7CisgICAgaXRkYXRhID0gYmlkaV9z aGVsdmVfY2FjaGUgKCk7CisgICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBzdGFydHApOworICAg IG1vdmVfaXRfdmVydGljYWxseSAoJml0LCB3aW5kb3dfYm94X2hlaWdodCAodykpOworICAgIGlm IChpdC5jdXJyZW50X3kgPCBpdC5sYXN0X3Zpc2libGVfeSkKKyAgICAgIG1vdmVfaXRfcGFzdF9l b2wgKCZpdCk7CisgICAgZW5kcCA9IChJVF9DSEFSUE9TIChpdCkpOworICAgIGJpZGlfdW5zaGVs dmVfY2FjaGUgKGl0ZGF0YSwgZmFsc2UpOworICAgIGlmIChvbGRfYnVmZmVyKQorICAgICAgc2V0 X2J1ZmZlcl9pbnRlcm5hbCAob2xkX2J1ZmZlcik7CisgICAgcHRyZGlmZl90IG9yaWdpbmFsX3Bv cyA9IFBUOworICAgIFNFVF9QVCAoQ0hBUlBPUyAoc3RhcnRwKSk7CisgICAgcGJvbF9zdGFydHAg PSBYSU5UIChGbGluZV9iZWdpbm5pbmdfcG9zaXRpb24gKFFuaWwpKTsKKyAgICBTRVRfUFQgKGVu ZHApOworICAgIHBlb2xfZW5kcCA9IFhJTlQgKEZsaW5lX2VuZF9wb3NpdGlvbiAoUW5pbCkpOwor ICAgIFNFVF9QVCAob3JpZ2luYWxfcG9zKTsKKyAgICBzdGFydHAgPSBydW5fd2luZG93X3N0YXJ0 X2VuZF9ob29rICh3aW5kb3csIHN0YXJ0cCwgZW5kcCwgcGJvbF9zdGFydHAsIHBlb2xfZW5kcCk7 CisjaWZkZWYgR0xZUEhfREVCVUcKKyAgZGVidWdfbWV0aG9kX2FkZCAodywgInJ1bl93aW5kb3df c3RhcnRfZW5kX2hvb2sgWzIgb2YgM10iKTsKKyNlbmRpZgorICAgIH0KKwogCX0KIAogICAgICAg aWYgKENIQVJQT1MgKHN0YXJ0cCkgPCBCRUdWKQpAQCAtMTY1OTEsNiArMTY3MDIsNyBAQCByZWRp c3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQog CSAgICAgYmVjYXVzZSBhIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb24gY2FuIGhhdmUgY2hhbmdlZCB0 aGUKIAkgICAgIGJ1ZmZlci4gICovCiAJICB8fCAhTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rp b25zKQorCSAgfHwgIU5JTFAgKFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2spCiAJICB8fCBNSU5JX1dJ TkRPV19QICh3KQogCSAgfHwgISh1c2VkX2N1cnJlbnRfbWF0cml4X3AKIAkgICAgICAgPSB0cnlf d2luZG93X3JldXNpbmdfY3VycmVudF9tYXRyaXggKHcpKSkKQEAgLTE2Nzg4LDYgKzE2OTAwLDQz IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNf b25lX3ApCiAgIC8qIFJ1biBzY3JvbGwgaG9va3MuICAqLwogICBzdGFydHAgPSBydW5fd2luZG93 X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRvdywgaXQuY3VycmVudC5wb3MpOwogCisgIGlmICghTklM UCAoVndpbmRvd19zdGFydF9lbmRfaG9vaykKKyAgICAgICYmIChGbG9jYWxfdmFyaWFibGVfcCAo UXdpbmRvd19zdGFydF9lbmRfdmFyLCBGd2luZG93X2J1ZmZlciAod2luZG93KSkpKQorICAgIHsK KyAgICBzdHJ1Y3QgYnVmZmVyICpiOworICAgIExpc3BfT2JqZWN0IGJ1ZjsKKyAgICBidWYgPSB3 LT5jb250ZW50czsKKyAgICBDSEVDS19CVUZGRVIgKGJ1Zik7CisgICAgYiA9IFhCVUZGRVIgKGJ1 Zik7CisgICAgc3RydWN0IGJ1ZmZlciAqb2xkX2J1ZmZlciA9IE5VTEw7CisgICAgdm9pZCAqaXRk YXRhID0gTlVMTDsKKyAgICBpZiAoYiAhPSBjdXJyZW50X2J1ZmZlcikKKyAgICAgIHsKKyAgICAg IG9sZF9idWZmZXIgPSBjdXJyZW50X2J1ZmZlcjsKKyAgICAgIHNldF9idWZmZXJfaW50ZXJuYWwg KGIpOworICAgICAgfQorICAgIENMSVBfVEVYVF9QT1NfRlJPTV9NQVJLRVIgKHN0YXJ0cCwgdy0+ c3RhcnQpOworICAgIGl0ZGF0YSA9IGJpZGlfc2hlbHZlX2NhY2hlICgpOworICAgIHN0YXJ0X2Rp c3BsYXkgKCZpdCwgdywgc3RhcnRwKTsKKyAgICBtb3ZlX2l0X3ZlcnRpY2FsbHkgKCZpdCwgd2lu ZG93X2JveF9oZWlnaHQgKHcpKTsKKyAgICBpZiAoaXQuY3VycmVudF95IDwgaXQubGFzdF92aXNp YmxlX3kpCisgICAgICBtb3ZlX2l0X3Bhc3RfZW9sICgmaXQpOworICAgIGVuZHAgPSAoSVRfQ0hB UlBPUyAoaXQpKTsKKyAgICBiaWRpX3Vuc2hlbHZlX2NhY2hlIChpdGRhdGEsIGZhbHNlKTsKKyAg ICBpZiAob2xkX2J1ZmZlcikKKyAgICAgIHNldF9idWZmZXJfaW50ZXJuYWwgKG9sZF9idWZmZXIp OworICAgIHB0cmRpZmZfdCBvcmlnaW5hbF9wb3MgPSBQVDsKKyAgICBTRVRfUFQgKENIQVJQT1Mg KHN0YXJ0cCkpOworICAgIHBib2xfc3RhcnRwID0gWElOVCAoRmxpbmVfYmVnaW5uaW5nX3Bvc2l0 aW9uIChRbmlsKSk7CisgICAgU0VUX1BUIChlbmRwKTsKKyAgICBwZW9sX2VuZHAgPSBYSU5UIChG bGluZV9lbmRfcG9zaXRpb24gKFFuaWwpKTsKKyAgICBTRVRfUFQgKG9yaWdpbmFsX3Bvcyk7Cisg ICAgc3RhcnRwID0gcnVuX3dpbmRvd19zdGFydF9lbmRfaG9vayAod2luZG93LCBzdGFydHAsIGVu ZHAsIHBib2xfc3RhcnRwLCBwZW9sX2VuZHApOworI2lmZGVmIEdMWVBIX0RFQlVHCisgIGRlYnVn X21ldGhvZF9hZGQgKHcsICJydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rIFszIG9mIDNdIik7Cisj ZW5kaWYKKyAgICB9CisKICAgLyogUmVkaXNwbGF5IHRoZSB3aW5kb3cuICAqLwogICBib29sIHVz ZV9kZXNpcmVkX21hdHJpeCA9IGZhbHNlOwogICBpZiAoIWN1cnJlbnRfbWF0cml4X3VwX3RvX2Rh dGVfcApAQCAtMTY3OTYsNiArMTY5NDUsNyBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVj dCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogICAgICAgLyogRG9uJ3QgdXNlIHRyeV93 aW5kb3dfcmV1c2luZ19jdXJyZW50X21hdHJpeCBpbiB0aGlzIGNhc2UKIAkgYmVjYXVzZSBpdCBj YW4gaGF2ZSBjaGFuZ2VkIHRoZSBidWZmZXIuICAqLwogICAgICAgfHwgIU5JTFAgKFZ3aW5kb3df c2Nyb2xsX2Z1bmN0aW9ucykKKyAgICAgIHx8ICFOSUxQIChWd2luZG93X3N0YXJ0X2VuZF9ob29r KQogICAgICAgfHwgIWp1c3RfdGhpc19vbmVfcAogICAgICAgfHwgTUlOSV9XSU5ET1dfUCAodykK ICAgICAgIHx8ICEodXNlZF9jdXJyZW50X21hdHJpeF9wCkBAIC0yMzY3MSw2ICsyMzgyMSwyMCBA QCBkZWNvZGVfbW9kZV9zcGVjIChzdHJ1Y3Qgd2luZG93ICp3LCByZWdpc3RlciBpbnQgYywgaW50 IGZpZWxkX3dpZHRoLAogCSAgcmV0dXJuICJAIjsKICAgICAgIH0KIAorICAgIGNhc2UgJ3cnOgor ICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X3N0YXJ0ID0gbWFya2VyX3Bvc2l0aW9uICh3LT5z dGFydCk7CisgIHBpbnQyc3RyIChkZWNvZGVfbW9kZV9zcGVjX2J1Ziwgd2lkdGgsIHdpbmRvd19z dGFydCk7CisgIHJldHVybiBkZWNvZGVfbW9kZV9zcGVjX2J1ZjsKKyAgICAgIH0KKworICAgIGNh c2UgJ1cnOgorICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X2VuZCA9IEJVRl9aIChiKSAtIHct PndpbmRvd19lbmRfcG9zOworICBwaW50MnN0ciAoZGVjb2RlX21vZGVfc3BlY19idWYsIHdpZHRo LCB3aW5kb3dfZW5kKTsKKyAgcmV0dXJuIGRlY29kZV9tb2RlX3NwZWNfYnVmOworICAgICAgfQor CiAgICAgY2FzZSAneic6CiAgICAgICAvKiBjb2Rpbmctc3lzdGVtIChub3QgaW5jbHVkaW5nIGVu ZC1vZi1saW5lIGZvcm1hdCkgKi8KICAgICBjYXNlICdaJzoKQEAgLTMxMTM2LDYgKzMxMzAwLDgg QEAgVGhleSBhcmUgc3RpbGwgbG9nZ2VkIHRvIHRoZSAqTWVzc2FnZXMqIGJ1ZmZlci4gICovKTsK ICAgREVGU1lNIChRb3ZlcnJpZGluZ190ZXJtaW5hbF9sb2NhbF9tYXAsICJvdmVycmlkaW5nLXRl cm1pbmFsLWxvY2FsLW1hcCIpOwogICBERUZTWU0gKFFvdmVycmlkaW5nX2xvY2FsX21hcCwgIm92 ZXJyaWRpbmctbG9jYWwtbWFwIik7CiAgIERFRlNZTSAoUXdpbmRvd19zY3JvbGxfZnVuY3Rpb25z LCAid2luZG93LXNjcm9sbC1mdW5jdGlvbnMiKTsKKyAgREVGU1lNIChRd2luZG93X3N0YXJ0X2Vu ZF9ob29rLCAid2luZG93LXN0YXJ0LWVuZC1ob29rIik7CisgIERFRlNZTSAoUXdpbmRvd19zdGFy dF9lbmRfdmFyLCAid2luZG93LXN0YXJ0LWVuZC12YXIiKTsKICAgREVGU1lNIChRd2luZG93X3Rl eHRfY2hhbmdlX2Z1bmN0aW9ucywgIndpbmRvdy10ZXh0LWNoYW5nZS1mdW5jdGlvbnMiKTsKICAg REVGU1lNIChRcmVkaXNwbGF5X2VuZF90cmlnZ2VyX2Z1bmN0aW9ucywgInJlZGlzcGxheS1lbmQt dHJpZ2dlci1mdW5jdGlvbnMiKTsKICAgREVGU1lNIChRaW5oaWJpdF9wb2ludF9tb3Rpb25faG9v a3MsICJpbmhpYml0LXBvaW50LW1vdGlvbi1ob29rcyIpOwpAQCAtMzE0NTcsNiArMzE2MjMsMTUg QEAgaXMgc2Nyb2xsZWQuICBJdCBpcyBub3QgZGVzaWduZWQgZm9yIHRoYXQsIGFuZCBzdWNoIHVz ZSBwcm9iYWJseSB3b24ndAogd29yay4gICovKTsKICAgVndpbmRvd19zY3JvbGxfZnVuY3Rpb25z ID0gUW5pbDsKIAorICBERUZWQVJfTElTUCAoIndpbmRvdy1zdGFydC1lbmQtaG9vayIsIFZ3aW5k b3dfc3RhcnRfZW5kX2hvb2ssCisgICAgZG9jOiAvKiBVc2VkIHRvIG9idGFpbiB0aGUgbmV3IGB3 aW5kb3ctc3RhcnQnIGR1cmluZyByZWRpc3BsYXkuICAqLyk7CisgIFZ3aW5kb3dfc3RhcnRfZW5k X2hvb2sgPSBRbmlsOworCisgIERFRlZBUl9MSVNQICgid2luZG93LXN0YXJ0LWVuZC12YXIiLCBW d2luZG93X3N0YXJ0X2VuZF92YXIsCisgICAgZG9jOiAvKiBgd2luZG93LXN0YXJ0LWVuZC1ob29r YCBjaGVja3MgdG8gc2VlIGlmIGB3aW5kb3ctc3RhcnQtZW5kLXZhcmAgaXMgc2V0IGxvY2FsbHku ICAqLyk7CisgIFZ3aW5kb3dfc3RhcnRfZW5kX3ZhciA9IFFuaWw7CisgIEZtYWtlX3ZhcmlhYmxl X2J1ZmZlcl9sb2NhbCAoUXdpbmRvd19zdGFydF9lbmRfdmFyKTsKKwogICBERUZWQVJfTElTUCAo IndpbmRvdy10ZXh0LWNoYW5nZS1mdW5jdGlvbnMiLAogCSAgICAgICBWd2luZG93X3RleHRfY2hh bmdlX2Z1bmN0aW9ucywKICAgICBkb2M6IC8qIEZ1bmN0aW9ucyB0byBjYWxsIGluIHJlZGlzcGxh eSB3aGVuIHRleHQgaW4gdGhlIHdpbmRvdyBtaWdodCBjaGFuZ2UuICAqLyk7Cg== --Multipart_Mon_Feb__1_21:58:42_2016-1--
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 02 Feb 2016 16:36:02 +0000 Resent-Message-ID: <handler.22404.B22404.145443093014437 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145443093014437 (code B ref 22404); Tue, 02 Feb 2016 16:36:02 +0000 Received: (at 22404) by debbugs.gnu.org; 2 Feb 2016 16:35:30 +0000 Received: from localhost ([127.0.0.1]:57000 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aQdvN-0003kn-Uo for submit <at> debbugs.gnu.org; Tue, 02 Feb 2016 11:35:30 -0500 Received: from eggs.gnu.org ([208.118.235.92]:39714) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aQdvM-0003kY-5P for 22404 <at> debbugs.gnu.org; Tue, 02 Feb 2016 11:35:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aQdvC-00020l-Rj for 22404 <at> debbugs.gnu.org; Tue, 02 Feb 2016 11:35:22 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:54808) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aQdvC-00020h-Om; Tue, 02 Feb 2016 11:35:18 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2027 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aQdvC-0002NR-51; Tue, 02 Feb 2016 11:35:18 -0500 Date: Tue, 02 Feb 2016 18:34:58 +0200 Message-Id: <838u33ysst.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m21t8wsh6d.wl%esq@HIDDEN> (message from Keith David Bershatsky on Mon, 01 Feb 2016 05:18:02 -0800) References: <m21t8wsh6d.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.5 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.5 (-----) > Date: Mon, 01 Feb 2016 05:18:02 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org > > The four (4) values that I am most interested in are: > > 1. window-start > > 2. window-end > > 3. Point at the beginning of the line containing window-start. > > 4. Point at the end of the line containing window-end. These are available from Lisp, so there seems to be no need to pass them as arguments to the hook, right? > Although my proposed usage of the `post-redisplay-hook` will not be to alter buffer (i.e., I'm just adding overlays), other people who may use this new hook in the future may be modifying the buffer content -- e.g., adding/removing fonts, adding/removing text, moving the cursor, etc. If those users need this new hook, they can always invoke redisplay explicitly at the end of their code, right? > The `window-scroll-functions` hook is strategically placed at three locations of `xdisp.c`, and some of those areas are revisited when things have changed since the first pass -- e.g., continuation line at the beginning of the window, or cursor is partially visible at the bottom of the window. But the fact they run in the middle of the redisplay cycle is exactly the source of the problems we are trying to solve! > If the `post-redisplay-hook` runs too late in time to receive any checks regarding cursor position and so forth, some users may be surprised when their cursor ends up below the visible screen at the conclusion of redisplay -- e.g., because they added text or increased a font size that pushed the cursor further down below. Calling redisplay explicitly should resolve all those issues.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 02 Feb 2016 18:17:02 +0000 Resent-Message-ID: <handler.22404.B22404.145443699329566 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145443699329566 (code B ref 22404); Tue, 02 Feb 2016 18:17:02 +0000 Received: (at 22404) by debbugs.gnu.org; 2 Feb 2016 18:16:33 +0000 Received: from localhost ([127.0.0.1]:57024 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aQfVB-0007go-L9 for submit <at> debbugs.gnu.org; Tue, 02 Feb 2016 13:16:33 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:52417) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aQfVA-0007gd-RU for 22404 <at> debbugs.gnu.org; Tue, 02 Feb 2016 13:16:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=4DBpUjV5kOylbaYAC2ZbHYZhvSDYIqDBWNeGukkAi7c=; b=Da8xuI0/C1ZsauTAi81JeiMp2uX7S0OFTfc55tDGaL4Vl6dIxhk0Yb4TTCM5W7omJ/jsyHHCBUHEI2LN1Y9aqxVRERuX6l1PigXwO6VNUjdVsewNlxZSbZnFOOTcOAA1; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:49623 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aQfV0-0006d4-L8; Tue, 02 Feb 2016 13:16:22 -0500 Date: Tue, 02 Feb 2016 10:16:23 -0800 Message-ID: <m2twlr9dvs.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) A forced redisplay every command loop would pose two (2) major problems as far as I am aware. The first issue will be that an unfinished display will be visible to the user for a split second before it gets finished with whatever code follows the first visible redisplay -- this will be especially visible when moving to an entirely different location of the buffer (e.g., full screen up or full screen down). The second issue will be a significant slow-down in performance that will be mostly visible to the user when using rapid-fire keystrokes, or simply moving the cursor with the arrow keys by holding the arrow key in any of the four directions. A forced redisplay is something that should be used sparingly, but not every command loop. The four (4) values I seek *may* be available via Lisp depending upon where the `post-redisplay-hook` is placed. I'd be happy to run some tests once you have decided upon a proposed location for the hook. Keith ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Tue, 02 Feb 2016 18:34:58 +0200, Eli Zaretskii wrote: > > > Date: Mon, 01 Feb 2016 05:18:02 -0800 > > From: Keith David Bershatsky <esq@HIDDEN> > > Cc: 22404 <at> debbugs.gnu.org > > > > The four (4) values that I am most interested in are: > > > > 1. window-start > > > > 2. window-end > > > > 3. Point at the beginning of the line containing window-start. > > > > 4. Point at the end of the line containing window-end. > > These are available from Lisp, so there seems to be no need to pass > them as arguments to the hook, right? > > > Although my proposed usage of the `post-redisplay-hook` will not be to alter buffer (i.e., I'm just adding overlays), other people who may use this new hook in the future may be modifying the buffer content -- e.g., adding/removing fonts, adding/removing text, moving the cursor, etc. > > If those users need this new hook, they can always invoke redisplay > explicitly at the end of their code, right? > > > The `window-scroll-functions` hook is strategically placed at three locations of `xdisp.c`, and some of those areas are revisited when things have changed since the first pass -- e.g., continuation line at the beginning of the window, or cursor is partially visible at the bottom of the window. > > But the fact they run in the middle of the redisplay cycle is exactly > the source of the problems we are trying to solve! > > > If the `post-redisplay-hook` runs too late in time to receive any checks regarding cursor position and so forth, some users may be surprised when their cursor ends up below the visible screen at the conclusion of redisplay -- e.g., because they added text or increased a font size that pushed the cursor further down below. > > Calling redisplay explicitly should resolve all those issues.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 02 Feb 2016 18:44:01 +0000 Resent-Message-ID: <handler.22404.B22404.145443862732120 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145443862732120 (code B ref 22404); Tue, 02 Feb 2016 18:44:01 +0000 Received: (at 22404) by debbugs.gnu.org; 2 Feb 2016 18:43:47 +0000 Received: from localhost ([127.0.0.1]:57052 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aQfvW-0008M0-Vo for submit <at> debbugs.gnu.org; Tue, 02 Feb 2016 13:43:47 -0500 Received: from eggs.gnu.org ([208.118.235.92]:52546) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aQfvU-0008Lk-L6 for 22404 <at> debbugs.gnu.org; Tue, 02 Feb 2016 13:43:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aQfvK-0008Lp-Co for 22404 <at> debbugs.gnu.org; Tue, 02 Feb 2016 13:43:39 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57344) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aQfvK-0008Li-91; Tue, 02 Feb 2016 13:43:34 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2281 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aQfvJ-0006Sv-IP; Tue, 02 Feb 2016 13:43:34 -0500 Date: Tue, 02 Feb 2016 20:43:13 +0200 Message-Id: <83zivjx8am.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m2twlr9dvs.wl%esq@HIDDEN> (message from Keith David Bershatsky on Tue, 02 Feb 2016 10:16:23 -0800) References: <m2twlr9dvs.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.5 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.5 (-----) > Date: Tue, 02 Feb 2016 10:16:23 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org > > A forced redisplay every command loop would pose two (2) major problems as far as I am aware. The first issue will be that an unfinished display will be visible to the user for a split second before it gets finished with whatever code follows the first visible redisplay That depends where the hook will be called. If it is called before the changed contents is delivered to the glass, you won't see any such adverse effects, exactly like you don't see them today when window-scroll-functions are called after a large portion of redisplay already happened. > The second issue will be a significant slow-down in performance that will be mostly visible to the user when using rapid-fire keystrokes, or simply moving the cursor with the arrow keys by holding the arrow key in any of the four directions. A forced redisplay is something that should be used sparingly, but not every command loop. Emacs display engine is highly optimized: if there's nothing to do when it is called the second time, it will detect that very quickly and return without doing anything. Specifically, if only cursor motion happened, redisplay is very fast. And the hook doesn't have to be dumb and call the second redisplay every time. It can be smarter, and only do so if it actually made some changes, like moved an overlay or scrolled the window. In the latter case, the comparison with just moving cursor is no longer valid. So if such problems do exist, they will need to be reported with specific use cases, because in general the current code already deals with this. > The four (4) values I seek *may* be available via Lisp depending upon where the `post-redisplay-hook` is placed. I'd be happy to run some tests once you have decided upon a proposed location for the hook. I don't understand the "maybe" part. We are talking about values that are easily obtained from any Lisp program, so what are the problems you envision?
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 02 Feb 2016 20:01:01 +0000 Resent-Message-ID: <handler.22404.B22404.14544432356724 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.14544432356724 (code B ref 22404); Tue, 02 Feb 2016 20:01:01 +0000 Received: (at 22404) by debbugs.gnu.org; 2 Feb 2016 20:00:35 +0000 Received: from localhost ([127.0.0.1]:57107 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aQh7r-0001kN-Hr for submit <at> debbugs.gnu.org; Tue, 02 Feb 2016 15:00:35 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:54790) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aQh7o-0001k9-UE for 22404 <at> debbugs.gnu.org; Tue, 02 Feb 2016 15:00:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=v57p0IxMEzrs74tuaIovEq7xv688NfBgFHOejgmWr/M=; b=p3TuwkFuadEWDP6F9TcCQ1kkdZHDcat7aftYr6NU5W59YkdANcpnrtfIeVLn4AHWpRCDmlsqwKdun8vE3sgOWtEOmtxIH1ME9e1FVUKv/fJSZpgcS3d1c2/enlV1tApD; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50369 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aQh7e-00063x-AK; Tue, 02 Feb 2016 15:00:22 -0500 Date: Tue, 02 Feb 2016 12:00:23 -0800 Message-ID: <m2egcurig8.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) I will go through your most recent e-mail in a little while, but I wanted to get this test minor-mode over to you so that you can visually see exactly what I see when performing these tests. It is a scaled-down example of my current usage -- this example just draws line numbers in the left margin of the visible window and uses `forward-line` instead of `vertical-motion`. This minor-mode will work with your new `post-redisplay-hook` and it also works with the latest example `window_start_end.diff` that I e-mailed last night. I have included an exception for `mhweel-scroll` so that we can use the mouse wheel to scroll up/down to see how the overlays have been placed. If we use a large buffer for testing and go to `beginning-of-buffer` or `end-of-buffer` or scroll-up or scroll-down, the line numbers should be drawn by the time that redisplay finishes. I have already taken the liberty of adding `ln-draw-numbers` to the `post-redisplay-hook` in anticipation of its future creation. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar ln-before-string-list nil "Doc-string -- `ln-before-string-list`.") (make-variable-buffer-local 'ln-before-string-list) (defvar ln-str-list nil "Doc-string -- `ln-str-list`.") (make-variable-buffer-local 'ln-str-list) (defvar ln-this-command nil "This local variable is set within the `post-command-hook`; and, is also used by the `window-start-end-hook` hook.") (make-variable-buffer-local 'ln-this-command) (defvar ln-overlays nil "Overlays used in this buffer.") (defvar ln-available nil "Overlays available for reuse.") (mapc #'make-variable-buffer-local '(ln-overlays ln-available)) (defgroup ln nil "Show line numbers in the left margin." :group 'convenience) (defface ln-active-face '((t (:background "black" :foreground "#eab700" :weight normal :italic nil :underline nil :box nil :overline nil))) "Face for `ln-active-face'." :group 'ln) (defface ln-inactive-face '((t (:background "black" :foreground "SteelBlue" :weight normal :italic nil :underline nil :box nil :overline nil))) "Face for `ln-inactive-face'." :group 'ln) (defvar ln-mode nil) (defun ln-record-this-command () (setq ln-this-command this-command)) (defun ln-draw-numbers (win &optional start end pbol-start peol-end force) "Update line numbers for the portion visible in window WIN." (message "win: %s | start: %s | end: %s | pbol-start: %s | peol-end: %s" win start end pbol-start peol-end) (when (and ln-mode (or ln-this-command force) (not (eq ln-this-command 'mwheel-scroll)) (window-live-p win) (not (minibufferp)) (pos-visible-in-window-p nil nil nil) ) (setq ln-available ln-overlays) (setq ln-overlays nil) (setq ln-before-string-list nil) (setq ln-str-list nil) (let* ( line my-initial-line (inhibit-point-motion-hooks t) (opoint (point)) (ln-current-line-number (string-to-number (format-mode-line "%l"))) (window-start (if start start (window-start win))) (window-end (if end end (window-end win t))) (max-digits-string (number-to-string (length (progn (goto-char (point-max)) (format-mode-line "%l"))))) (width 0) ) (goto-char window-start) (setq my-initial-line (string-to-number (format-mode-line "%l"))) (setq line my-initial-line) (catch 'done (while t (when (= (point) (point-at-bol)) (let* ( (str (propertize (format (concat "%" max-digits-string "d") line) 'face (if (eq line ln-current-line-number) 'ln-active-face 'ln-inactive-face))) (ln-before-string (propertize " " 'display `((margin left-margin) ,str))) (visited (catch 'visited (dolist (o (overlays-in (point) (point))) (when (equal-including-properties (overlay-get o 'ln-str) str) (unless (memq o ln-overlays) (push o ln-overlays)) (setq ln-available (delq o ln-available)) (throw 'visited t))))) ) (push ln-before-string ln-before-string-list) (push str ln-str-list) (unless visited (let ((ov (if (null ln-available) (make-overlay (point) (point)) (move-overlay (pop ln-available) (point) (point))))) (push ov ln-overlays) (overlay-put ov 'before-string ln-before-string) (overlay-put ov 'ln-str str))) (setq width (max width (length str))))) (if (and (not (eobp)) (< (point) window-end)) (progn (forward-line) (setq line (1+ line))) (throw 'done nil)))) (set-window-margins win width (cdr (window-margins win))) (mapc #'delete-overlay ln-available) (setq ln-available nil) (setq ln-this-command nil) (goto-char opoint)))) (defsubst lawlist-remove-overlays (beg end name val) "Remove the overlays that are `equal-including-properties`. Includes a unique situation when an overlay with an `'after-string` property is at the very end of a narrowed-buffer." (let* ( (point-max (point-max)) (point-min (point-min)) (narrowed-p (buffer-narrowed-p)) (beg (if beg beg point-min)) (end (cond ((and (not narrowed-p) end) end) ((and (not narrowed-p) (null end)) point-max) ((and narrowed-p end (< end point-max)) end) ((and narrowed-p end (= end point-max)) (1+ end)) ((and narrowed-p (null end)) (1+ point-max)) )) (overlays (progn (overlay-recenter end) (overlays-in beg end))) ) (when (and beg end name val) (dolist (o overlays) (cond ((and (eq name 'face) (eq (overlay-get o name) val)) (if (< (overlay-start o) beg) (if (> (overlay-end o) end) (progn (move-overlay (copy-overlay o) (overlay-start o) beg) (move-overlay o end (overlay-end o))) (move-overlay o (overlay-start o) beg)) (if (> (overlay-end o) end) (move-overlay o end (overlay-end o)) (delete-overlay o)))) ((and (not (eq name 'face)) (equal-including-properties (overlay-get o name) val)) (delete-overlay o))))))) (define-minor-mode ln-mode "A minor-mode for line-numbers in the left-hand margin." :init-value nil :lighter " #" :keymap nil :global nil :group 'ln (cond (ln-mode (setq window-start-end-var t) (add-hook 'pre-command-hook 'ln-record-this-command nil t) (add-hook 'window-start-end-hook 'ln-draw-numbers nil t) (add-hook 'post-redisplay-hook 'ln-draw-numbers nil t) (ln-draw-numbers (selected-window) nil nil nil nil 'force) (when (called-interactively-p 'any) (message "Turned ON `ln-mode`."))) (t (remove-hook 'pre-command-hook 'ln-record-this-command t) (remove-hook 'window-start-end-hook 'ln-draw-numbers t) (remove-hook 'post-redisplay-hook 'ln-draw-numbers t) (kill-local-variable 'ln-overlays) (kill-local-variable 'ln-available) (dolist (val ln-str-list) (lawlist-remove-overlays nil nil 'ln-str val)) (kill-local-variable 'ln-str-list) (dolist (val ln-before-string-list) (lawlist-remove-overlays nil nil 'before-string val)) (kill-local-variable 'ln-before-string-list) (kill-local-variable 'window-start-end-var) (dolist (w (get-buffer-window-list (current-buffer) nil t)) (set-window-margins w 0 (cdr (window-margins w)))) (when (called-interactively-p 'any) (message "Turned OFF `ln-mode`."))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 02 Feb 2016 21:06:01 +0000 Resent-Message-ID: <handler.22404.B22404.145444712118789 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145444712118789 (code B ref 22404); Tue, 02 Feb 2016 21:06:01 +0000 Received: (at 22404) by debbugs.gnu.org; 2 Feb 2016 21:05:21 +0000 Received: from localhost ([127.0.0.1]:57159 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aQi8X-0004sz-2h for submit <at> debbugs.gnu.org; Tue, 02 Feb 2016 16:05:21 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:56250) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aQi8U-0004sm-TG for 22404 <at> debbugs.gnu.org; Tue, 02 Feb 2016 16:05:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=toCw6dUptmgHwqxA5d/t45IU5kTqM75Ybukr2Epo3AA=; b=lfrEUwG0T4eIJf3PU5qHEmhFM0s7qkZSNAkBhCg/ZlfVmYDx+LcFEZ+mET5s6rO9ntqmNMuAwzKApgVdSNlFpMw9E0uNjJ8LD0TImQBXvHglqHQfUtJy3AjBSfzahQdz; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50899 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aQi8K-0002Yr-Au; Tue, 02 Feb 2016 16:05:08 -0500 Date: Tue, 02 Feb 2016 13:05:10 -0800 Message-ID: <m2egcusu0p.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Thank you, Eli, for the detailed explanation in your most recent e-mail -- greatly appreciated. Assuming the correct values are available through Lisp when using the `post-redisplay-hook` and assuming that there is no buffer modification (attached to that new hook) that moves point or changes font sizes, I am unaware of any other prospective problem areas. The minor-mode in my previous e-mail should be sufficient for us to visually see how it works with some basic things like scroll-up/down, beginning/end-of-buffer, next/previous-line when at the window edges. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Tue, 02 Feb 2016 20:43:13 +0200, Eli Zaretskii wrote: > > > I don't understand the "maybe" part. We are talking about values that > are easily obtained from any Lisp program, so what are the problems > you envision?
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Mon, 08 Feb 2016 08:52:01 +0000 Resent-Message-ID: <handler.22404.B22404.14549215166032 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.14549215166032 (code B ref 22404); Mon, 08 Feb 2016 08:52:01 +0000 Received: (at 22404) by debbugs.gnu.org; 8 Feb 2016 08:51:56 +0000 Received: from localhost ([127.0.0.1]:37945 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aShY3-0001ZE-Qa for submit <at> debbugs.gnu.org; Mon, 08 Feb 2016 03:51:55 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:46234) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aShY2-0001Z1-7Y for 22404 <at> debbugs.gnu.org; Mon, 08 Feb 2016 03:51:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=sSlUAt5p5rHF96X3qELPDmgyo0ogsSTKmRoEWeY3qvI=; b=3OkIDcIU1+TrpEhIWUiQ2LnB+k6oeeJYf+MRWOZR7H5tYOywmgBiSXmHbXHhfMAOAVFddEDYfT2yYd89RuUMvD7nkMa5yJ5r8CaO5q5PuVUyf0zN612T2aRcDYcPBeHR; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:54321 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aShXs-0003W7-5F; Mon, 08 Feb 2016 03:51:44 -0500 Date: Mon, 08 Feb 2016 00:51:44 -0800 Message-ID: <m2r3gnh9en.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Mon_Feb__8_00:51:43_2016-1" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --Multipart_Mon_Feb__8_00:51:43_2016-1 Content-Type: text/plain; charset=US-ASCII Attached is the next in the series of draft concept ideas, which ensures the point is fully visible before firing. Some people will naturally prefer that point be partially visible when the hook is triggered, but I like fully visible instead. I noticed that redisplay handles a large yank/paste by erroneously letting the user see for a split second that point is partially visible on the bottom of the screen (when `scroll-conservatively` is 101), and then redisplay fixes the display by moving the lines up far enough to bring point back into view. That behavior appears to be a bug -- i.e., Emacs should internally know that point is partially visible at the bottom of the screen following a large yank and then patiently wait to display the finished product until point is fully visible. This is most noticeable in my own minor-mode that can take up to .040 seconds to perform its calculations with `vertical-motion'. The following is the proposed usage based on the attached concept draft patch/diff file: (defun window-start-end-hook-fn (win start end pbol-start peol-end fully-p) (message "win: %s | start: %s | end: %s | pbol-start: %s | peol-end: %s | fully-p: %s" win start end pbol-start peol-end fully-p)) (setq window-start-end-hook-var t) (setq scroll-conservatively 101) (add-hook 'window-start-end-hook 'window-start-end-hook-fn nil t) --Multipart_Mon_Feb__8_00:51:43_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="window_start_end_hook.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggYmFjYTRi NS4uZjM2ZmM2MiAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJk LmMKQEAgLTEyMzMsNiArMTIzMywxNSBAQCBzdGF0aWMgaW50IHJlYWRfa2V5X3NlcXVlbmNlIChM aXNwX09iamVjdCAqLCBpbnQsIExpc3BfT2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCk7CiBzdGF0aWMgdm9pZCBhZGp1c3RfcG9pbnRf Zm9yX3Byb3BlcnR5IChwdHJkaWZmX3QsIGJvb2wpOwogCitzdGF0aWMgdm9pZAorc2V0X3dpbmRv d19zdGFydF9lbmRfaG9vayAodm9pZCkKK3sKKyAgTGlzcF9PYmplY3Qgd2luZG93ID0gKHNlbGVj dGVkX3dpbmRvdyk7CisgIHN0cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdp bmRvdyk7CisgIHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSA9IHRydWU7CisgIHctPndp bmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nID0gdHJ1ZTsKK30KKwogTGlzcF9PYmplY3QKIGNv bW1hbmRfbG9vcF8xICh2b2lkKQogewpAQCAtMTI1OCw2ICsxMjY3LDggQEAgY29tbWFuZF9sb29w XzEgKHZvaWQpCiAgICAgICBpZiAoIU5JTFAgKFZwb3N0X2NvbW1hbmRfaG9vaykgJiYgIU5JTFAg KFZydW5faG9va3MpKQogCXNhZmVfcnVuX2hvb2tzIChRcG9zdF9jb21tYW5kX2hvb2spOwogCisg ICAgICBzZXRfd2luZG93X3N0YXJ0X2VuZF9ob29rICgpOworCiAgICAgICAvKiBJZiBkaXNwbGF5 aW5nIGEgbWVzc2FnZSwgcmVzaXplIHRoZSBlY2hvIGFyZWEgd2luZG93IHRvIGZpdAogCSB0aGF0 IG1lc3NhZ2UncyBzaXplIGV4YWN0bHkuICAqLwogICAgICAgaWYgKCFOSUxQIChlY2hvX2FyZWFf YnVmZmVyWzBdKSkKQEAgLTE0NzQsNiArMTQ4NSw4IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lkKQog CiAgICAgICBzYWZlX3J1bl9ob29rcyAoUXBvc3RfY29tbWFuZF9ob29rKTsKIAorICAgICAgc2V0 X3dpbmRvd19zdGFydF9lbmRfaG9vayAoKTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1l c3NhZ2UsIHJlc2l6ZSB0aGUgZWNobyBhcmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdl J3Mgc2l6ZSBleGFjdGx5LiAgKi8KICAgICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclsw XSkpCmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmggYi9zcmMvd2luZG93LmgKaW5kZXggYzI5MjA3 ZC4uMzE1NjkyNyAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5oCisrKyBiL3NyYy93aW5kb3cuaApA QCAtMzQ4LDYgKzM0OCwxMiBAQCBzdHJ1Y3Qgd2luZG93CiAgICAgICAgVndpbmRvd19zY3JvbGxf ZnVuY3Rpb25zOyBhbHNvIGJ5IEZyZWNlbnRlciB3aXRoIGFyZ3VtZW50LiAgKi8KICAgICBib29s X2JmIG9wdGlvbmFsX25ld19zdGFydCA6IDE7CiAKKyAgICAvKiBUcnVlIG1lYW5zIGZvcmNlIGEg Y2FsbCB0byBWd2luZG93X3N0YXJ0X2VuZF9ob29rLiAgKi8KKyAgICBib29sX2JmIHdpbmRvd19z dGFydF9lbmRfaG9va19mb3JjZSA6IDE7CisKKyAgICAvKiBUcnVlIG1lYW5zIHRoZSBob29rIGhh cyBub3QgeWV0IHJ1biB3aXRoIHBvaW50IGZ1bGx5IHZpc2libGUuICAqLworICAgIGJvb2xfYmYg d2luZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcgOiAxOworCiAgICAgLyogVHJ1ZSBtZWFucyB0 aGUgY3Vyc29yIGlzIGN1cnJlbnRseSBkaXNwbGF5ZWQuICBUaGlzIGNhbiBiZQogICAgICAgIHNl dCB0byB6ZXJvIGJ5IGZ1bmN0aW9ucyBvdmVycGFpbnRpbmcgdGhlIGN1cnNvciBpbWFnZS4gICov CiAgICAgYm9vbF9iZiBwaHlzX2N1cnNvcl9vbl9wIDogMTsKZGlmZiAtLWdpdCBhL3NyYy94ZGlz cC5jIGIvc3JjL3hkaXNwLmMKaW5kZXggOGYxZTk4ZC4uMDk3OTA1MCAxMDA2NDQKLS0tIGEvc3Jj L3hkaXNwLmMKKysrIGIvc3JjL3hkaXNwLmMKQEAgLTEzNDE2LDYgKzEzNDE2LDY4IEBAIGRvIHsg aWYgKCEgcG9sbGluZ19zdG9wcGVkX2hlcmUpIHN0b3BfcG9sbGluZyAoKTsJXAogZG8geyBpZiAo cG9sbGluZ19zdG9wcGVkX2hlcmUpIHN0YXJ0X3BvbGxpbmcgKCk7CVwKICAgICAgICBwb2xsaW5n X3N0b3BwZWRfaGVyZSA9IGZhbHNlOyB9IHdoaWxlIChmYWxzZSkKIAorc3RhdGljIHZvaWQKK3J1 bl93aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHN0cnVjdCB0ZXh0X3BvcyBzdGFydHAsIHN0cnVjdCB3 aW5kb3cgKncsIExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IGl0IGl0LCBjaGFyICpzdHJpbmcp Cit7CisgIHZvaWQgKml0ZGF0YSA9IE5VTEw7CisgIGJvb2wgaW5fd2luZG93ID0gZmFsc2U7Cisg IGJvb2wgZnVsbHlfcCA9IHRydWU7CisgIGJvb2wgcGFydGlhbGx5ID0gdHJ1ZTsKKyAgRU1BQ1Nf SU5UIHBvc2ludCA9IFBUOworICBpbnQgeCwgeSwgcnRvcCwgcmJvdCwgcm93aCwgdnBvcywgc3Rh cnRwX2ludGVnZXIsIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9sX2VuZHA7CisgIHN0YXJ0cF9pbnRl Z2VyID0gQ0hBUlBPUyAoc3RhcnRwKTsKKyAgc3RydWN0IGJ1ZmZlciAqYnVmOworICBidWYgPSBY QlVGRkVSICh3LT5jb250ZW50cyk7CisgIGlmICghTklMUCAoVndpbmRvd19zdGFydF9lbmRfaG9v aykKKyAgICAgICYmIChGbG9jYWxfdmFyaWFibGVfcCAoUXdpbmRvd19zdGFydF9lbmRfaG9va192 YXIsIEZ3aW5kb3dfYnVmZmVyICh3aW5kb3cpKSkKKyAgICAgICYmIHctPndpbmRvd19zdGFydF9l bmRfaG9va19wZW5kaW5nKQorICAgIHsKKyAgICBpZiAoKHBvc2ludCA+PSBDSEFSUE9TIChzdGFy dHApICYmIHBvc2ludCA8PSBCVUZfWlYgKGJ1ZikpCisgICAgICAgICYmIENIQVJQT1MgKHN0YXJ0 cCkgPj0gQlVGX0JFR1YgKGJ1ZikKKyAgICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA8PSBCVUZf WlYgKGJ1ZikKKyAgICAgICAgJiYgcG9zX3Zpc2libGVfcCAodywgcG9zaW50LCAmeCwgJnksICZy dG9wLCAmcmJvdCwgJnJvd2gsICZ2cG9zKSkKKyAgICAgIHsKKyAgICAgIGZ1bGx5X3AgPSAhcnRv cCAmJiAhcmJvdDsKKyAgICAgIGlmICghTklMUCAocGFydGlhbGx5KSB8fCBmdWxseV9wKQorICAg ICAgICBpbl93aW5kb3cgPSB0cnVlOworICAgICAgfQorICAgIGlmICghTklMUCAoaW5fd2luZG93 KSAmJiAhTklMUCAocGFydGlhbGx5KSkKKyAgICAgIHsKKyNpZmRlZiBHTFlQSF9ERUJVRworICAg ICAgLyogU2VlIHRoZSBkb2Mtc3RyaW5nIGZvciBgcG9zLXZpc2libGUtaW4td2luZG93LXAnLiAg Ki8KKyAgICAgIGlmICghZnVsbHlfcCkKKyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgIiVz IC0tIHg6ICVkIHwgeTogJWQgfCBydG9wOiAlZCB8IHJib3QgJWQgfCByb3doOiAlZCB8IHZwb3M6 ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZywgeCwgeSwgcnRvcCwg cmJvdCwgcm93aCwgdnBvcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgZGVidWdfbWV0aG9kX2Fk ZCAodywgIiVzIC0tIHg6ICVkIHwgeTogJWQgfCBzdGFydHA6ICVkIHwgZW5kcDogJWQgfCBwYm9s X3N0YXJ0cDogJWQgfCBwZW9sX2VuZHA6ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cmluZywgeCwgeSwgc3RhcnRwX2ludGVnZXIsIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9s X2VuZHApOworI2VuZGlmCisgICAgICBpZiAoZnVsbHlfcCkKKyAgICAgICAgeworICAgICAgICBD TElQX1RFWFRfUE9TX0ZST01fTUFSS0VSIChzdGFydHAsIHctPnN0YXJ0KTsKKyAgICAgICAgaXRk YXRhID0gYmlkaV9zaGVsdmVfY2FjaGUgKCk7CisgICAgICAgIHN0YXJ0X2Rpc3BsYXkgKCZpdCwg dywgc3RhcnRwKTsKKyAgICAgICAgbW92ZV9pdF92ZXJ0aWNhbGx5ICgmaXQsIHdpbmRvd19ib3hf aGVpZ2h0ICh3KSk7CisgICAgICAgIGlmIChpdC5jdXJyZW50X3kgPCBpdC5sYXN0X3Zpc2libGVf eSkKKyAgICAgICAgICBtb3ZlX2l0X3Bhc3RfZW9sICgmaXQpOworICAgICAgICBlbmRwID0gKElU X0NIQVJQT1MgKGl0KSk7CisgICAgICAgIGJpZGlfdW5zaGVsdmVfY2FjaGUgKGl0ZGF0YSwgZmFs c2UpOworICAgICAgICBTRVRfUFQgKHN0YXJ0cF9pbnRlZ2VyKTsKKyAgICAgICAgcGJvbF9zdGFy dHAgPSBYSU5UIChGbGluZV9iZWdpbm5pbmdfcG9zaXRpb24gKFFuaWwpKTsKKyAgICAgICAgU0VU X1BUIChlbmRwKTsKKyAgICAgICAgcGVvbF9lbmRwID0gWElOVCAoRmxpbmVfZW5kX3Bvc2l0aW9u IChRbmlsKSk7CisgICAgICAgIFNFVF9QVCAocG9zaW50KTsKKyAgICAgICAgQ0FMTE4gKEZydW5f aG9va193aXRoX2FyZ3MsIFF3aW5kb3dfc3RhcnRfZW5kX2hvb2ssIHdpbmRvdywKKyAgICAgICAg ICAgIG1ha2VfbnVtYmVyIChzdGFydHBfaW50ZWdlciksCisgICAgICAgICAgICBtYWtlX251bWJl ciAoZW5kcCksCisgICAgICAgICAgICBtYWtlX251bWJlciAocGJvbF9zdGFydHApLAorICAgICAg ICAgICAgbWFrZV9udW1iZXIgKHBlb2xfZW5kcCksCisgICAgICAgICAgICBmdWxseV9wID8gUXQg OiBRbmlsKTsKKyAgICAgICAgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcgPSBmYWxz ZTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KK30KIAogLyogUGVyaGFwcyBpbiB0aGUgZnV0 dXJlIGF2b2lkIHJlY2VudGVyaW5nIHdpbmRvd3MgaWYgaXQKICAgIGlzIG5vdCBuZWNlc3Nhcnk7 IGN1cnJlbnRseSB0aGF0IGNhdXNlcyBzb21lIHByb2JsZW1zLiAgKi8KQEAgLTEzNzEzLDYgKzEz Nzc1LDcgQEAgcmVkaXNwbGF5X2ludGVybmFsICh2b2lkKQogICAgICAgJiYgbWF0Y2hfcAogICAg ICAgJiYgIXctPmZvcmNlX3N0YXJ0CiAgICAgICAmJiAhdy0+b3B0aW9uYWxfbmV3X3N0YXJ0Cisg ICAgICAmJiAhdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX2ZvcmNlCiAgICAgICAvKiBQb2ludCBt dXN0IGJlIG9uIHRoZSBsaW5lIHRoYXQgd2UgaGF2ZSBpbmZvIHJlY29yZGVkIGFib3V0LiAgKi8K ICAgICAgICYmIFBUID49IENIQVJQT1MgKHRsYnVmcG9zKQogICAgICAgJiYgUFQgPD0gWiAtIENI QVJQT1MgKHRsZW5kcG9zKQpAQCAtMTU0MTIsNiArMTU0NzUsOCBAQCB0cnlfc2Nyb2xsaW5nIChM aXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wLAogICAvKiBSdW4gd2luZG93 IHNjcm9sbCBmdW5jdGlvbnMuICAqLwogICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5j dGlvbnMgKHdpbmRvdywgc3RhcnRwKTsKIAorICBydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rIChz dGFydHAsIHcsIHdpbmRvdywgaXQsICJ0cnlfc2Nyb2xsaW5nIik7CisKICAgLyogRGlzcGxheSB0 aGUgd2luZG93LiAgR2l2ZSB1cCBpZiBuZXcgZm9udHMgYXJlIGxvYWRlZCwgb3IgaWYgcG9pbnQK ICAgICAgZG9lc24ndCBhcHBlYXIuICAqLwogICBpZiAoIXRyeV93aW5kb3cgKHdpbmRvdywgc3Rh cnRwLCAwKSkKQEAgLTE2MjY2LDEzICsxNjMzMSwxMiBAQCByZWRpc3BsYXlfd2luZG93IChMaXNw X09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogCiAgIC8qIElmIHNvbWVvbmUg c3BlY2lmaWVkIGEgbmV3IHN0YXJ0aW5nIHBvaW50IGJ1dCBkaWQgbm90IGluc2lzdCwKICAgICAg Y2hlY2sgd2hldGhlciBpdCBjYW4gYmUgdXNlZC4gICovCi0gIGlmICgody0+b3B0aW9uYWxfbmV3 X3N0YXJ0IHx8IHdpbmRvd19mcm96ZW5fcCAodykpCisgIGlmICgody0+b3B0aW9uYWxfbmV3X3N0 YXJ0IHx8IHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSB8fCB3aW5kb3dfZnJvemVuX3Ag KHcpKQogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA+PSBCRUdWCiAgICAgICAmJiBDSEFSUE9T IChzdGFydHApIDw9IFpWKQogICAgIHsKICAgICAgIHB0cmRpZmZfdCBpdF9jaGFycG9zOwogCi0g ICAgICB3LT5vcHRpb25hbF9uZXdfc3RhcnQgPSBmYWxzZTsKICAgICAgIHN0YXJ0X2Rpc3BsYXkg KCZpdCwgdywgc3RhcnRwKTsKICAgICAgIG1vdmVfaXRfdG8gKCZpdCwgUFQsIDAsIGl0Lmxhc3Rf dmlzaWJsZV95LCAtMSwKIAkJICBNT1ZFX1RPX1BPUyB8IE1PVkVfVE9fWCB8IE1PVkVfVE9fWSk7 CkBAIC0xNjI5MywxNCArMTYzNTcsMjggQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qg d2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAkgICAgdy0+Zm9yY2Vfc3RhcnQgPSB0cnVl OwogI2lmZGVmIEdMWVBIX0RFQlVHCiAJICBpZiAody0+Zm9yY2Vfc3RhcnQpCi0JICAgIHsKLQkg ICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkKLQkJZGVidWdfbWV0aG9kX2FkZCAodywgInNl dCBmb3JjZV9zdGFydCBmcm9tIGZyb3plbiB3aW5kb3cgc3RhcnQiKTsKLQkgICAgICBlbHNlCi0J CWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQgZnJvbSBvcHRpb25hbF9uZXdf c3RhcnQiKTsKLQkgICAgfQorICAgIHsKKyAgICAgIGlmICh3aW5kb3dfZnJvemVuX3AgKHcpKQor ICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQg ZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7CisgICAgICB9CisgICAgICBlbHNlIGlmICh3LT5v cHRpb25hbF9uZXdfc3RhcnQpCisgICAgICAgIHsKKyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAo dywgInNldCBmb3JjZV9zdGFydCBmcm9tIG9wdGlvbmFsX25ld19zdGFydCIpOworICAgICAgfQor ICAgICAgZWxzZSBpZiAody0+d2luZG93X3N0YXJ0X2VuZF9ob29rX2ZvcmNlKQorICAgICAgICB7 CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQgZnJvbSB3aW5k b3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UiKTsKKyAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAg eworICAgICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAiVGhpcyBzaXR1YXRpb24gaXMgbm90IHll dCBjb250ZW1wbGF0ZWQuIik7CisgICAgICB9CisgICAgfQogI2VuZGlmCiAJfQorICAgICAgdy0+ b3B0aW9uYWxfbmV3X3N0YXJ0ID0gZmFsc2U7CisgICAgICB3LT53aW5kb3dfc3RhcnRfZW5kX2hv b2tfZm9yY2UgPSBmYWxzZTsKICAgICB9CiAKICBmb3JjZV9zdGFydDoKQEAgLTE2MzI4LDExICsx NjQwNiwxOSBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVz dF90aGlzX29uZV9wKQogCSB0aGFuIHRvIGdldCBpbnRvIGFuIGluZmluaXRlIGxvb3AgY2FsbGlu ZyB0aGUgaG9vayBmdW5jdGlvbnMKIAkgYW5kIGhhdmluZyB0aGVtIGdldCBtb3JlIGVycm9ycy4g ICovCiAgICAgICBpZiAoIXVwZGF0ZV9tb2RlX2xpbmUKLQkgIHx8ICEgTklMUCAoVndpbmRvd19z Y3JvbGxfZnVuY3Rpb25zKSkKKwkgIHx8ICEgTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25z KQorCSAgfHwgISBOSUxQIChWd2luZG93X3N0YXJ0X2VuZF9ob29rKSkKIAl7CiAJICB1cGRhdGVf bW9kZV9saW5lID0gdHJ1ZTsKIAkgIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSB0cnVlOworCisgIC8q IFJ1biB3aW5kb3cgc2Nyb2xsIGZ1bmN0aW9ucy4gIEZJWE1FOiAgc2V0IHVwIGNvbmRpdGlvbnMg c28gdGhhdAorYHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9uc2AgZG9lcyBub3QgYWx3YXlzIHJ1 biB3aGVuZXZlcgorYHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZWAgaXMgYHRydWVgLiAg Ki8KIAkgIHN0YXJ0cCA9IHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBzdGFy dHApOworCisgIHJ1bl93aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHN0YXJ0cCwgdywgd2luZG93LCBp dCwgInJlZGlzcGxheV93aW5kb3cgKGZvcmNlX3N0YXJ0KSIpOworCiAJfQogCiAgICAgICBpZiAo Q0hBUlBPUyAoc3RhcnRwKSA8IEJFR1YpCkBAIC0xNjYwMCw2ICsxNjY4Niw3IEBAIHJlZGlzcGxh eV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJICAg ICBiZWNhdXNlIGEgd2luZG93IHNjcm9sbCBmdW5jdGlvbiBjYW4gaGF2ZSBjaGFuZ2VkIHRoZQog CSAgICAgYnVmZmVyLiAgKi8KIAkgIHx8ICFOSUxQIChWd2luZG93X3Njcm9sbF9mdW5jdGlvbnMp CisJICB8fCAhTklMUCAoVndpbmRvd19zdGFydF9lbmRfaG9vaykKIAkgIHx8IE1JTklfV0lORE9X X1AgKHcpCiAJICB8fCAhKHVzZWRfY3VycmVudF9tYXRyaXhfcAogCSAgICAgICA9IHRyeV93aW5k b3dfcmV1c2luZ19jdXJyZW50X21hdHJpeCAodykpKQpAQCAtMTY3OTcsNiArMTY4ODQsOCBAQCBy ZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9w KQogICAvKiBSdW4gc2Nyb2xsIGhvb2tzLiAgKi8KICAgc3RhcnRwID0gcnVuX3dpbmRvd19zY3Jv bGxfZnVuY3Rpb25zICh3aW5kb3csIGl0LmN1cnJlbnQucG9zKTsKIAorICBydW5fd2luZG93X3N0 YXJ0X2VuZF9ob29rIChzdGFydHAsIHcsIHdpbmRvdywgaXQsICJyZWRpc3BsYXlfd2luZG93IChy ZWNlbnRlcikiKTsKKwogICAvKiBSZWRpc3BsYXkgdGhlIHdpbmRvdy4gICovCiAgIGJvb2wgdXNl X2Rlc2lyZWRfbWF0cml4ID0gZmFsc2U7CiAgIGlmICghY3VycmVudF9tYXRyaXhfdXBfdG9fZGF0 ZV9wCkBAIC0xNjgwNSw2ICsxNjg5NCw3IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0 IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAgICAgICAvKiBEb24ndCB1c2UgdHJ5X3dp bmRvd19yZXVzaW5nX2N1cnJlbnRfbWF0cml4IGluIHRoaXMgY2FzZQogCSBiZWNhdXNlIGl0IGNh biBoYXZlIGNoYW5nZWQgdGhlIGJ1ZmZlci4gICovCiAgICAgICB8fCAhTklMUCAoVndpbmRvd19z Y3JvbGxfZnVuY3Rpb25zKQorICAgICAgfHwgIU5JTFAgKFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2sp CiAgICAgICB8fCAhanVzdF90aGlzX29uZV9wCiAgICAgICB8fCBNSU5JX1dJTkRPV19QICh3KQog ICAgICAgfHwgISh1c2VkX2N1cnJlbnRfbWF0cml4X3AKQEAgLTIzNjgwLDYgKzIzNzcwLDIwIEBA IGRlY29kZV9tb2RlX3NwZWMgKHN0cnVjdCB3aW5kb3cgKncsIHJlZ2lzdGVyIGludCBjLCBpbnQg ZmllbGRfd2lkdGgsCiAJICByZXR1cm4gIkAiOwogICAgICAgfQogCisgICAgY2FzZSAndyc6Cisg ICAgICB7CisgIHB0cmRpZmZfdCB3aW5kb3dfc3RhcnQgPSBtYXJrZXJfcG9zaXRpb24gKHctPnN0 YXJ0KTsKKyAgcGludDJzdHIgKGRlY29kZV9tb2RlX3NwZWNfYnVmLCB3aWR0aCwgd2luZG93X3N0 YXJ0KTsKKyAgcmV0dXJuIGRlY29kZV9tb2RlX3NwZWNfYnVmOworICAgICAgfQorCisgICAgY2Fz ZSAnVyc6CisgICAgICB7CisgIHB0cmRpZmZfdCB3aW5kb3dfZW5kID0gQlVGX1ogKGIpIC0gdy0+ d2luZG93X2VuZF9wb3M7CisgIHBpbnQyc3RyIChkZWNvZGVfbW9kZV9zcGVjX2J1Ziwgd2lkdGgs IHdpbmRvd19lbmQpOworICByZXR1cm4gZGVjb2RlX21vZGVfc3BlY19idWY7CisgICAgICB9CisK ICAgICBjYXNlICd6JzoKICAgICAgIC8qIGNvZGluZy1zeXN0ZW0gKG5vdCBpbmNsdWRpbmcgZW5k LW9mLWxpbmUgZm9ybWF0KSAqLwogICAgIGNhc2UgJ1onOgpAQCAtMzExNDUsNiArMzEyNDksOCBA QCBUaGV5IGFyZSBzdGlsbCBsb2dnZWQgdG8gdGhlICpNZXNzYWdlcyogYnVmZmVyLiAgKi8pOwog ICBERUZTWU0gKFFvdmVycmlkaW5nX3Rlcm1pbmFsX2xvY2FsX21hcCwgIm92ZXJyaWRpbmctdGVy bWluYWwtbG9jYWwtbWFwIik7CiAgIERFRlNZTSAoUW92ZXJyaWRpbmdfbG9jYWxfbWFwLCAib3Zl cnJpZGluZy1sb2NhbC1tYXAiKTsKICAgREVGU1lNIChRd2luZG93X3Njcm9sbF9mdW5jdGlvbnMs ICJ3aW5kb3ctc2Nyb2xsLWZ1bmN0aW9ucyIpOworICBERUZTWU0gKFF3aW5kb3dfc3RhcnRfZW5k X2hvb2ssICJ3aW5kb3ctc3RhcnQtZW5kLWhvb2siKTsKKyAgREVGU1lNIChRd2luZG93X3N0YXJ0 X2VuZF9ob29rX3ZhciwgIndpbmRvdy1zdGFydC1lbmQtaG9vay12YXIiKTsKICAgREVGU1lNIChR d2luZG93X3RleHRfY2hhbmdlX2Z1bmN0aW9ucywgIndpbmRvdy10ZXh0LWNoYW5nZS1mdW5jdGlv bnMiKTsKICAgREVGU1lNIChRcmVkaXNwbGF5X2VuZF90cmlnZ2VyX2Z1bmN0aW9ucywgInJlZGlz cGxheS1lbmQtdHJpZ2dlci1mdW5jdGlvbnMiKTsKICAgREVGU1lNIChRaW5oaWJpdF9wb2ludF9t b3Rpb25faG9va3MsICJpbmhpYml0LXBvaW50LW1vdGlvbi1ob29rcyIpOwpAQCAtMzE0NjYsNiAr MzE1NzIsMTUgQEAgaXMgc2Nyb2xsZWQuICBJdCBpcyBub3QgZGVzaWduZWQgZm9yIHRoYXQsIGFu ZCBzdWNoIHVzZSBwcm9iYWJseSB3b24ndAogd29yay4gICovKTsKICAgVndpbmRvd19zY3JvbGxf ZnVuY3Rpb25zID0gUW5pbDsKIAorICBERUZWQVJfTElTUCAoIndpbmRvdy1zdGFydC1lbmQtaG9v ayIsIFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2ssCisgICAgZG9jOiAvKiBVc2VkIHRvIG9idGFpbiB0 aGUgbmV3IGB3aW5kb3ctc3RhcnQnIGR1cmluZyByZWRpc3BsYXkuICAqLyk7CisgIFZ3aW5kb3df c3RhcnRfZW5kX2hvb2sgPSBRbmlsOworCisgIERFRlZBUl9MSVNQICgid2luZG93LXN0YXJ0LWVu ZC1ob29rLXZhciIsIFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2tfdmFyLAorICAgIGRvYzogLyogYHdp bmRvdy1zdGFydC1lbmQtaG9va2AgY2hlY2tzIHRvIHNlZSBpZiBgd2luZG93LXN0YXJ0LWVuZC1o b29rLXZhcmAgaXMgc2V0IGxvY2FsbHkuICAqLyk7CisgIFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2tf dmFyID0gUW5pbDsKKyAgRm1ha2VfdmFyaWFibGVfYnVmZmVyX2xvY2FsIChRd2luZG93X3N0YXJ0 X2VuZF9ob29rX3Zhcik7CisKICAgREVGVkFSX0xJU1AgKCJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVu Y3Rpb25zIiwKIAkgICAgICAgVndpbmRvd190ZXh0X2NoYW5nZV9mdW5jdGlvbnMsCiAgICAgZG9j OiAvKiBGdW5jdGlvbnMgdG8gY2FsbCBpbiByZWRpc3BsYXkgd2hlbiB0ZXh0IGluIHRoZSB3aW5k b3cgbWlnaHQgY2hhbmdlLiAgKi8pOwo= --Multipart_Mon_Feb__8_00:51:43_2016-1--
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Mon, 08 Feb 2016 18:13:02 +0000 Resent-Message-ID: <handler.22404.B22404.14549551332441 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.14549551332441 (code B ref 22404); Mon, 08 Feb 2016 18:13:02 +0000 Received: (at 22404) by debbugs.gnu.org; 8 Feb 2016 18:12:13 +0000 Received: from localhost ([127.0.0.1]:60333 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aSqIG-0000dB-Gj for submit <at> debbugs.gnu.org; Mon, 08 Feb 2016 13:12:12 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43544) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aSqIB-0000b7-VO for 22404 <at> debbugs.gnu.org; Mon, 08 Feb 2016 13:12:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aSpRM-0002PR-8S for 22404 <at> debbugs.gnu.org; Mon, 08 Feb 2016 12:17:33 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.5 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33156) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aSpRM-0002PN-5I; Mon, 08 Feb 2016 12:17:32 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1486 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aSpRL-0005JE-H9; Mon, 08 Feb 2016 12:17:31 -0500 Date: Mon, 08 Feb 2016 19:17:15 +0200 Message-Id: <83d1s7qfz8.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m2r3gnh9en.wl%esq@HIDDEN> (message from Keith David Bershatsky on Mon, 08 Feb 2016 00:51:44 -0800) References: <m2r3gnh9en.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.3 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.3 (-----) > Date: Mon, 08 Feb 2016 00:51:44 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org > > I noticed that redisplay handles a large yank/paste by erroneously letting the user see for a split second that point is partially visible on the bottom of the screen (when `scroll-conservatively` is 101), and then redisplay fixes the display by moving the lines up far enough to bring point back into view. That behavior appears to be a bug -- i.e., Emacs should internally know that point is partially visible at the bottom of the screen following a large yank and then patiently wait to display the finished product until point is fully visible. This is most noticeable in my own minor-mode that can take up to .040 seconds to perform its calculations with `vertical-motion'. A reproducible recipe will be appreciated (in a separate bug report, please). I'm guessing that some redisplay optimization causes the slightly inaccurate display, which is thereafter fixed. If so, it could be that the conditions for that optimization should be fixed. > + CALLN (Frun_hook_with_args, Qwindow_start_end_hook, window, > + make_number (startp_integer), > + make_number (endp), > + make_number (pbol_startp), > + make_number (peol_endp), > + fully_p ? Qt : Qnil); When calling Lisp from redisplay, always use safe_call, to be protected against errors signaled by that Lisp. > + w->window_start_end_hook_pending = false; For the same reason, reset the flag _before_ calling Lisp, not after, so that if Lisp does signal an error, the flag will be reset, and won't cause the hook to be called ad nauseam.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 09 Feb 2016 16:01:02 +0000 Resent-Message-ID: <handler.22404.B22404.145503364328039 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145503364328039 (code B ref 22404); Tue, 09 Feb 2016 16:01:02 +0000 Received: (at 22404) by debbugs.gnu.org; 9 Feb 2016 16:00:43 +0000 Received: from localhost ([127.0.0.1]:33768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aTAiY-0007IB-Sd for submit <at> debbugs.gnu.org; Tue, 09 Feb 2016 11:00:43 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:54333) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aTAiX-0007Hy-Ik for 22404 <at> debbugs.gnu.org; Tue, 09 Feb 2016 11:00:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=QuXIafi5GKxfFEf98Bq7JOtyzi0fIZxYSqHIO51nbhg=; b=HDVJZ3nDdkEimtLjNyFwGTUXEvjCK7uSbis6CrBGVy2JFNst2rQqn6Op2POwSQsRd8sTJJxK472GgHIk7U4j6I7Q3sh5c0PlIhzT+ZI7l6bnQxTyeOWW7kvNHnIBt1qn; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:49518 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aTAiM-0000kC-5j; Tue, 09 Feb 2016 11:00:30 -0500 Date: Tue, 09 Feb 2016 08:00:33 -0800 Message-ID: <m237t1ho0u.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Tue_Feb__9_08:00:31_2016-1" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --Multipart_Tue_Feb__9_08:00:31_2016-1 Content-Type: text/plain; charset=US-ASCII Thank you, Eli, for the helpful suggestions mentioned in your last e-mail. I've incorporated them into the latest draft that is attached, and I've simplified some of the code, and I've added a test to avoid unnecessarily triggering of the `window-scroll-functions` hook. The issue mentioned in my last email was caused by `font-lock-mode` -- when I turn off `font-lock-mode`, there are a few situations where point remains partially visible at the bottom of the window and redisplay does not catch it -- e.g., when the line that point is on is about 90 percent visible at the bottom of the window. The test in the `run_window_start_end_hook` realizes that point is partially visible, so the function attached to the `window-start-end-hook` does not fire because point was never fully visible during redisplay. I'll do some more testing over the next few days to find out exactly where in redisplay the test for partially visible is failing such that redisplay never moves the display up one line to bring it into full view. And, I'll submit a separate ticket once I've tracked it down or once I've come up with a reproducible test. The proposed usage of this new hook has been simplified to the following: (defun window-start-end-hook-fn (win start end pbol-start peol-end fully-p) (message "win: %s | start: %s | end: %s | pbol-start: %s | peol-end: %s | fully-p: %s" win start end pbol-start peol-end fully-p)) (setq scroll-conservatively 101) (add-hook 'window-start-end-hook 'window-start-end-hook-fn nil t) --Multipart_Tue_Feb__9_08:00:31_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="window_start_end_hook.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggYmFjYTRi NS4uZjM2ZmM2MiAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJk LmMKQEAgLTEyMzMsNiArMTIzMywxNSBAQCBzdGF0aWMgaW50IHJlYWRfa2V5X3NlcXVlbmNlIChM aXNwX09iamVjdCAqLCBpbnQsIExpc3BfT2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCk7CiBzdGF0aWMgdm9pZCBhZGp1c3RfcG9pbnRf Zm9yX3Byb3BlcnR5IChwdHJkaWZmX3QsIGJvb2wpOwogCitzdGF0aWMgdm9pZAorc2V0X3dpbmRv d19zdGFydF9lbmRfaG9vayAodm9pZCkKK3sKKyAgTGlzcF9PYmplY3Qgd2luZG93ID0gKHNlbGVj dGVkX3dpbmRvdyk7CisgIHN0cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdp bmRvdyk7CisgIHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSA9IHRydWU7CisgIHctPndp bmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nID0gdHJ1ZTsKK30KKwogTGlzcF9PYmplY3QKIGNv bW1hbmRfbG9vcF8xICh2b2lkKQogewpAQCAtMTI1OCw2ICsxMjY3LDggQEAgY29tbWFuZF9sb29w XzEgKHZvaWQpCiAgICAgICBpZiAoIU5JTFAgKFZwb3N0X2NvbW1hbmRfaG9vaykgJiYgIU5JTFAg KFZydW5faG9va3MpKQogCXNhZmVfcnVuX2hvb2tzIChRcG9zdF9jb21tYW5kX2hvb2spOwogCisg ICAgICBzZXRfd2luZG93X3N0YXJ0X2VuZF9ob29rICgpOworCiAgICAgICAvKiBJZiBkaXNwbGF5 aW5nIGEgbWVzc2FnZSwgcmVzaXplIHRoZSBlY2hvIGFyZWEgd2luZG93IHRvIGZpdAogCSB0aGF0 IG1lc3NhZ2UncyBzaXplIGV4YWN0bHkuICAqLwogICAgICAgaWYgKCFOSUxQIChlY2hvX2FyZWFf YnVmZmVyWzBdKSkKQEAgLTE0NzQsNiArMTQ4NSw4IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lkKQog CiAgICAgICBzYWZlX3J1bl9ob29rcyAoUXBvc3RfY29tbWFuZF9ob29rKTsKIAorICAgICAgc2V0 X3dpbmRvd19zdGFydF9lbmRfaG9vayAoKTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1l c3NhZ2UsIHJlc2l6ZSB0aGUgZWNobyBhcmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdl J3Mgc2l6ZSBleGFjdGx5LiAgKi8KICAgICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclsw XSkpCmRpZmYgLS1naXQgYS9zcmMvbGlzcC5oIGIvc3JjL2xpc3AuaAppbmRleCAyMTMwMTcwLi4x NzkxNWRiIDEwMDY0NAotLS0gYS9zcmMvbGlzcC5oCisrKyBiL3NyYy9saXNwLmgKQEAgLTM5MzMs NiArMzkzMyw3IEBAIGV4dGVybiB2b2lkIGluaXRfZXZhbF9vbmNlICh2b2lkKTsKIGV4dGVybiBM aXNwX09iamVjdCBzYWZlX2NhbGwgKHB0cmRpZmZfdCwgTGlzcF9PYmplY3QsIC4uLik7CiBleHRl cm4gTGlzcF9PYmplY3Qgc2FmZV9jYWxsMSAoTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0KTsKIGV4 dGVybiBMaXNwX09iamVjdCBzYWZlX2NhbGwyIChMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExp c3BfT2JqZWN0KTsKK2V4dGVybiBMaXNwX09iamVjdCBzYWZlX2NhbGw3IChMaXNwX09iamVjdCwg TGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExpc3Bf T2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QpOwogZXh0ZXJuIHZvaWQgaW5pdF9ldmFs ICh2b2lkKTsKIGV4dGVybiB2b2lkIHN5bXNfb2ZfZXZhbCAodm9pZCk7CiBleHRlcm4gdm9pZCB1 bndpbmRfYm9keSAoTGlzcF9PYmplY3QpOwpkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvdy5oIGIvc3Jj L3dpbmRvdy5oCmluZGV4IGMyOTIwN2QuLjMxNTY5MjcgMTAwNjQ0Ci0tLSBhL3NyYy93aW5kb3cu aAorKysgYi9zcmMvd2luZG93LmgKQEAgLTM0OCw2ICszNDgsMTIgQEAgc3RydWN0IHdpbmRvdwog ICAgICAgIFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9uczsgYWxzbyBieSBGcmVjZW50ZXIgd2l0aCBh cmd1bWVudC4gICovCiAgICAgYm9vbF9iZiBvcHRpb25hbF9uZXdfc3RhcnQgOiAxOwogCisgICAg LyogVHJ1ZSBtZWFucyBmb3JjZSBhIGNhbGwgdG8gVndpbmRvd19zdGFydF9lbmRfaG9vay4gICov CisgICAgYm9vbF9iZiB3aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UgOiAxOworCisgICAgLyog VHJ1ZSBtZWFucyB0aGUgaG9vayBoYXMgbm90IHlldCBydW4gd2l0aCBwb2ludCBmdWxseSB2aXNp YmxlLiAgKi8KKyAgICBib29sX2JmIHdpbmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nIDogMTsK KwogICAgIC8qIFRydWUgbWVhbnMgdGhlIGN1cnNvciBpcyBjdXJyZW50bHkgZGlzcGxheWVkLiAg VGhpcyBjYW4gYmUKICAgICAgICBzZXQgdG8gemVybyBieSBmdW5jdGlvbnMgb3ZlcnBhaW50aW5n IHRoZSBjdXJzb3IgaW1hZ2UuICAqLwogICAgIGJvb2xfYmYgcGh5c19jdXJzb3Jfb25fcCA6IDE7 CmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94ZGlzcC5jCmluZGV4IDhmMWU5OGQuLmJk ZTNiMjMgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisrKyBiL3NyYy94ZGlzcC5jCkBAIC0yNjE3 LDYgKzI2MTcsMTMgQEAgc2FmZV9jYWxsMiAoTGlzcF9PYmplY3QgZm4sIExpc3BfT2JqZWN0IGFy ZzEsIExpc3BfT2JqZWN0IGFyZzIpCiAgIHJldHVybiBzYWZlX2NhbGwgKDMsIGZuLCBhcmcxLCBh cmcyKTsKIH0KIAorLyogIFRoaXMgaXMgZm9yIHRoZSBgd2luZG93X3N0YXJ0X2VuZF9ob29rJy4g IENhbGwgZnVuY3Rpb24gRk4gd2l0aCBzZXZlbiBhcmd1bWVudHMuCisgICAgUmV0dXJuIHRoZSBy ZXN1bHQgb3IgbmlsIGlmIHNvbWV0aGluZyB3ZW50IHdyb25nLiAgKi8KK0xpc3BfT2JqZWN0Citz YWZlX2NhbGw3IChMaXNwX09iamVjdCBmbiwgTGlzcF9PYmplY3QgYXJnMSwgTGlzcF9PYmplY3Qg YXJnMiwgTGlzcF9PYmplY3QgYXJnMywgTGlzcF9PYmplY3QgYXJnNCwgTGlzcF9PYmplY3QgYXJn NSwgTGlzcF9PYmplY3QgYXJnNiwgTGlzcF9PYmplY3QgYXJnNykKK3sKKyAgcmV0dXJuIHNhZmVf Y2FsbCAoOCwgZm4sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUsIGFyZzYsIGFyZzcpOwor fQogCiAMCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEzNDE2LDYgKzEzNDIzLDY4IEBAIGRvIHsgaWYg KCEgcG9sbGluZ19zdG9wcGVkX2hlcmUpIHN0b3BfcG9sbGluZyAoKTsJXAogZG8geyBpZiAocG9s bGluZ19zdG9wcGVkX2hlcmUpIHN0YXJ0X3BvbGxpbmcgKCk7CVwKICAgICAgICBwb2xsaW5nX3N0 b3BwZWRfaGVyZSA9IGZhbHNlOyB9IHdoaWxlIChmYWxzZSkKIAorc3RhdGljIHZvaWQKK3J1bl93 aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHN0cnVjdCB0ZXh0X3BvcyBzdGFydHAsIHN0cnVjdCB3aW5k b3cgKncsIExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IGl0IGl0LCBjaGFyICpzdHJpbmcpCit7 CisgIHZvaWQgKml0ZGF0YSA9IE5VTEw7CisgIGJvb2wgZnVsbHlfcCA9IGZhbHNlOworICBFTUFD U19JTlQgcG9zaW50ID0gUFQ7CisgIGludCB4LCB5LCBydG9wLCByYm90LCByb3doLCB2cG9zLCBz dGFydHBfaW50ZWdlciwgZW5kcCwgcGJvbF9zdGFydHAsIHBlb2xfZW5kcDsKKyAgc3RhcnRwX2lu dGVnZXIgPSBDSEFSUE9TIChzdGFydHApOworICBzdHJ1Y3QgYnVmZmVyICpidWY7CisgIGJ1ZiA9 IFhCVUZGRVIgKHctPmNvbnRlbnRzKTsKKyAgaWYgKCFOSUxQIChGbG9jYWxfdmFyaWFibGVfcCAo UXdpbmRvd19zdGFydF9lbmRfaG9vaywgRndpbmRvd19idWZmZXIgKHdpbmRvdykpKQorICAgICAg JiYgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcpCisgICAgeworICAgIGlmICgocG9z aW50ID49IENIQVJQT1MgKHN0YXJ0cCkgJiYgcG9zaW50IDw9IEJVRl9aViAoYnVmKSkKKyAgICAg ICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA+PSBCVUZfQkVHViAoYnVmKQorICAgICAgICAmJiBDSEFS UE9TIChzdGFydHApIDw9IEJVRl9aViAoYnVmKQorICAgICAgICAmJiBwb3NfdmlzaWJsZV9wICh3 LCBwb3NpbnQsICZ4LCAmeSwgJnJ0b3AsICZyYm90LCAmcm93aCwgJnZwb3MpKQorICAgICAgZnVs bHlfcCA9ICFydG9wICYmICFyYm90OworICAgIGlmIChmdWxseV9wKQorICAgICAgeworI2lmZGVm IEdMWVBIX0RFQlVHCisgICAgICAvKiBTZWUgdGhlIGRvYy1zdHJpbmcgZm9yIGBwb3MtdmlzaWJs ZS1pbi13aW5kb3ctcCcuICAqLworICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgIiVzIC0tIHg6 ICVkIHwgeTogJWQgfCBzdGFydHA6ICVkIHwgZW5kcDogJWQgfCBwYm9sX3N0YXJ0cDogJWQgfCBw ZW9sX2VuZHA6ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZywgeCwgeSwg c3RhcnRwX2ludGVnZXIsIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9sX2VuZHApOworI2VuZGlmCisg ICAgICBDTElQX1RFWFRfUE9TX0ZST01fTUFSS0VSIChzdGFydHAsIHctPnN0YXJ0KTsKKyAgICAg IGl0ZGF0YSA9IGJpZGlfc2hlbHZlX2NhY2hlICgpOworICAgICAgc3RhcnRfZGlzcGxheSAoJml0 LCB3LCBzdGFydHApOworICAgICAgbW92ZV9pdF92ZXJ0aWNhbGx5ICgmaXQsIHdpbmRvd19ib3hf aGVpZ2h0ICh3KSk7CisgICAgICBpZiAoaXQuY3VycmVudF95IDwgaXQubGFzdF92aXNpYmxlX3kp CisgICAgICAgIG1vdmVfaXRfcGFzdF9lb2wgKCZpdCk7CisgICAgICBlbmRwID0gKElUX0NIQVJQ T1MgKGl0KSk7CisgICAgICBiaWRpX3Vuc2hlbHZlX2NhY2hlIChpdGRhdGEsIGZhbHNlKTsKKyAg ICAgIFNFVF9QVCAoc3RhcnRwX2ludGVnZXIpOworICAgICAgcGJvbF9zdGFydHAgPSBYSU5UIChG bGluZV9iZWdpbm5pbmdfcG9zaXRpb24gKFFuaWwpKTsKKyAgICAgIFNFVF9QVCAoZW5kcCk7Cisg ICAgICBwZW9sX2VuZHAgPSBYSU5UIChGbGluZV9lbmRfcG9zaXRpb24gKFFuaWwpKTsKKyAgICAg IFNFVF9QVCAocG9zaW50KTsKKyAgICAgIC8qICBSZXNldCB0aGUgZmxhZyBfYmVmb3JlXyBjYWxs aW5nIExpc3AsIG5vdCBhZnRlciwgc28gdGhhdAorICAgICAgICAgIGlmIExpc3AgZG9lcyBzaWdu YWwgYW4gZXJyb3IsIHRoZSBmbGFnIHdpbGwgYmUgcmVzZXQsIGFuZAorICAgICAgICAgIHdvbid0 IGNhdXNlIHRoZSBob29rIHRvIGJlIGNhbGxlZCBhZCBuYXVzZWFtLiAgKi8KKyAgICAgIHctPndp bmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nID0gZmFsc2U7CisgICAgICAvKiAgV2hlbiBjYWxs aW5nIExpc3AgZnJvbSByZWRpc3BsYXksIGFsd2F5cyB1c2Ugc2FmZV9jYWxsLCB0byBiZQorICAg ICAgICAgIHByb3RlY3RlZCBhZ2FpbnN0IGVycm9ycyBzaWduYWxlZCBieSB0aGF0IExpc3AuICAq LworICAgICAgc2FmZV9jYWxsNyAoUXJ1bl9ob29rX3dpdGhfYXJncywgUXdpbmRvd19zdGFydF9l bmRfaG9vaywKKyAgICAgICAgICB3aW5kb3csCisgICAgICAgICAgbWFrZV9udW1iZXIgKHN0YXJ0 cF9pbnRlZ2VyKSwKKyAgICAgICAgICBtYWtlX251bWJlciAoZW5kcCksCisgICAgICAgICAgbWFr ZV9udW1iZXIgKHBib2xfc3RhcnRwKSwKKyAgICAgICAgICBtYWtlX251bWJlciAocGVvbF9lbmRw KSwKKyAgICAgICAgICBmdWxseV9wID8gUXQgOiBRbmlsKTsKKyAgICAgIH0KKyAgICAgIGVsc2UK KyAgICAgICAgeworI2lmZGVmIEdMWVBIX0RFQlVHCisgICAgICAgIC8qIFNlZSB0aGUgZG9jLXN0 cmluZyBmb3IgYHBvcy12aXNpYmxlLWluLXdpbmRvdy1wJy4gICovCisgICAgICAgIGRlYnVnX21l dGhvZF9hZGQgKHcsICIlcyAtLSB4OiAlZCB8IHk6ICVkIHwgcnRvcDogJWQgfCByYm90ICVkIHwg cm93aDogJWQgfCB2cG9zOiAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJp bmcsIHgsIHksIHJ0b3AsIHJib3QsIHJvd2gsIHZwb3MpOworI2VuZGlmCisgICAgICAgIH0KKyAg ICB9Cit9CiAKIC8qIFBlcmhhcHMgaW4gdGhlIGZ1dHVyZSBhdm9pZCByZWNlbnRlcmluZyB3aW5k b3dzIGlmIGl0CiAgICBpcyBub3QgbmVjZXNzYXJ5OyBjdXJyZW50bHkgdGhhdCBjYXVzZXMgc29t ZSBwcm9ibGVtcy4gICovCkBAIC0xMzcxMyw2ICsxMzc4Miw3IEBAIHJlZGlzcGxheV9pbnRlcm5h bCAodm9pZCkKICAgICAgICYmIG1hdGNoX3AKICAgICAgICYmICF3LT5mb3JjZV9zdGFydAogICAg ICAgJiYgIXctPm9wdGlvbmFsX25ld19zdGFydAorICAgICAgJiYgIXctPndpbmRvd19zdGFydF9l bmRfaG9va19mb3JjZQogICAgICAgLyogUG9pbnQgbXVzdCBiZSBvbiB0aGUgbGluZSB0aGF0IHdl IGhhdmUgaW5mbyByZWNvcmRlZCBhYm91dC4gICovCiAgICAgICAmJiBQVCA+PSBDSEFSUE9TICh0 bGJ1ZnBvcykKICAgICAgICYmIFBUIDw9IFogLSBDSEFSUE9TICh0bGVuZHBvcykKQEAgLTE1NDEy LDYgKzE1NDgyLDggQEAgdHJ5X3Njcm9sbGluZyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1 c3RfdGhpc19vbmVfcCwKICAgLyogUnVuIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb25zLiAgKi8KICAg c3RhcnRwID0gcnVuX3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zICh3aW5kb3csIHN0YXJ0cCk7CiAK KyAgcnVuX3dpbmRvd19zdGFydF9lbmRfaG9vayAoc3RhcnRwLCB3LCB3aW5kb3csIGl0LCAidHJ5 X3Njcm9sbGluZyIpOworCiAgIC8qIERpc3BsYXkgdGhlIHdpbmRvdy4gIEdpdmUgdXAgaWYgbmV3 IGZvbnRzIGFyZSBsb2FkZWQsIG9yIGlmIHBvaW50CiAgICAgIGRvZXNuJ3QgYXBwZWFyLiAgKi8K ICAgaWYgKCF0cnlfd2luZG93ICh3aW5kb3csIHN0YXJ0cCwgMCkpCkBAIC0xNjA3Niw2ICsxNjE0 OCw3IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3Ro aXNfb25lX3ApCiAgIGJvb2wgbGFzdF9saW5lX21pc2ZpdCA9IGZhbHNlOwogICBwdHJkaWZmX3Qg YmVnX3VuY2hhbmdlZCwgZW5kX3VuY2hhbmdlZDsKICAgaW50IGZyYW1lX2xpbmVfaGVpZ2h0Owor ICBib29sIHdpbmRvd19zdGFydF9lbmRfaG9va19zdXBwcmVzc193c2YgPSBmYWxzZTsKIAogICBT RVRfVEVYVF9QT1MgKGxwb2ludCwgUFQsIFBUX0JZVEUpOwogICBvcG9pbnQgPSBscG9pbnQ7CkBA IC0xNjI2NiwxMyArMTYzMzksMTYgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2lu ZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAogICAvKiBJZiBzb21lb25lIHNwZWNpZmllZCBh IG5ldyBzdGFydGluZyBwb2ludCBidXQgZGlkIG5vdCBpbnNpc3QsCiAgICAgIGNoZWNrIHdoZXRo ZXIgaXQgY2FuIGJlIHVzZWQuICAqLwotICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3 aW5kb3dfZnJvemVuX3AgKHcpKQorICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3LT53 aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UgfHwgd2luZG93X2Zyb3plbl9wICh3KSkKICAgICAg ICYmIENIQVJQT1MgKHN0YXJ0cCkgPj0gQkVHVgogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA8 PSBaVikKICAgICB7CisKKyAgICAgIGlmICh3LT53aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2Ug JiYgIXctPm9wdGlvbmFsX25ld19zdGFydCAmJiAhd2luZG93X2Zyb3plbl9wICh3KSAmJiAhdy0+ Zm9yY2Vfc3RhcnQpCisgICAgICAgIHdpbmRvd19zdGFydF9lbmRfaG9va19zdXBwcmVzc193c2Yg PSB0cnVlOworCiAgICAgICBwdHJkaWZmX3QgaXRfY2hhcnBvczsKIAotICAgICAgdy0+b3B0aW9u YWxfbmV3X3N0YXJ0ID0gZmFsc2U7CiAgICAgICBzdGFydF9kaXNwbGF5ICgmaXQsIHcsIHN0YXJ0 cCk7CiAgICAgICBtb3ZlX2l0X3RvICgmaXQsIFBULCAwLCBpdC5sYXN0X3Zpc2libGVfeSwgLTEs CiAJCSAgTU9WRV9UT19QT1MgfCBNT1ZFX1RPX1ggfCBNT1ZFX1RPX1kpOwpAQCAtMTYyOTMsMTQg KzE2MzY5LDI4IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBq dXN0X3RoaXNfb25lX3ApCiAJICAgIHctPmZvcmNlX3N0YXJ0ID0gdHJ1ZTsKICNpZmRlZiBHTFlQ SF9ERUJVRwogCSAgaWYgKHctPmZvcmNlX3N0YXJ0KQotCSAgICB7Ci0JICAgICAgaWYgKHdpbmRv d19mcm96ZW5fcCAodykpCi0JCWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQg ZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7Ci0JICAgICAgZWxzZQotCQlkZWJ1Z19tZXRob2Rf YWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gb3B0aW9uYWxfbmV3X3N0YXJ0Iik7Ci0JICAg IH0KKyAgICB7CisgICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkKKyAgICAgICAgeworICAg ICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gZnJvemVuIHdp bmRvdyBzdGFydCIpOworICAgICAgfQorICAgICAgZWxzZSBpZiAody0+b3B0aW9uYWxfbmV3X3N0 YXJ0KQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vf c3RhcnQgZnJvbSBvcHRpb25hbF9uZXdfc3RhcnQiKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYg KHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSkKKyAgICAgICAgeworICAgICAgICBkZWJ1 Z19tZXRob2RfYWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gd2luZG93X3N0YXJ0X2VuZF9o b29rX2ZvcmNlIik7CisgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgZGVi dWdfbWV0aG9kX2FkZCAodywgIlRoaXMgc2l0dWF0aW9uIGlzIG5vdCB5ZXQgY29udGVtcGxhdGVk LiIpOworICAgICAgfQorICAgIH0KICNlbmRpZgogCX0KKyAgICAgIHctPm9wdGlvbmFsX25ld19z dGFydCA9IGZhbHNlOworICAgICAgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX2ZvcmNlID0gZmFs c2U7CiAgICAgfQogCiAgZm9yY2Vfc3RhcnQ6CkBAIC0xNjMyOCwxMSArMTY0MTgsMTggQEAgcmVk aXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkK IAkgdGhhbiB0byBnZXQgaW50byBhbiBpbmZpbml0ZSBsb29wIGNhbGxpbmcgdGhlIGhvb2sgZnVu Y3Rpb25zCiAJIGFuZCBoYXZpbmcgdGhlbSBnZXQgbW9yZSBlcnJvcnMuICAqLwogICAgICAgaWYg KCF1cGRhdGVfbW9kZV9saW5lCi0JICB8fCAhIE5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9u cykpCisJICB8fCAhIE5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucykKKwkgIHx8ICEgTklM UCAoVndpbmRvd19zdGFydF9lbmRfaG9vaykpCiAJewogCSAgdXBkYXRlX21vZGVfbGluZSA9IHRy dWU7CiAJICB3LT51cGRhdGVfbW9kZV9saW5lID0gdHJ1ZTsKLQkgIHN0YXJ0cCA9IHJ1bl93aW5k b3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBzdGFydHApOworCisgIC8qIFJ1biB3aW5kb3cg c2Nyb2xsIGZ1bmN0aW9ucy4gICovCisgIGlmICghd2luZG93X3N0YXJ0X2VuZF9ob29rX3N1cHBy ZXNzX3dzZikKKyAgICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRv dywgc3RhcnRwKTsKKworICBydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rIChzdGFydHAsIHcsIHdp bmRvdywgaXQsICJyZWRpc3BsYXlfd2luZG93IChmb3JjZV9zdGFydCkiKTsKKwogCX0KIAogICAg ICAgaWYgKENIQVJQT1MgKHN0YXJ0cCkgPCBCRUdWKQpAQCAtMTY2MDAsNiArMTY2OTcsNyBAQCBy ZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9w KQogCSAgICAgYmVjYXVzZSBhIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb24gY2FuIGhhdmUgY2hhbmdl ZCB0aGUKIAkgICAgIGJ1ZmZlci4gICovCiAJICB8fCAhTklMUCAoVndpbmRvd19zY3JvbGxfZnVu Y3Rpb25zKQorCSAgfHwgIU5JTFAgKFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2spCiAJICB8fCBNSU5J X1dJTkRPV19QICh3KQogCSAgfHwgISh1c2VkX2N1cnJlbnRfbWF0cml4X3AKIAkgICAgICAgPSB0 cnlfd2luZG93X3JldXNpbmdfY3VycmVudF9tYXRyaXggKHcpKSkKQEAgLTE2Nzk3LDYgKzE2ODk1 LDggQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhp c19vbmVfcCkKICAgLyogUnVuIHNjcm9sbCBob29rcy4gICovCiAgIHN0YXJ0cCA9IHJ1bl93aW5k b3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBpdC5jdXJyZW50LnBvcyk7CiAKKyAgcnVuX3dp bmRvd19zdGFydF9lbmRfaG9vayAoc3RhcnRwLCB3LCB3aW5kb3csIGl0LCAicmVkaXNwbGF5X3dp bmRvdyAocmVjZW50ZXIpIik7CisKICAgLyogUmVkaXNwbGF5IHRoZSB3aW5kb3cuICAqLwogICBi b29sIHVzZV9kZXNpcmVkX21hdHJpeCA9IGZhbHNlOwogICBpZiAoIWN1cnJlbnRfbWF0cml4X3Vw X3RvX2RhdGVfcApAQCAtMTY4MDUsNiArMTY5MDUsNyBAQCByZWRpc3BsYXlfd2luZG93IChMaXNw X09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogICAgICAgLyogRG9uJ3QgdXNl IHRyeV93aW5kb3dfcmV1c2luZ19jdXJyZW50X21hdHJpeCBpbiB0aGlzIGNhc2UKIAkgYmVjYXVz ZSBpdCBjYW4gaGF2ZSBjaGFuZ2VkIHRoZSBidWZmZXIuICAqLwogICAgICAgfHwgIU5JTFAgKFZ3 aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucykKKyAgICAgIHx8ICFOSUxQIChWd2luZG93X3N0YXJ0X2Vu ZF9ob29rKQogICAgICAgfHwgIWp1c3RfdGhpc19vbmVfcAogICAgICAgfHwgTUlOSV9XSU5ET1df UCAodykKICAgICAgIHx8ICEodXNlZF9jdXJyZW50X21hdHJpeF9wCkBAIC0yMzY4MCw2ICsyMzc4 MSwyMCBAQCBkZWNvZGVfbW9kZV9zcGVjIChzdHJ1Y3Qgd2luZG93ICp3LCByZWdpc3RlciBpbnQg YywgaW50IGZpZWxkX3dpZHRoLAogCSAgcmV0dXJuICJAIjsKICAgICAgIH0KIAorICAgIGNhc2Ug J3cnOgorICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X3N0YXJ0ID0gbWFya2VyX3Bvc2l0aW9u ICh3LT5zdGFydCk7CisgIHBpbnQyc3RyIChkZWNvZGVfbW9kZV9zcGVjX2J1Ziwgd2lkdGgsIHdp bmRvd19zdGFydCk7CisgIHJldHVybiBkZWNvZGVfbW9kZV9zcGVjX2J1ZjsKKyAgICAgIH0KKwor ICAgIGNhc2UgJ1cnOgorICAgICAgeworICBwdHJkaWZmX3Qgd2luZG93X2VuZCA9IEJVRl9aIChi KSAtIHctPndpbmRvd19lbmRfcG9zOworICBwaW50MnN0ciAoZGVjb2RlX21vZGVfc3BlY19idWYs IHdpZHRoLCB3aW5kb3dfZW5kKTsKKyAgcmV0dXJuIGRlY29kZV9tb2RlX3NwZWNfYnVmOworICAg ICAgfQorCiAgICAgY2FzZSAneic6CiAgICAgICAvKiBjb2Rpbmctc3lzdGVtIChub3QgaW5jbHVk aW5nIGVuZC1vZi1saW5lIGZvcm1hdCkgKi8KICAgICBjYXNlICdaJzoKQEAgLTMxMTQ1LDYgKzMx MjYwLDcgQEAgVGhleSBhcmUgc3RpbGwgbG9nZ2VkIHRvIHRoZSAqTWVzc2FnZXMqIGJ1ZmZlci4g ICovKTsKICAgREVGU1lNIChRb3ZlcnJpZGluZ190ZXJtaW5hbF9sb2NhbF9tYXAsICJvdmVycmlk aW5nLXRlcm1pbmFsLWxvY2FsLW1hcCIpOwogICBERUZTWU0gKFFvdmVycmlkaW5nX2xvY2FsX21h cCwgIm92ZXJyaWRpbmctbG9jYWwtbWFwIik7CiAgIERFRlNZTSAoUXdpbmRvd19zY3JvbGxfZnVu Y3Rpb25zLCAid2luZG93LXNjcm9sbC1mdW5jdGlvbnMiKTsKKyAgREVGU1lNIChRd2luZG93X3N0 YXJ0X2VuZF9ob29rLCAid2luZG93LXN0YXJ0LWVuZC1ob29rIik7CiAgIERFRlNZTSAoUXdpbmRv d190ZXh0X2NoYW5nZV9mdW5jdGlvbnMsICJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVuY3Rpb25zIik7 CiAgIERFRlNZTSAoUXJlZGlzcGxheV9lbmRfdHJpZ2dlcl9mdW5jdGlvbnMsICJyZWRpc3BsYXkt ZW5kLXRyaWdnZXItZnVuY3Rpb25zIik7CiAgIERFRlNZTSAoUWluaGliaXRfcG9pbnRfbW90aW9u X2hvb2tzLCAiaW5oaWJpdC1wb2ludC1tb3Rpb24taG9va3MiKTsKQEAgLTMxNDY2LDYgKzMxNTgy LDEzIEBAIGlzIHNjcm9sbGVkLiAgSXQgaXMgbm90IGRlc2lnbmVkIGZvciB0aGF0LCBhbmQgc3Vj aCB1c2UgcHJvYmFibHkgd29uJ3QKIHdvcmsuICAqLyk7CiAgIFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0 aW9ucyA9IFFuaWw7CiAKKyAgREVGVkFSX0xJU1AgKCJ3aW5kb3ctc3RhcnQtZW5kLWhvb2siLCBW d2luZG93X3N0YXJ0X2VuZF9ob29rLAorICAgIGRvYzogLyogQSBidWZlci1sb2NhbCBob29rIHVz ZWQgdG8gb2J0YWluIG5ldyBgd2luZG93LXN0YXJ0YCBhbmQgYHdpbmRvdy1lbmRgCitkdXJpbmcg cmVkaXNwbGF5LiAgVGhlIGZ1bmN0aW9uIGF0dGFjaGVkIHRvIHRoaXMgaG9vayBoYXMgdGhlIGZv bGxvd2luZyBhcmd1bWVudHM6CitXSU5ET1csIFdJTkRPVy1TVEFSVCwgV0lORE9XLUVORCwgUEJP TC1TVEFSVCwgUEVPTC1FTkQsIEZVTExZLVAuICAqLyk7CisgIFZ3aW5kb3dfc3RhcnRfZW5kX2hv b2sgPSBRbmlsOworICBGbWFrZV92YXJpYWJsZV9idWZmZXJfbG9jYWwgKFF3aW5kb3dfc3RhcnRf ZW5kX2hvb2spOworCiAgIERFRlZBUl9MSVNQICgid2luZG93LXRleHQtY2hhbmdlLWZ1bmN0aW9u cyIsCiAJICAgICAgIFZ3aW5kb3dfdGV4dF9jaGFuZ2VfZnVuY3Rpb25zLAogICAgIGRvYzogLyog RnVuY3Rpb25zIHRvIGNhbGwgaW4gcmVkaXNwbGF5IHdoZW4gdGV4dCBpbiB0aGUgd2luZG93IG1p Z2h0IGNoYW5nZS4gICovKTsK --Multipart_Tue_Feb__9_08:00:31_2016-1--
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 09 Feb 2016 17:50:01 +0000 Resent-Message-ID: <handler.22404.B22404.14550401645320 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.14550401645320 (code B ref 22404); Tue, 09 Feb 2016 17:50:01 +0000 Received: (at 22404) by debbugs.gnu.org; 9 Feb 2016 17:49:24 +0000 Received: from localhost ([127.0.0.1]:33819 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aTCPj-0001Nk-TN for submit <at> debbugs.gnu.org; Tue, 09 Feb 2016 12:49:24 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43915) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aTCPi-0001NX-E8 for 22404 <at> debbugs.gnu.org; Tue, 09 Feb 2016 12:49:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aTCPY-0001wH-GH for 22404 <at> debbugs.gnu.org; Tue, 09 Feb 2016 12:49:17 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.5 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45186) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aTCPY-0001wD-8s; Tue, 09 Feb 2016 12:49:12 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1317 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aTCPW-0004A6-2M; Tue, 09 Feb 2016 12:49:10 -0500 Date: Tue, 09 Feb 2016 19:48:56 +0200 Message-Id: <83twlhbwqf.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m237t1ho0u.wl%esq@HIDDEN> (message from Keith David Bershatsky on Tue, 09 Feb 2016 08:00:33 -0800) References: <m237t1ho0u.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.3 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.3 (-----) > Date: Tue, 09 Feb 2016 08:00:33 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org > > The issue mentioned in my last email was caused by `font-lock-mode` -- when I turn off `font-lock-mode`, there are a few situations where point remains partially visible at the bottom of the window and redisplay does not catch it -- e.g., when the line that point is on is about 90 percent visible at the bottom of the window. Did you define faces that change more than just the colors, like use a different font or bold/italic typefaces? If so, what you see might not be a bug: the original display is before JIT font-lock kicks in and changes the dimensions of the characters on display, so they are partially visible only after fontifications did their job.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 12 Feb 2016 00:15:01 +0000 Resent-Message-ID: <handler.22404.B22404.145523609427631 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145523609427631 (code B ref 22404); Fri, 12 Feb 2016 00:15:01 +0000 Received: (at 22404) by debbugs.gnu.org; 12 Feb 2016 00:14:54 +0000 Received: from localhost ([127.0.0.1]:37056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aU1Nu-0007Bb-0b for submit <at> debbugs.gnu.org; Thu, 11 Feb 2016 19:14:54 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:40137) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aU1Ns-0007BO-SG for 22404 <at> debbugs.gnu.org; Thu, 11 Feb 2016 19:14:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=sjScg8AUlnv5/QNR9KSGT/3LqqbfMsnFSyRgGuqxRIE=; b=3w5AXqvWcJqxNhebW/CZcG+alAhrFtDAA6tc7wXZwPw4FSRTIDo8LAuGXmrzxmeHReW/2kxQVTu6RrxyNay4ivI2fgka8bFfE0SAqcR3HnpC+Mz5C+0dyKfbC4ygyqEq; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:53251 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aU1Nk-0004Ts-DT; Thu, 11 Feb 2016 19:14:44 -0500 Date: Thu, 11 Feb 2016 16:14:44 -0800 Message-ID: <m2wpqa6ayz.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) Question, please: Is it a necessary evil that the `timer-idle-list` must always trigger a redisplay? I discovered today that the mere presence of anything attached to the `timer-idle-list` triggers a redisplay when the clock strikes midnight -- e.g., the following example triggers a redisplay after 10 seconds of inactivity: (run-with-idle-timer 10 'repeat 'ignore) I am working on tracking down the issue of why redisplay doesn't realize that my cursor is below the bottom of the window or partially visible following certain large yanks or custom paragraph-down functions. `font-lock-mode` was affecting my testing because I had 0.5 second idle timer for `jit-lock-context-fontify`. For example, my point stayed out of view until the 0.5 second buzzer went off, at which time it magically came back into view. The same thing will happen if I just have `'ignore` on an idle timer. I do not yet have enough information to submit a meaningful bug report regarding the cursor staying below the bottom of the screen, but I feel I'm making some progress now that I tracked down the magical appearance of my cursor due to the `timer-idle-list`. Thanks, Keith ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; At Tue, 09 Feb 2016 19:48:56 +0200, Eli Zaretskii wrote: > > > Date: Tue, 09 Feb 2016 08:00:33 -0800 > > From: Keith David Bershatsky <esq@HIDDEN> > > Cc: 22404 <at> debbugs.gnu.org > > > > The issue mentioned in my last email was caused by `font-lock-mode` -- when I turn off `font-lock-mode`, there are a few situations where point remains partially visible at the bottom of the window and redisplay does not catch it -- e.g., when the line that point is on is about 90 percent visible at the bottom of the window. > > Did you define faces that change more than just the colors, like use a > different font or bold/italic typefaces? If so, what you see might > not be a bug: the original display is before JIT font-lock kicks in > and changes the dimensions of the characters on display, so they are > partially visible only after fontifications did their job.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 12 Feb 2016 08:19:02 +0000 Resent-Message-ID: <handler.22404.B22404.145526513517552 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Reply-To: Eli Zaretskii <eliz@HIDDEN> Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145526513517552 (code B ref 22404); Fri, 12 Feb 2016 08:19:02 +0000 Received: (at 22404) by debbugs.gnu.org; 12 Feb 2016 08:18:55 +0000 Received: from localhost ([127.0.0.1]:37243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aU8wI-0004Z2-Sm for submit <at> debbugs.gnu.org; Fri, 12 Feb 2016 03:18:55 -0500 Received: from eggs.gnu.org ([208.118.235.92]:46893) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <eliz@HIDDEN>) id 1aU8wH-0004Yq-U6 for 22404 <at> debbugs.gnu.org; Fri, 12 Feb 2016 03:18:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aU8w8-00082m-Ty for 22404 <at> debbugs.gnu.org; Fri, 12 Feb 2016 03:18:48 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:43276) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>) id 1aU8w8-00082i-RZ; Fri, 12 Feb 2016 03:18:44 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1875 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <eliz@HIDDEN>) id 1aU8w8-0003xW-1m; Fri, 12 Feb 2016 03:18:44 -0500 Date: Fri, 12 Feb 2016 10:18:41 +0200 Message-Id: <83ziv6734u.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-reply-to: <m2wpqa6ayz.wl%esq@HIDDEN> (message from Keith David Bershatsky on Thu, 11 Feb 2016 16:14:44 -0800) References: <m2wpqa6ayz.wl%esq@HIDDEN> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.3 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.3 (-----) > Date: Thu, 11 Feb 2016 16:14:44 -0800 > From: Keith David Bershatsky <esq@HIDDEN> > Cc: 22404 <at> debbugs.gnu.org > > Question, please: Is it a necessary evil that the `timer-idle-list` must always trigger a redisplay? I don't think discussing this belongs to this bug report, so I will answer on emacs-devel instead.
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Tue, 16 Feb 2016 03:40:02 +0000 Resent-Message-ID: <handler.22404.B22404.145559399123107 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145559399123107 (code B ref 22404); Tue, 16 Feb 2016 03:40:02 +0000 Received: (at 22404) by debbugs.gnu.org; 16 Feb 2016 03:39:51 +0000 Received: from localhost ([127.0.0.1]:40638 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aVWUR-00060c-G6 for submit <at> debbugs.gnu.org; Mon, 15 Feb 2016 22:39:51 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:50303) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aVWUP-00060Q-68 for 22404 <at> debbugs.gnu.org; Mon, 15 Feb 2016 22:39:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=To:References:Message-Id:Cc:Date:In-Reply-To:From:Content-Type:Mime-Version:Subject; bh=tflRAE5y/MalzzTsDSEeTr/Vjx9fiMhd6S7j4L0UzIA=; b=6Adm3pHqB8FgUMB6y0VLQtSSXbRgSYK0gZkPglL++NQimuGWYPIWqosMLaZq6j7T5nN+xJaBGUh8flHAZtf0/+++e9MyhzCZMFpYEzJe4vm+IYbN5bfGEaRLfQ0Jq/6M; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:54751 helo=server.private) by cobb.liquidweb.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aVWUE-00013R-9p; Mon, 15 Feb 2016 22:39:39 -0500 Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: multipart/mixed; boundary=Apple-Mail-6-545409187 From: Keith David Bershatsky <esq@HIDDEN> In-Reply-To: <83ziv6734u.fsf@HIDDEN> Date: Mon, 15 Feb 2016 19:39:38 -0800 Message-Id: <697944A7-4633-48EA-910A-C280D1F3ACFF@HIDDEN> References: <m2wpqa6ayz.wl%esq@HIDDEN> <83ziv6734u.fsf@HIDDEN> X-Mailer: Apple Mail (2.1084) X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: authenticated_id: lawlist/from_h X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --Apple-Mail-6-545409187 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Here is the updated draft of the `window_scroll_functions_hook.diff`. A = copy of this same patch was attached to 22637 today, but I thought it = should be included here also with the 22404. Keith --Apple-Mail-6-545409187 Content-Disposition: attachment; filename=window_start_end_hook.diff Content-Type: application/octet-stream; name="window_start_end_hook.diff" Content-Transfer-Encoding: quoted-printable diff=20--git=20a/src/keyboard.c=20b/src/keyboard.c=0Aindex=20= 3431cd8..3d8d54f=20100644=0A---=20a/src/keyboard.c=0A+++=20= b/src/keyboard.c=0A@@=20-1233,6=20+1233,15=20@@=20static=20int=20= read_key_sequence=20(Lisp_Object=20*,=20int,=20Lisp_Object,=0A=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20bool,=20bool,=20bool,=20bool);=0A=20static=20void=20= adjust_point_for_property=20(ptrdiff_t,=20bool);=0A=20=0A+static=20void=0A= +set_window_start_end_hook=20(void)=0A+{=0A+=20=20Lisp_Object=20window=20= =3D=20(selected_window);=0A+=20=20struct=20window=20*w=20=3D=20= decode_live_window=20(window);=0A+=20=20w->window_start_end_hook_force=20= =3D=20true;=0A+=20=20w->window_start_end_hook_pending=20=3D=20true;=0A+}=0A= +=0A=20Lisp_Object=0A=20command_loop_1=20(void)=0A=20{=0A@@=20-1258,6=20= +1267,8=20@@=20command_loop_1=20(void)=0A=20=20=20=20=20=20=20if=20= (!NILP=20(Vpost_command_hook)=20&&=20!NILP=20(Vrun_hooks))=0A=20=09= safe_run_hooks=20(Qpost_command_hook);=0A=20=0A+=20=20=20=20=20=20= set_window_start_end_hook=20();=0A+=0A=20=20=20=20=20=20=20/*=20If=20= displaying=20a=20message,=20resize=20the=20echo=20area=20window=20to=20= fit=0A=20=09=20that=20message's=20size=20exactly.=20=20*/=0A=20=20=20=20=20= =20=20if=20(!NILP=20(echo_area_buffer[0]))=0A@@=20-1474,6=20+1485,8=20@@=20= command_loop_1=20(void)=0A=20=0A=20=20=20=20=20=20=20safe_run_hooks=20= (Qpost_command_hook);=0A=20=0A+=20=20=20=20=20=20= set_window_start_end_hook=20();=0A+=0A=20=20=20=20=20=20=20/*=20If=20= displaying=20a=20message,=20resize=20the=20echo=20area=20window=20to=20= fit=0A=20=09=20that=20message's=20size=20exactly.=20=20*/=0A=20=20=20=20=20= =20=20if=20(!NILP=20(echo_area_buffer[0]))=0Adiff=20--git=20a/src/lisp.h=20= b/src/lisp.h=0Aindex=208aa2861..0962306=20100644=0A---=20a/src/lisp.h=0A= +++=20b/src/lisp.h=0A@@=20-3913,6=20+3913,7=20@@=20extern=20void=20= init_eval_once=20(void);=0A=20extern=20Lisp_Object=20safe_call=20= (ptrdiff_t,=20Lisp_Object,=20...);=0A=20extern=20Lisp_Object=20= safe_call1=20(Lisp_Object,=20Lisp_Object);=0A=20extern=20Lisp_Object=20= safe_call2=20(Lisp_Object,=20Lisp_Object,=20Lisp_Object);=0A+extern=20= Lisp_Object=20safe_call7=20(Lisp_Object,=20Lisp_Object,=20Lisp_Object,=20= Lisp_Object,=20Lisp_Object,=20Lisp_Object,=20Lisp_Object,=20= Lisp_Object);=0A=20extern=20void=20init_eval=20(void);=0A=20extern=20= void=20syms_of_eval=20(void);=0A=20extern=20void=20unwind_body=20= (Lisp_Object);=0Adiff=20--git=20a/src/window.h=20b/src/window.h=0Aindex=20= c29207d..3156927=20100644=0A---=20a/src/window.h=0A+++=20b/src/window.h=0A= @@=20-348,6=20+348,12=20@@=20struct=20window=0A=20=20=20=20=20=20=20=20= Vwindow_scroll_functions;=20also=20by=20Frecenter=20with=20argument.=20=20= */=0A=20=20=20=20=20bool_bf=20optional_new_start=20:=201;=0A=20=0A+=20=20= =20=20/*=20True=20means=20force=20a=20call=20to=20= Vwindow_start_end_hook.=20=20*/=0A+=20=20=20=20bool_bf=20= window_start_end_hook_force=20:=201;=0A+=0A+=20=20=20=20/*=20True=20= means=20the=20hook=20has=20not=20yet=20run=20with=20point=20fully=20= visible.=20=20*/=0A+=20=20=20=20bool_bf=20window_start_end_hook_pending=20= :=201;=0A+=0A=20=20=20=20=20/*=20True=20means=20the=20cursor=20is=20= currently=20displayed.=20=20This=20can=20be=0A=20=20=20=20=20=20=20=20= set=20to=20zero=20by=20functions=20overpainting=20the=20cursor=20image.=20= =20*/=0A=20=20=20=20=20bool_bf=20phys_cursor_on_p=20:=201;=0Adiff=20= --git=20a/src/xdisp.c=20b/src/xdisp.c=0Aindex=20fed5879..d3e102d=20= 100644=0A---=20a/src/xdisp.c=0A+++=20b/src/xdisp.c=0A@@=20-2618,6=20= +2618,13=20@@=20safe_call2=20(Lisp_Object=20fn,=20Lisp_Object=20arg1,=20= Lisp_Object=20arg2)=0A=20=20=20return=20safe_call=20(3,=20fn,=20arg1,=20= arg2);=0A=20}=0A=20=0A+/*=20=20This=20is=20for=20the=20= `window_start_end_hook'.=20=20Call=20function=20FN=20with=20seven=20= arguments.=0A+=20=20=20=20Return=20the=20result=20or=20nil=20if=20= something=20went=20wrong.=20=20*/=0A+Lisp_Object=0A+safe_call7=20= (Lisp_Object=20fn,=20Lisp_Object=20arg1,=20Lisp_Object=20arg2,=20= Lisp_Object=20arg3,=20Lisp_Object=20arg4,=20Lisp_Object=20arg5,=20= Lisp_Object=20arg6,=20Lisp_Object=20arg7)=0A+{=0A+=20=20return=20= safe_call=20(8,=20fn,=20arg1,=20arg2,=20arg3,=20arg4,=20arg5,=20arg6,=20= arg7);=0A+}=0A=20=0A=20=0C=0A=20= /***********************************************************************=0A= @@=20-13417,6=20+13424,68=20@@=20do=20{=20if=20(!=20= polling_stopped_here)=20stop_polling=20();=09\=0A=20do=20{=20if=20= (polling_stopped_here)=20start_polling=20();=09\=0A=20=20=20=20=20=20=20=20= polling_stopped_here=20=3D=20false;=20}=20while=20(false)=0A=20=0A= +static=20void=0A+run_window_start_end_hook=20(struct=20text_pos=20= startp,=20struct=20window=20*w,=20Lisp_Object=20window,=20struct=20it=20= it,=20char=20*string)=0A+{=0A+=20=20void=20*itdata=20=3D=20NULL;=0A+=20=20= bool=20fully_p=20=3D=20false;=0A+=20=20EMACS_INT=20posint=20=3D=20PT;=0A= +=20=20int=20x,=20y,=20rtop,=20rbot,=20rowh,=20vpos,=20startp_integer,=20= endp,=20pbol_startp,=20peol_endp;=0A+=20=20startp_integer=20=3D=20= CHARPOS=20(startp);=0A+=20=20struct=20buffer=20*buf;=0A+=20=20buf=20=3D=20= XBUFFER=20(w->contents);=0A+=20=20if=20(!NILP=20(Flocal_variable_p=20= (Qwindow_start_end_hook,=20Fwindow_buffer=20(window)))=0A+=20=20=20=20=20= =20&&=20w->window_start_end_hook_pending)=0A+=20=20=20=20{=0A+=20=20=20=20= =20=20if=20((posint=20>=3D=20CHARPOS=20(startp)=20&&=20posint=20<=3D=20= BUF_ZV=20(buf))=0A+=20=20=20=20=20=20=20=20=20=20&&=20CHARPOS=20(startp)=20= >=3D=20BUF_BEGV=20(buf)=0A+=20=20=20=20=20=20=20=20=20=20&&=20CHARPOS=20= (startp)=20<=3D=20BUF_ZV=20(buf)=0A+=20=20=20=20=20=20=20=20=20=20&&=20= pos_visible_p=20(w,=20posint,=20&x,=20&y,=20&rtop,=20&rbot,=20&rowh,=20= &vpos))=0A+=20=20=20=20=20=20=20=20fully_p=20=3D=20!rtop=20&&=20!rbot;=0A= +=20=20=20=20=20=20if=20(fully_p)=0A+=20=20=20=20=20=20=20=20{=0A+=20=20=20= =20=20=20=20=20=20=20CLIP_TEXT_POS_FROM_MARKER=20(startp,=20w->start);=0A= +=20=20=20=20=20=20=20=20=20=20itdata=20=3D=20bidi_shelve_cache=20();=0A= +=20=20=20=20=20=20=20=20=20=20start_display=20(&it,=20w,=20startp);=0A+=20= =20=20=20=20=20=20=20=20=20move_it_vertically=20(&it,=20= window_box_height=20(w));=0A+=20=20=20=20=20=20=20=20=20=20if=20= (it.current_y=20<=20it.last_visible_y)=0A+=20=20=20=20=20=20=20=20=20=20=20= =20move_it_past_eol=20(&it);=0A+=20=20=20=20=20=20=20=20=20=20endp=20=3D=20= (IT_CHARPOS=20(it));=0A+=20=20=20=20=20=20=20=20=20=20= bidi_unshelve_cache=20(itdata,=20false);=0A+=20=20=20=20=20=20=20=20=20=20= SET_PT=20(startp_integer);=0A+=20=20=20=20=20=20=20=20=20=20pbol_startp=20= =3D=20XINT=20(Fline_beginning_position=20(Qnil));=0A+=20=20=20=20=20=20=20= =20=20=20SET_PT=20(endp);=0A+=20=20=20=20=20=20=20=20=20=20peol_endp=20=3D= =20XINT=20(Fline_end_position=20(Qnil));=0A+=20=20=20=20=20=20=20=20=20=20= SET_PT=20(posint);=0A+#ifdef=20GLYPH_DEBUG=0A+=20=20=20=20=20=20=20=20=20= =20/*=20See=20the=20doc-string=20for=20`pos-visible-in-window-p'.=20=20= */=0A+=20=20=20=20=20=20=20=20=20=20debug_method_add=20(w,=20"%s=20--=20= x:=20%d=20|=20y:=20%d=20|=20startp:=20%d=20|=20endp:=20%d=20|=20= pbol_startp:=20%d=20|=20peol_endp:=20%d",=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20string,=20= x,=20y,=20startp_integer,=20endp,=20pbol_startp,=20peol_endp);=0A+#endif=0A= +=20=20=20=20=20=20=20=20=20=20/*=20=20Reset=20the=20flag=20_before_=20= calling=20Lisp,=20not=20after,=20so=20that=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20if=20Lisp=20does=20signal=20an=20error,=20the=20flag=20= will=20be=20reset,=20and=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= won't=20cause=20the=20hook=20to=20be=20called=20ad=20nauseam.=20=20*/=0A= +=20=20=20=20=20=20=20=20=20=20w->window_start_end_hook_pending=20=3D=20= false;=0A+=20=20=20=20=20=20=20=20=20=20/*=20=20When=20calling=20Lisp=20= from=20redisplay,=20always=20use=20safe_call,=20to=20be=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20protected=20against=20errors=20signaled=20by=20= that=20Lisp.=20=20*/=0A+=20=20=20=20=20=20=20=20=20=20safe_call7=20= (Qrun_hook_with_args,=20Qwindow_start_end_hook,=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20window,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= make_number=20(startp_integer),=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20make_number=20(endp),=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= make_number=20(pbol_startp),=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= make_number=20(peol_endp),=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= fully_p=20?=20Qt=20:=20Qnil);=0A+=20=20=20=20=20=20=20=20}=0A+=20=20=20=20= =20=20=20=20else=0A+=20=20=20=20=20=20=20=20=20=20{=0A+#ifdef=20= GLYPH_DEBUG=0A+=20=20=20=20=20=20=20=20=20=20=20=20/*=20See=20the=20= doc-string=20for=20`pos-visible-in-window-p'.=20=20*/=0A+=20=20=20=20=20=20= =20=20=20=20=20=20debug_method_add=20(w,=20"%s=20--=20x:=20%d=20|=20y:=20= %d=20|=20rtop:=20%d=20|=20rbot=20%d=20|=20rowh:=20%d=20|=20vpos:=20%d",=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20string,=20x,=20y,=20rtop,=20rbot,=20rowh,=20= vpos);=0A+#endif=0A+=20=20=20=20=20=20=20=20=20=20}=0A+=20=20=20=20}=0A= +}=0A=20=0A=20/*=20Perhaps=20in=20the=20future=20avoid=20recentering=20= windows=20if=20it=0A=20=20=20=20is=20not=20necessary;=20currently=20that=20= causes=20some=20problems.=20=20*/=0A@@=20-13714,6=20+13783,7=20@@=20= redisplay_internal=20(void)=0A=20=20=20=20=20=20=20&&=20match_p=0A=20=20=20= =20=20=20=20&&=20!w->force_start=0A=20=20=20=20=20=20=20&&=20= !w->optional_new_start=0A+=20=20=20=20=20=20&&=20= !w->window_start_end_hook_force=0A=20=20=20=20=20=20=20/*=20Point=20must=20= be=20on=20the=20line=20that=20we=20have=20info=20recorded=20about.=20=20= */=0A=20=20=20=20=20=20=20&&=20PT=20>=3D=20CHARPOS=20(tlbufpos)=0A=20=20=20= =20=20=20=20&&=20PT=20<=3D=20Z=20-=20CHARPOS=20(tlendpos)=0A@@=20= -15418,6=20+15488,8=20@@=20try_scrolling=20(Lisp_Object=20window,=20bool=20= just_this_one_p,=0A=20=20=20/*=20Run=20window=20scroll=20functions.=20=20= */=0A=20=20=20startp=20=3D=20run_window_scroll_functions=20(window,=20= startp);=0A=20=0A+=20=20run_window_start_end_hook=20(startp,=20w,=20= window,=20it,=20"try_scrolling");=0A+=0A=20=20=20/*=20Display=20the=20= window.=20=20Give=20up=20if=20new=20fonts=20are=20loaded,=20or=20if=20= point=0A=20=20=20=20=20=20doesn't=20appear.=20=20*/=0A=20=20=20if=20= (!try_window=20(window,=20startp,=200))=0A@@=20-16082,6=20+16154,7=20@@=20= redisplay_window=20(Lisp_Object=20window,=20bool=20just_this_one_p)=0A=20= =20=20bool=20last_line_misfit=20=3D=20false;=0A=20=20=20ptrdiff_t=20= beg_unchanged,=20end_unchanged;=0A=20=20=20int=20frame_line_height;=0A+=20= =20bool=20window_start_end_hook_suppress_wsf=20=3D=20false;=0A=20=0A=20=20= =20SET_TEXT_POS=20(lpoint,=20PT,=20PT_BYTE);=0A=20=20=20opoint=20=3D=20= lpoint;=0A@@=20-16272,13=20+16345,16=20@@=20redisplay_window=20= (Lisp_Object=20window,=20bool=20just_this_one_p)=0A=20=0A=20=20=20/*=20= If=20someone=20specified=20a=20new=20starting=20point=20but=20did=20not=20= insist,=0A=20=20=20=20=20=20check=20whether=20it=20can=20be=20used.=20=20= */=0A-=20=20if=20((w->optional_new_start=20||=20window_frozen_p=20(w))=0A= +=20=20if=20((w->optional_new_start=20||=20= w->window_start_end_hook_force=20||=20window_frozen_p=20(w))=0A=20=20=20=20= =20=20=20&&=20CHARPOS=20(startp)=20>=3D=20BEGV=0A=20=20=20=20=20=20=20&&=20= CHARPOS=20(startp)=20<=3D=20ZV)=0A=20=20=20=20=20{=0A+=0A+=20=20=20=20=20= =20if=20(w->window_start_end_hook_force=20&&=20!w->optional_new_start=20= &&=20!window_frozen_p=20(w)=20&&=20!w->force_start)=0A+=20=20=20=20=20=20= =20=20window_start_end_hook_suppress_wsf=20=3D=20true;=0A+=0A=20=20=20=20= =20=20=20ptrdiff_t=20it_charpos;=0A=20=0A-=20=20=20=20=20=20= w->optional_new_start=20=3D=20false;=0A=20=20=20=20=20=20=20= start_display=20(&it,=20w,=20startp);=0A=20=20=20=20=20=20=20move_it_to=20= (&it,=20PT,=200,=20it.last_visible_y,=20-1,=0A=20=09=09=20=20MOVE_TO_POS=20= |=20MOVE_TO_X=20|=20MOVE_TO_Y);=0A@@=20-16299,14=20+16375,28=20@@=20= redisplay_window=20(Lisp_Object=20window,=20bool=20just_this_one_p)=0A=20= =09=20=20=20=20w->force_start=20=3D=20true;=0A=20#ifdef=20GLYPH_DEBUG=0A=20= =09=20=20if=20(w->force_start)=0A-=09=20=20=20=20{=0A-=09=20=20=20=20=20=20= if=20(window_frozen_p=20(w))=0A-=09=09debug_method_add=20(w,=20"set=20= force_start=20from=20frozen=20window=20start");=0A-=09=20=20=20=20=20=20= else=0A-=09=09debug_method_add=20(w,=20"set=20force_start=20from=20= optional_new_start");=0A-=09=20=20=20=20}=0A+=20=20=20=20{=0A+=20=20=20=20= =20=20if=20(window_frozen_p=20(w))=0A+=20=20=20=20=20=20=20=20{=0A+=20=20= =20=20=20=20=20=20debug_method_add=20(w,=20"set=20force_start=20from=20= frozen=20window=20start");=0A+=20=20=20=20=20=20}=0A+=20=20=20=20=20=20= else=20if=20(w->optional_new_start)=0A+=20=20=20=20=20=20=20=20{=0A+=20=20= =20=20=20=20=20=20debug_method_add=20(w,=20"set=20force_start=20from=20= optional_new_start");=0A+=20=20=20=20=20=20}=0A+=20=20=20=20=20=20else=20= if=20(w->window_start_end_hook_force)=0A+=20=20=20=20=20=20=20=20{=0A+=20= =20=20=20=20=20=20=20debug_method_add=20(w,=20"set=20force_start=20from=20= window_start_end_hook_force");=0A+=20=20=20=20=20=20}=0A+=20=20=20=20=20=20= else=0A+=20=20=20=20=20=20=20=20{=0A+=20=20=20=20=20=20=20=20= debug_method_add=20(w,=20"This=20situation=20is=20not=20yet=20= contemplated.");=0A+=20=20=20=20=20=20}=0A+=20=20=20=20}=0A=20#endif=0A=20= =09}=0A+=20=20=20=20=20=20w->optional_new_start=20=3D=20false;=0A+=20=20=20= =20=20=20w->window_start_end_hook_force=20=3D=20false;=0A=20=20=20=20=20= }=0A=20=0A=20=20force_start:=0A@@=20-16334,11=20+16424,18=20@@=20= redisplay_window=20(Lisp_Object=20window,=20bool=20just_this_one_p)=0A=20= =09=20than=20to=20get=20into=20an=20infinite=20loop=20calling=20the=20= hook=20functions=0A=20=09=20and=20having=20them=20get=20more=20errors.=20= =20*/=0A=20=20=20=20=20=20=20if=20(!update_mode_line=0A-=09=20=20||=20!=20= NILP=20(Vwindow_scroll_functions))=0A+=09=20=20||=20!=20NILP=20= (Vwindow_scroll_functions)=0A+=09=20=20||=20!=20NILP=20= (Vwindow_start_end_hook))=0A=20=09{=0A=20=09=20=20update_mode_line=20=3D=20= true;=0A=20=09=20=20w->update_mode_line=20=3D=20true;=0A-=09=20=20startp=20= =3D=20run_window_scroll_functions=20(window,=20startp);=0A+=0A+=20=20/*=20= Run=20window=20scroll=20functions.=20=20*/=0A+=20=20if=20= (!window_start_end_hook_suppress_wsf)=0A+=20=20=20=20startp=20=3D=20= run_window_scroll_functions=20(window,=20startp);=0A+=0A+=20=20= run_window_start_end_hook=20(startp,=20w,=20window,=20it,=20= "redisplay_window=20(force_start)");=0A+=0A=20=09}=0A=20=0A=20=20=20=20=20= =20=20if=20(CHARPOS=20(startp)=20<=20BEGV)=0A@@=20-16606,6=20+16703,7=20= @@=20redisplay_window=20(Lisp_Object=20window,=20bool=20just_this_one_p)=0A= =20=09=20=20=20=20=20because=20a=20window=20scroll=20function=20can=20= have=20changed=20the=0A=20=09=20=20=20=20=20buffer.=20=20*/=0A=20=09=20=20= ||=20!NILP=20(Vwindow_scroll_functions)=0A+=09=20=20||=20!NILP=20= (Vwindow_start_end_hook)=0A=20=09=20=20||=20MINI_WINDOW_P=20(w)=0A=20=09=20= =20||=20!(used_current_matrix_p=0A=20=09=20=20=20=20=20=20=20=3D=20= try_window_reusing_current_matrix=20(w)))=0A@@=20-16803,6=20+16901,8=20= @@=20redisplay_window=20(Lisp_Object=20window,=20bool=20just_this_one_p)=0A= =20=20=20/*=20Run=20scroll=20hooks.=20=20*/=0A=20=20=20startp=20=3D=20= run_window_scroll_functions=20(window,=20it.current.pos);=0A=20=0A+=20=20= run_window_start_end_hook=20(startp,=20w,=20window,=20it,=20= "redisplay_window=20(recenter)");=0A+=0A=20=20=20/*=20Redisplay=20the=20= window.=20=20*/=0A=20=20=20bool=20use_desired_matrix=20=3D=20false;=0A=20= =20=20if=20(!current_matrix_up_to_date_p=0A@@=20-16811,6=20+16911,7=20@@=20= redisplay_window=20(Lisp_Object=20window,=20bool=20just_this_one_p)=0A=20= =20=20=20=20=20=20/*=20Don't=20use=20try_window_reusing_current_matrix=20= in=20this=20case=0A=20=09=20because=20it=20can=20have=20changed=20the=20= buffer.=20=20*/=0A=20=20=20=20=20=20=20||=20!NILP=20= (Vwindow_scroll_functions)=0A+=20=20=20=20=20=20||=20!NILP=20= (Vwindow_start_end_hook)=0A=20=20=20=20=20=20=20||=20!just_this_one_p=0A=20= =20=20=20=20=20=20||=20MINI_WINDOW_P=20(w)=0A=20=20=20=20=20=20=20||=20= !(used_current_matrix_p=0A@@=20-16931,7=20+17032,17=20@@=20= redisplay_window=20(Lisp_Object=20window,=20bool=20just_this_one_p)=0A=20= =09=20=20clear_glyph_matrix=20(w->desired_matrix);=0A=20=09=20=20if=20(1=20= =3D=3D=20try_window=20(window,=20it.current.pos,=0A=20=09=09=09=20=20=20=20= =20=20=20TRY_WINDOW_CHECK_MARGINS))=0A-=09=20=20=20=20goto=20done;=0A+=20= =20=20=20{=0A+=20=20=20=20=20=20if=20(!NILP=20(Flocal_variable_p=20= (Qwindow_start_end_hook,=20Fwindow_buffer=20(window)))=0A+=20=20=20=20=20= =20=20=20=20=20&&=20w->window_start_end_hook_pending)=0A+=20=20=20=20=20=20= =20=20{=0A+=20=20=20=20=20=20=20=20=20=20run_window_start_end_hook=20= (it.current.pos,=20w,=20window,=20it,=20"redisplay_window=20= (post-recenter)");=0A+=20=20=20=20=20=20=20=20=20=20clear_glyph_matrix=20= (w->desired_matrix);=0A+=20=20=20=20=20=20=20=20=20=20try_window=20= (window,=20it.current.pos,=200);=0A+=20=20=20=20=20=20=20=20}=0A+=20=20=20= =20=20=20goto=20done;=0A+=20=20=20=20}=0A+=0A=20=09}=0A=20=0A=20=20=20=20= =20=20=20/*=20If=20centering=20point=20failed=20to=20make=20the=20whole=20= line=20visible,=0A@@=20-23686,6=20+23797,20=20@@=20decode_mode_spec=20= (struct=20window=20*w,=20register=20int=20c,=20int=20field_width,=0A=20=09= =20=20return=20"@";=0A=20=20=20=20=20=20=20}=0A=20=0A+=20=20=20=20case=20= 'w':=0A+=20=20=20=20=20=20{=0A+=20=20ptrdiff_t=20window_start=20=3D=20= marker_position=20(w->start);=0A+=20=20pint2str=20(decode_mode_spec_buf,=20= width,=20window_start);=0A+=20=20return=20decode_mode_spec_buf;=0A+=20=20= =20=20=20=20}=0A+=0A+=20=20=20=20case=20'W':=0A+=20=20=20=20=20=20{=0A+=20= =20ptrdiff_t=20window_end=20=3D=20BUF_Z=20(b)=20-=20w->window_end_pos;=0A= +=20=20pint2str=20(decode_mode_spec_buf,=20width,=20window_end);=0A+=20=20= return=20decode_mode_spec_buf;=0A+=20=20=20=20=20=20}=0A+=0A=20=20=20=20=20= case=20'z':=0A=20=20=20=20=20=20=20/*=20coding-system=20(not=20including=20= end-of-line=20format)=20*/=0A=20=20=20=20=20case=20'Z':=0A@@=20-31151,6=20= +31276,7=20@@=20They=20are=20still=20logged=20to=20the=20*Messages*=20= buffer.=20=20*/);=0A=20=20=20DEFSYM=20(Qoverriding_terminal_local_map,=20= "overriding-terminal-local-map");=0A=20=20=20DEFSYM=20= (Qoverriding_local_map,=20"overriding-local-map");=0A=20=20=20DEFSYM=20= (Qwindow_scroll_functions,=20"window-scroll-functions");=0A+=20=20DEFSYM=20= (Qwindow_start_end_hook,=20"window-start-end-hook");=0A=20=20=20DEFSYM=20= (Qwindow_text_change_functions,=20"window-text-change-functions");=0A=20=20= =20DEFSYM=20(Qredisplay_end_trigger_functions,=20= "redisplay-end-trigger-functions");=0A=20=20=20DEFSYM=20= (Qinhibit_point_motion_hooks,=20"inhibit-point-motion-hooks");=0A@@=20= -31472,6=20+31598,13=20@@=20is=20scrolled.=20=20It=20is=20not=20designed=20= for=20that,=20and=20such=20use=20probably=20won't=0A=20work.=20=20*/);=0A= =20=20=20Vwindow_scroll_functions=20=3D=20Qnil;=0A=20=0A+=20=20= DEFVAR_LISP=20("window-start-end-hook",=20Vwindow_start_end_hook,=0A+=20=20= =20=20doc:=20/*=20A=20bufer-local=20hook=20used=20to=20obtain=20new=20= `window-start`=20and=20`window-end`=0A+during=20redisplay.=20=20The=20= function=20attached=20to=20this=20hook=20has=20the=20following=20= arguments:=0A+WINDOW,=20WINDOW-START,=20WINDOW-END,=20PBOL-START,=20= PEOL-END,=20FULLY-P.=20=20*/);=0A+=20=20Vwindow_start_end_hook=20=3D=20= Qnil;=0A+=20=20Fmake_variable_buffer_local=20(Qwindow_start_end_hook);=0A= +=0A=20=20=20DEFVAR_LISP=20("window-text-change-functions",=0A=20=09=20=20= =20=20=20=20=20Vwindow_text_change_functions,=0A=20=20=20=20=20doc:=20/*=20= Functions=20to=20call=20in=20redisplay=20when=20text=20in=20the=20window=20= might=20change.=20=20*/);=0A= --Apple-Mail-6-545409187--
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Mon, 22 Feb 2016 06:06:02 +0000 Resent-Message-ID: <handler.22404.B22404.145612112712517 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145612112712517 (code B ref 22404); Mon, 22 Feb 2016 06:06:02 +0000 Received: (at 22404) by debbugs.gnu.org; 22 Feb 2016 06:05:27 +0000 Received: from localhost ([127.0.0.1]:36768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aXjcc-0003Fp-Vr for submit <at> debbugs.gnu.org; Mon, 22 Feb 2016 01:05:27 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:54614) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aXjcb-0003Fd-7v for 22404 <at> debbugs.gnu.org; Mon, 22 Feb 2016 01:05:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=HgyCEsUQo+tWmjxdzpkWF/iekyWNbE1xn1UGvjJrCgQ=; b=zVPAVxEDgVqUfy7IFWn6sIQbBQyq65ir8mE1pnbYCegKa3Hf81pHkOWbUMWkRNXNt27bTSB1ktc5sVUtChv84S4KxywpScynjGlMczUkSZYJPtOXoTOkXlEMgJwPmMFN; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:54926 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aXjcS-00067L-NV; Mon, 22 Feb 2016 01:05:17 -0500 Date: Sun, 21 Feb 2016 22:05:17 -0800 Message-ID: <m2mvqtb7qa.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Sun_Feb_21_22:05:15_2016-1" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --Multipart_Sun_Feb_21_22:05:15_2016-1 Content-Type: text/plain; charset=US-ASCII Here is the latest draft of the window-start-end-hook. This is probably about as far as I need to go, unless I discover bugs in the future. It appears to be working well. Thanks. Keith --Multipart_Sun_Feb_21_22:05:15_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="window_start_end_hook.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9idWZmZXIuYyBiL3NyYy9idWZmZXIuYwppbmRleCA5OGI2MWMzLi5i YTM3Y2JjIDEwMDY0NAotLS0gYS9zcmMvYnVmZmVyLmMKKysrIGIvc3JjL2J1ZmZlci5jCkBAIC01 MDczLDYgKzUwNzMsNyBAQCBpbml0X2J1ZmZlcl9vbmNlICh2b2lkKQogICBYU0VURkFTVElOVCAo QlZBUiAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgZGlzcGxheV90YWJsZSksIGlkeCk7ICsraWR4Owog ICBYU0VURkFTVElOVCAoQlZBUiAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgc3ludGF4X3RhYmxlKSwg aWR4KTsgKytpZHg7CiAgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2xvY2FsX2ZsYWdzLCBj YWNoZV9sb25nX3NjYW5zKSwgaWR4KTsgKytpZHg7CisgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVm ZmVyX2xvY2FsX2ZsYWdzLCB3aW5kb3dfc3RhcnRfZW5kX2hvb2spLCBpZHgpOyArK2lkeDsKICAg WFNFVEZBU1RJTlQgKEJWQVIgKCZidWZmZXJfbG9jYWxfZmxhZ3MsIGNhdGVnb3J5X3RhYmxlKSwg aWR4KTsgKytpZHg7CiAgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2xvY2FsX2ZsYWdzLCBi aWRpX2Rpc3BsYXlfcmVvcmRlcmluZyksIGlkeCk7ICsraWR4OwogICBYU0VURkFTVElOVCAoQlZB UiAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgYmlkaV9wYXJhZ3JhcGhfZGlyZWN0aW9uKSwgaWR4KTsg KytpZHg7CkBAIC01MTY2LDYgKzUxNjcsNyBAQCBpbml0X2J1ZmZlcl9vbmNlICh2b2lkKQogICBY U0VURkFTVElOVCAoQlZBUiAoJmJ1ZmZlcl9kZWZhdWx0cywgZmlsbF9jb2x1bW4pLCA3MCk7CiAg IFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2RlZmF1bHRzLCBsZWZ0X21hcmdpbiksIDApOwog ICBic2V0X2NhY2hlX2xvbmdfc2NhbnMgKCZidWZmZXJfZGVmYXVsdHMsIFF0KTsKKyAgYnNldF93 aW5kb3dfc3RhcnRfZW5kX2hvb2sgKCZidWZmZXJfZGVmYXVsdHMsIFFuaWwpOwogICBic2V0X2Zp bGVfdHJ1ZW5hbWUgKCZidWZmZXJfZGVmYXVsdHMsIFFuaWwpOwogICBYU0VURkFTVElOVCAoQlZB UiAoJmJ1ZmZlcl9kZWZhdWx0cywgZGlzcGxheV9jb3VudCksIDApOwogICBYU0VURkFTVElOVCAo QlZBUiAoJmJ1ZmZlcl9kZWZhdWx0cywgbGVmdF9tYXJnaW5fY29scyksIDApOwpAQCAtNTM3OSw2 ICs1MzgxLDggQEAgc3ltc19vZl9idWZmZXIgKHZvaWQpCiAgIHN0YXRpY3BybyAoJlFTRnVuZGFt ZW50YWwpOwogICBzdGF0aWNwcm8gKCZWYnVmZmVyX2FsaXN0KTsKIAorICBERUZTWU0gKFF3aW5k b3dfc3RhcnRfZW5kX2hvb2ssICJ3aW5kb3ctc3RhcnQtZW5kLWhvb2siKTsKKwogICBERUZTWU0g KFFjaG9pY2UsICJjaG9pY2UiKTsKICAgREVGU1lNIChRbGVmdCwgImxlZnQiKTsKICAgREVGU1lN IChRcmlnaHQsICJyaWdodCIpOwpAQCAtNjE0OCw2ICs2MTUyLDExIEBAIG1haW50YWluZWQgaW50 ZXJuYWxseSBieSB0aGUgRW1hY3MgcHJpbWl0aXZlcy4gIEVuYWJsaW5nIG9yIGRpc2FibGluZwog dGhlIGNhY2hlIHNob3VsZCBub3QgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiBhbnkgb2YgdGhlIG1v dGlvbgogZnVuY3Rpb25zOyBpdCBzaG91bGQgb25seSBhZmZlY3QgdGhlaXIgcGVyZm9ybWFuY2Uu ICAqLyk7CiAKKyAgREVGVkFSX1BFUl9CVUZGRVIgKCJ3aW5kb3ctc3RhcnQtZW5kLWhvb2siLCAm QlZBUiAoY3VycmVudF9idWZmZXIsIHdpbmRvd19zdGFydF9lbmRfaG9vayksIFFuaWwsCisgICAg ZG9jOiAvKiBBIGJ1ZmVyLWxvY2FsIGhvb2sgdXNlZCB0byBvYnRhaW4gbmV3IGB3aW5kb3ctc3Rh cnRgIGFuZCBgd2luZG93LWVuZGAKK2R1cmluZyByZWRpc3BsYXkuICBUaGUgZnVuY3Rpb24gYXR0 YWNoZWQgdG8gdGhpcyBob29rIGhhcyB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czoKK1dJTkRPVywg V0lORE9XLVNUQVJULCBXSU5ET1ctRU5ELCBQQk9MLVNUQVJULCBQRU9MLUVORCwgRlVMTFktUC4g ICovKTsKKwogICBERUZWQVJfUEVSX0JVRkZFUiAoInBvaW50LWJlZm9yZS1zY3JvbGwiLCAmQlZB UiAoY3VycmVudF9idWZmZXIsIHBvaW50X2JlZm9yZV9zY3JvbGwpLCBRbmlsLAogCQkgICAgIGRv YzogLyogVmFsdWUgb2YgcG9pbnQgYmVmb3JlIHRoZSBsYXN0IHNlcmllcyBvZiBzY3JvbGwgb3Bl cmF0aW9ucywgb3IgbmlsLiAgKi8pOwogCmRpZmYgLS1naXQgYS9zcmMvYnVmZmVyLmggYi9zcmMv YnVmZmVyLmgKaW5kZXggNTc4M2JmYi4uMGUxMzI0NyAxMDA2NDQKLS0tIGEvc3JjL2J1ZmZlci5o CisrKyBiL3NyYy9idWZmZXIuaApAQCAtNjQzLDYgKzY0Myw5IEBAIHN0cnVjdCBidWZmZXIKICAg ICAgY2FjaGUgYXJlIGVuYWJsZWQuICBTZWUgc2VhcmNoLmMsIGluZGVudC5jIGFuZCBiaWRpLmMg Zm9yIGRldGFpbHMuICAqLwogICBMaXNwX09iamVjdCBjYWNoZV9sb25nX3NjYW5zXzsKIAorICAv KiBUaGUgbmFtZSBvZiB0aGUgaG9vay4gICovCisgIExpc3BfT2JqZWN0IHdpbmRvd19zdGFydF9l bmRfaG9va187CisKICAgLyogSWYgdGhlIHdpZHRoIHJ1biBjYWNoZSBpcyBlbmFibGVkLCB0aGlz IHRhYmxlIGNvbnRhaW5zIHRoZQogICAgICBjaGFyYWN0ZXIgd2lkdGhzIHdpZHRoX3J1bl9jYWNo ZSAoc2VlIGFib3ZlKSBhc3N1bWVzLiAgV2hlbiB3ZQogICAgICBkbyBhIHRob3JvdWdoIHJlZGlz cGxheSwgd2UgY29tcGFyZSB0aGlzIGFnYWluc3QgdGhlIGJ1ZmZlcidzCkBAIC04OTUsNiArODk4 LDExIEBAIGJzZXRfY2FjaGVfbG9uZ19zY2FucyAoc3RydWN0IGJ1ZmZlciAqYiwgTGlzcF9PYmpl Y3QgdmFsKQogICBiLT5jYWNoZV9sb25nX3NjYW5zXyA9IHZhbDsKIH0KIElOTElORSB2b2lkCiti c2V0X3dpbmRvd19zdGFydF9lbmRfaG9vayAoc3RydWN0IGJ1ZmZlciAqYiwgTGlzcF9PYmplY3Qg dmFsKQoreworICBiLT53aW5kb3dfc3RhcnRfZW5kX2hvb2tfID0gdmFsOworfQorSU5MSU5FIHZv aWQKIGJzZXRfY2FzZV9jYW5vbl90YWJsZSAoc3RydWN0IGJ1ZmZlciAqYiwgTGlzcF9PYmplY3Qg dmFsKQogewogICBiLT5jYXNlX2Nhbm9uX3RhYmxlXyA9IHZhbDsKZGlmZiAtLWdpdCBhL3NyYy9r ZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggMzQzMWNkOC4uM2Q4ZDU0ZiAxMDA2NDQK LS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJkLmMKQEAgLTEyMzMsNiArMTIz MywxNSBAQCBzdGF0aWMgaW50IHJlYWRfa2V5X3NlcXVlbmNlIChMaXNwX09iamVjdCAqLCBpbnQs IExpc3BfT2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCwgYm9vbCwg Ym9vbCwgYm9vbCk7CiBzdGF0aWMgdm9pZCBhZGp1c3RfcG9pbnRfZm9yX3Byb3BlcnR5IChwdHJk aWZmX3QsIGJvb2wpOwogCitzdGF0aWMgdm9pZAorc2V0X3dpbmRvd19zdGFydF9lbmRfaG9vayAo dm9pZCkKK3sKKyAgTGlzcF9PYmplY3Qgd2luZG93ID0gKHNlbGVjdGVkX3dpbmRvdyk7CisgIHN0 cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdpbmRvdyk7CisgIHctPndpbmRv d19zdGFydF9lbmRfaG9va19mb3JjZSA9IHRydWU7CisgIHctPndpbmRvd19zdGFydF9lbmRfaG9v a19wZW5kaW5nID0gdHJ1ZTsKK30KKwogTGlzcF9PYmplY3QKIGNvbW1hbmRfbG9vcF8xICh2b2lk KQogewpAQCAtMTI1OCw2ICsxMjY3LDggQEAgY29tbWFuZF9sb29wXzEgKHZvaWQpCiAgICAgICBp ZiAoIU5JTFAgKFZwb3N0X2NvbW1hbmRfaG9vaykgJiYgIU5JTFAgKFZydW5faG9va3MpKQogCXNh ZmVfcnVuX2hvb2tzIChRcG9zdF9jb21tYW5kX2hvb2spOwogCisgICAgICBzZXRfd2luZG93X3N0 YXJ0X2VuZF9ob29rICgpOworCiAgICAgICAvKiBJZiBkaXNwbGF5aW5nIGEgbWVzc2FnZSwgcmVz aXplIHRoZSBlY2hvIGFyZWEgd2luZG93IHRvIGZpdAogCSB0aGF0IG1lc3NhZ2UncyBzaXplIGV4 YWN0bHkuICAqLwogICAgICAgaWYgKCFOSUxQIChlY2hvX2FyZWFfYnVmZmVyWzBdKSkKQEAgLTE0 NzQsNiArMTQ4NSw4IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lkKQogCiAgICAgICBzYWZlX3J1bl9o b29rcyAoUXBvc3RfY29tbWFuZF9ob29rKTsKIAorICAgICAgc2V0X3dpbmRvd19zdGFydF9lbmRf aG9vayAoKTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1lc3NhZ2UsIHJlc2l6ZSB0aGUg ZWNobyBhcmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdlJ3Mgc2l6ZSBleGFjdGx5LiAg Ki8KICAgICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclswXSkpCmRpZmYgLS1naXQgYS9z cmMvd2luZG93LmggYi9zcmMvd2luZG93LmgKaW5kZXggYzI5MjA3ZC4uMzE1NjkyNyAxMDA2NDQK LS0tIGEvc3JjL3dpbmRvdy5oCisrKyBiL3NyYy93aW5kb3cuaApAQCAtMzQ4LDYgKzM0OCwxMiBA QCBzdHJ1Y3Qgd2luZG93CiAgICAgICAgVndpbmRvd19zY3JvbGxfZnVuY3Rpb25zOyBhbHNvIGJ5 IEZyZWNlbnRlciB3aXRoIGFyZ3VtZW50LiAgKi8KICAgICBib29sX2JmIG9wdGlvbmFsX25ld19z dGFydCA6IDE7CiAKKyAgICAvKiBUcnVlIG1lYW5zIGZvcmNlIGEgY2FsbCB0byBWd2luZG93X3N0 YXJ0X2VuZF9ob29rLiAgKi8KKyAgICBib29sX2JmIHdpbmRvd19zdGFydF9lbmRfaG9va19mb3Jj ZSA6IDE7CisKKyAgICAvKiBUcnVlIG1lYW5zIHRoZSBob29rIGhhcyBub3QgeWV0IHJ1biB3aXRo IHBvaW50IGZ1bGx5IHZpc2libGUuICAqLworICAgIGJvb2xfYmYgd2luZG93X3N0YXJ0X2VuZF9o b29rX3BlbmRpbmcgOiAxOworCiAgICAgLyogVHJ1ZSBtZWFucyB0aGUgY3Vyc29yIGlzIGN1cnJl bnRseSBkaXNwbGF5ZWQuICBUaGlzIGNhbiBiZQogICAgICAgIHNldCB0byB6ZXJvIGJ5IGZ1bmN0 aW9ucyBvdmVycGFpbnRpbmcgdGhlIGN1cnNvciBpbWFnZS4gICovCiAgICAgYm9vbF9iZiBwaHlz X2N1cnNvcl9vbl9wIDogMTsKZGlmZiAtLWdpdCBhL3NyYy94ZGlzcC5jIGIvc3JjL3hkaXNwLmMK aW5kZXggZmVkNTg3OS4uZTM4ZThkYyAxMDA2NDQKLS0tIGEvc3JjL3hkaXNwLmMKKysrIGIvc3Jj L3hkaXNwLmMKQEAgLTEzNDE3LDYgKzEzNDE3LDgzIEBAIGRvIHsgaWYgKCEgcG9sbGluZ19zdG9w cGVkX2hlcmUpIHN0b3BfcG9sbGluZyAoKTsJXAogZG8geyBpZiAocG9sbGluZ19zdG9wcGVkX2hl cmUpIHN0YXJ0X3BvbGxpbmcgKCk7CVwKICAgICAgICBwb2xsaW5nX3N0b3BwZWRfaGVyZSA9IGZh bHNlOyB9IHdoaWxlIChmYWxzZSkKIAorc3RhdGljIHZvaWQKK3J1bl93aW5kb3dfc3RhcnRfZW5k X2hvb2sgKExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IHRleHRfcG9zIHN0YXJ0cCwgc3RydWN0 IGl0IGl0LCBjaGFyICpzdHJpbmcpCit7CisgIHN0cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2 ZV93aW5kb3cgKHdpbmRvdyk7CisgIExpc3BfT2JqZWN0IGJ1ZjsKKyAgc3RydWN0IGJ1ZmZlciAq YjsKKyAgYnVmID0gdy0+Y29udGVudHM7CisgIENIRUNLX0JVRkZFUiAoYnVmKTsKKyAgYiA9IFhC VUZGRVIgKGJ1Zik7CisgIHN0cnVjdCBidWZmZXIgKm9sZF9idWZmZXIgPSBOVUxMOworICB2b2lk ICppdGRhdGEgPSBOVUxMOworICBib29sIGZ1bGx5X3AgPSBmYWxzZTsKKyAgRU1BQ1NfSU5UIHBv c2ludCA9IFBUOworICBpbnQgeCwgeSwgcnRvcCwgcmJvdCwgcm93aCwgdnBvcywgc3RhcnRwX2lu dGVnZXIsIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9sX2VuZHA7CisgIHN0YXJ0cF9pbnRlZ2VyID0g Q0hBUlBPUyAoc3RhcnRwKTsKKyAgaWYgKGIgIT0gY3VycmVudF9idWZmZXIpCisgICAgeworICAg ICAgb2xkX2J1ZmZlciA9IGN1cnJlbnRfYnVmZmVyOworICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5h bCAoYik7CisgICAgfQorICBpZiAoIU5JTFAgKEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB3aW5kb3df c3RhcnRfZW5kX2hvb2spKQorICAgICAgJiYgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRp bmcpCisgICAgeworICAgICAgaWYgKChwb3NpbnQgPj0gQ0hBUlBPUyAoc3RhcnRwKSAmJiBwb3Np bnQgPD0gQlVGX1pWIChiKSkKKyAgICAgICAgICAmJiBDSEFSUE9TIChzdGFydHApID49IEJVRl9C RUdWIChiKQorICAgICAgICAgICYmIENIQVJQT1MgKHN0YXJ0cCkgPD0gQlVGX1pWIChiKQorICAg ICAgICAgICYmIHBvc192aXNpYmxlX3AgKHcsIHBvc2ludCwgJngsICZ5LCAmcnRvcCwgJnJib3Qs ICZyb3doLCAmdnBvcykpCisgICAgICAgIGZ1bGx5X3AgPSAhcnRvcCAmJiAhcmJvdDsKKyAgICAg IGlmIChmdWxseV9wKQorICAgICAgICB7CisgICAgICAgICAgQ0xJUF9URVhUX1BPU19GUk9NX01B UktFUiAoc3RhcnRwLCB3LT5zdGFydCk7CisgICAgICAgICAgaXRkYXRhID0gYmlkaV9zaGVsdmVf Y2FjaGUgKCk7CisgICAgICAgICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBzdGFydHApOworICAg ICAgICAgIG1vdmVfaXRfdmVydGljYWxseSAoJml0LCB3aW5kb3dfYm94X2hlaWdodCAodykpOwor ICAgICAgICAgIGlmIChpdC5jdXJyZW50X3kgPCBpdC5sYXN0X3Zpc2libGVfeSkKKyAgICAgICAg ICAgIG1vdmVfaXRfcGFzdF9lb2wgKCZpdCk7CisgICAgICAgICAgZW5kcCA9IChJVF9DSEFSUE9T IChpdCkpOworICAgICAgICAgIGJpZGlfdW5zaGVsdmVfY2FjaGUgKGl0ZGF0YSwgZmFsc2UpOwor ICAgICAgICAgIFNFVF9QVCAoc3RhcnRwX2ludGVnZXIpOworICAgICAgICAgIHBib2xfc3RhcnRw ID0gWElOVCAoRmxpbmVfYmVnaW5uaW5nX3Bvc2l0aW9uIChRbmlsKSk7CisgICAgICAgICAgU0VU X1BUIChlbmRwKTsKKyAgICAgICAgICBwZW9sX2VuZHAgPSBYSU5UIChGbGluZV9lbmRfcG9zaXRp b24gKFFuaWwpKTsKKyAgICAgICAgICBTRVRfUFQgKHBvc2ludCk7CisjaWZkZWYgR0xZUEhfREVC VUcKKyAgICAgICAgICAvKiBTZWUgdGhlIGRvYy1zdHJpbmcgZm9yIGBwb3MtdmlzaWJsZS1pbi13 aW5kb3ctcCcuICAqLworICAgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICIlcyAtLSB4OiAl ZCB8IHk6ICVkIHwgc3RhcnRwOiAlZCB8IGVuZHA6ICVkIHwgcGJvbF9zdGFydHA6ICVkIHwgcGVv bF9lbmRwOiAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLCB4LCB5 LCBzdGFydHBfaW50ZWdlciwgZW5kcCwgcGJvbF9zdGFydHAsIHBlb2xfZW5kcCk7CisjZW5kaWYK KyAgICAgICAgICAvKiAgUmVzZXQgdGhlIGZsYWcgX2JlZm9yZV8gY2FsbGluZyBMaXNwLCBub3Qg YWZ0ZXIsIHNvIHRoYXQKKyAgICAgICAgICAgICAgaWYgTGlzcCBkb2VzIHNpZ25hbCBhbiBlcnJv ciwgdGhlIGZsYWcgd2lsbCBiZSByZXNldCwgYW5kCisgICAgICAgICAgICAgIHdvbid0IGNhdXNl IHRoZSBob29rIHRvIGJlIGNhbGxlZCBhZCBuYXVzZWFtLiAgKi8KKyAgICAgICAgICB3LT53aW5k b3dfc3RhcnRfZW5kX2hvb2tfcGVuZGluZyA9IGZhbHNlOworICAgICAgICAgIC8qICBXaGVuIGNh bGxpbmcgTGlzcCBmcm9tIHJlZGlzcGxheSwgYWx3YXlzIHVzZSBzYWZlX2NhbGwsIHRvIGJlCisg ICAgICAgICAgICAgIHByb3RlY3RlZCBhZ2FpbnN0IGVycm9ycyBzaWduYWxlZCBieSB0aGF0IExp c3AuICAqLworICAgICAgICAgIC8qIGZuLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1LCBh cmc2LCBhcmc3ICAqLworICAgICAgICAgIHNhZmVfY2FsbCAoOCwKKyAgICAgICAgICAgICAgUXJ1 bl9ob29rX3dpdGhfYXJncywKKyAgICAgICAgICAgICAgUXdpbmRvd19zdGFydF9lbmRfaG9vaywK KyAgICAgICAgICAgICAgd2luZG93LAorICAgICAgICAgICAgICBtYWtlX251bWJlciAoc3RhcnRw X2ludGVnZXIpLAorICAgICAgICAgICAgICBtYWtlX251bWJlciAoZW5kcCksCisgICAgICAgICAg ICAgIG1ha2VfbnVtYmVyIChwYm9sX3N0YXJ0cCksCisgICAgICAgICAgICAgIG1ha2VfbnVtYmVy IChwZW9sX2VuZHApLAorICAgICAgICAgICAgICBmdWxseV9wID8gUXQgOiBRbmlsKTsKKyAgICAg ICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgeworI2lmZGVmIEdMWVBIX0RFQlVHCisgICAg ICAgICAgICAvKiBTZWUgdGhlIGRvYy1zdHJpbmcgZm9yIGBwb3MtdmlzaWJsZS1pbi13aW5kb3ct cCcuICAqLworICAgICAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgIiVzIC0tIHg6ICVkIHwg eTogJWQgfCBydG9wOiAlZCB8IHJib3QgJWQgfCByb3doOiAlZCB8IHZwb3M6ICVkIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZywgeCwgeSwgcnRvcCwgcmJvdCwgcm93 aCwgdnBvcyk7CisjZW5kaWYKKyAgICAgICAgICB9CisgICAgfQorICBpZiAob2xkX2J1ZmZlcikK KyAgICBzZXRfYnVmZmVyX2ludGVybmFsIChvbGRfYnVmZmVyKTsKK30KIAogLyogUGVyaGFwcyBp biB0aGUgZnV0dXJlIGF2b2lkIHJlY2VudGVyaW5nIHdpbmRvd3MgaWYgaXQKICAgIGlzIG5vdCBu ZWNlc3Nhcnk7IGN1cnJlbnRseSB0aGF0IGNhdXNlcyBzb21lIHByb2JsZW1zLiAgKi8KQEAgLTEz NzE0LDYgKzEzNzkxLDcgQEAgcmVkaXNwbGF5X2ludGVybmFsICh2b2lkKQogICAgICAgJiYgbWF0 Y2hfcAogICAgICAgJiYgIXctPmZvcmNlX3N0YXJ0CiAgICAgICAmJiAhdy0+b3B0aW9uYWxfbmV3 X3N0YXJ0CisgICAgICAmJiAhdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX2ZvcmNlCiAgICAgICAv KiBQb2ludCBtdXN0IGJlIG9uIHRoZSBsaW5lIHRoYXQgd2UgaGF2ZSBpbmZvIHJlY29yZGVkIGFi b3V0LiAgKi8KICAgICAgICYmIFBUID49IENIQVJQT1MgKHRsYnVmcG9zKQogICAgICAgJiYgUFQg PD0gWiAtIENIQVJQT1MgKHRsZW5kcG9zKQpAQCAtMTU0MTgsNiArMTU0OTYsOCBAQCB0cnlfc2Ny b2xsaW5nIChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wLAogICAvKiBS dW4gd2luZG93IHNjcm9sbCBmdW5jdGlvbnMuICAqLwogICBzdGFydHAgPSBydW5fd2luZG93X3Nj cm9sbF9mdW5jdGlvbnMgKHdpbmRvdywgc3RhcnRwKTsKIAorICBydW5fd2luZG93X3N0YXJ0X2Vu ZF9ob29rICh3aW5kb3csIHN0YXJ0cCwgaXQsICJ0cnlfc2Nyb2xsaW5nIik7CisKICAgLyogRGlz cGxheSB0aGUgd2luZG93LiAgR2l2ZSB1cCBpZiBuZXcgZm9udHMgYXJlIGxvYWRlZCwgb3IgaWYg cG9pbnQKICAgICAgZG9lc24ndCBhcHBlYXIuICAqLwogICBpZiAoIXRyeV93aW5kb3cgKHdpbmRv dywgc3RhcnRwLCAwKSkKQEAgLTE2MDgyLDYgKzE2MTYyLDcgQEAgcmVkaXNwbGF5X3dpbmRvdyAo TGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKICAgYm9vbCBsYXN0X2xp bmVfbWlzZml0ID0gZmFsc2U7CiAgIHB0cmRpZmZfdCBiZWdfdW5jaGFuZ2VkLCBlbmRfdW5jaGFu Z2VkOwogICBpbnQgZnJhbWVfbGluZV9oZWlnaHQ7CisgIGJvb2wgd2luZG93X3N0YXJ0X2VuZF9o b29rX3N1cHByZXNzX3dzZiA9IGZhbHNlOwogCiAgIFNFVF9URVhUX1BPUyAobHBvaW50LCBQVCwg UFRfQllURSk7CiAgIG9wb2ludCA9IGxwb2ludDsKQEAgLTE2MjcyLDEzICsxNjM1MywxNiBAQCBy ZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9w KQogCiAgIC8qIElmIHNvbWVvbmUgc3BlY2lmaWVkIGEgbmV3IHN0YXJ0aW5nIHBvaW50IGJ1dCBk aWQgbm90IGluc2lzdCwKICAgICAgY2hlY2sgd2hldGhlciBpdCBjYW4gYmUgdXNlZC4gICovCi0g IGlmICgody0+b3B0aW9uYWxfbmV3X3N0YXJ0IHx8IHdpbmRvd19mcm96ZW5fcCAodykpCisgIGlm ICgody0+b3B0aW9uYWxfbmV3X3N0YXJ0IHx8IHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3Jj ZSB8fCB3aW5kb3dfZnJvemVuX3AgKHcpKQogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA+PSBC RUdWCiAgICAgICAmJiBDSEFSUE9TIChzdGFydHApIDw9IFpWKQogICAgIHsKKworICAgICAgaWYg KHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSAmJiAhdy0+b3B0aW9uYWxfbmV3X3N0YXJ0 ICYmICF3aW5kb3dfZnJvemVuX3AgKHcpICYmICF3LT5mb3JjZV9zdGFydCkKKyAgICAgICAgd2lu ZG93X3N0YXJ0X2VuZF9ob29rX3N1cHByZXNzX3dzZiA9IHRydWU7CisKICAgICAgIHB0cmRpZmZf dCBpdF9jaGFycG9zOwogCi0gICAgICB3LT5vcHRpb25hbF9uZXdfc3RhcnQgPSBmYWxzZTsKICAg ICAgIHN0YXJ0X2Rpc3BsYXkgKCZpdCwgdywgc3RhcnRwKTsKICAgICAgIG1vdmVfaXRfdG8gKCZp dCwgUFQsIDAsIGl0Lmxhc3RfdmlzaWJsZV95LCAtMSwKIAkJICBNT1ZFX1RPX1BPUyB8IE1PVkVf VE9fWCB8IE1PVkVfVE9fWSk7CkBAIC0xNjI5OSwxNCArMTYzODMsMjggQEAgcmVkaXNwbGF5X3dp bmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAkgICAgdy0+ Zm9yY2Vfc3RhcnQgPSB0cnVlOwogI2lmZGVmIEdMWVBIX0RFQlVHCiAJICBpZiAody0+Zm9yY2Vf c3RhcnQpCi0JICAgIHsKLQkgICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkKLQkJZGVidWdf bWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIGZyb3plbiB3aW5kb3cgc3RhcnQi KTsKLQkgICAgICBlbHNlCi0JCWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQg ZnJvbSBvcHRpb25hbF9uZXdfc3RhcnQiKTsKLQkgICAgfQorICAgIHsKKyAgICAgIGlmICh3aW5k b3dfZnJvemVuX3AgKHcpKQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcs ICJzZXQgZm9yY2Vfc3RhcnQgZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7CisgICAgICB9Cisg ICAgICBlbHNlIGlmICh3LT5vcHRpb25hbF9uZXdfc3RhcnQpCisgICAgICAgIHsKKyAgICAgICAg ZGVidWdfbWV0aG9kX2FkZCAodywgInNldCBmb3JjZV9zdGFydCBmcm9tIG9wdGlvbmFsX25ld19z dGFydCIpOworICAgICAgfQorICAgICAgZWxzZSBpZiAody0+d2luZG93X3N0YXJ0X2VuZF9ob29r X2ZvcmNlKQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9y Y2Vfc3RhcnQgZnJvbSB3aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UiKTsKKyAgICAgIH0KKyAg ICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAiVGhpcyBz aXR1YXRpb24gaXMgbm90IHlldCBjb250ZW1wbGF0ZWQuIik7CisgICAgICB9CisgICAgfQogI2Vu ZGlmCiAJfQorICAgICAgdy0+b3B0aW9uYWxfbmV3X3N0YXJ0ID0gZmFsc2U7CisgICAgICB3LT53 aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UgPSBmYWxzZTsKICAgICB9CiAKICBmb3JjZV9zdGFy dDoKQEAgLTE2MzM0LDExICsxNjQzMiwxOCBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVj dCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogCSB0aGFuIHRvIGdldCBpbnRvIGFuIGlu ZmluaXRlIGxvb3AgY2FsbGluZyB0aGUgaG9vayBmdW5jdGlvbnMKIAkgYW5kIGhhdmluZyB0aGVt IGdldCBtb3JlIGVycm9ycy4gICovCiAgICAgICBpZiAoIXVwZGF0ZV9tb2RlX2xpbmUKLQkgIHx8 ICEgTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25zKSkKKwkgIHx8ICEgTklMUCAoVndpbmRv d19zY3JvbGxfZnVuY3Rpb25zKQorCSAgfHwgISBOSUxQIChCVkFSIChjdXJyZW50X2J1ZmZlciwg d2luZG93X3N0YXJ0X2VuZF9ob29rKSkpCiAJewogCSAgdXBkYXRlX21vZGVfbGluZSA9IHRydWU7 CiAJICB3LT51cGRhdGVfbW9kZV9saW5lID0gdHJ1ZTsKLQkgIHN0YXJ0cCA9IHJ1bl93aW5kb3df c2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBzdGFydHApOworCisgIC8qIFJ1biB3aW5kb3cgc2Ny b2xsIGZ1bmN0aW9ucy4gICovCisgIGlmICghd2luZG93X3N0YXJ0X2VuZF9ob29rX3N1cHByZXNz X3dzZikKKyAgICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRvdywg c3RhcnRwKTsKKworICBydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rICh3aW5kb3csIHN0YXJ0cCwg aXQsICJyZWRpc3BsYXlfd2luZG93IChmb3JjZV9zdGFydCkiKTsKKwogCX0KIAogICAgICAgaWYg KENIQVJQT1MgKHN0YXJ0cCkgPCBCRUdWKQpAQCAtMTY2MDYsNiArMTY3MTEsNyBAQCByZWRpc3Bs YXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogCSAg ICAgYmVjYXVzZSBhIHdpbmRvdyBzY3JvbGwgZnVuY3Rpb24gY2FuIGhhdmUgY2hhbmdlZCB0aGUK IAkgICAgIGJ1ZmZlci4gICovCiAJICB8fCAhTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25z KQorCSAgfHwgIU5JTFAgKEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB3aW5kb3dfc3RhcnRfZW5kX2hv b2spKQogCSAgfHwgTUlOSV9XSU5ET1dfUCAodykKIAkgIHx8ICEodXNlZF9jdXJyZW50X21hdHJp eF9wCiAJICAgICAgID0gdHJ5X3dpbmRvd19yZXVzaW5nX2N1cnJlbnRfbWF0cml4ICh3KSkpCkBA IC0xNjgwMyw2ICsxNjkwOSw4IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRv dywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAgIC8qIFJ1biBzY3JvbGwgaG9va3MuICAqLwogICBz dGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5jdGlvbnMgKHdpbmRvdywgaXQuY3VycmVudC5w b3MpOwogCisgIHJ1bl93aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHdpbmRvdywgc3RhcnRwLCBpdCwg InJlZGlzcGxheV93aW5kb3cgKHJlY2VudGVyKSIpOworCiAgIC8qIFJlZGlzcGxheSB0aGUgd2lu ZG93LiAgKi8KICAgYm9vbCB1c2VfZGVzaXJlZF9tYXRyaXggPSBmYWxzZTsKICAgaWYgKCFjdXJy ZW50X21hdHJpeF91cF90b19kYXRlX3AKQEAgLTE2ODExLDYgKzE2OTE5LDcgQEAgcmVkaXNwbGF5 X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKICAgICAg IC8qIERvbid0IHVzZSB0cnlfd2luZG93X3JldXNpbmdfY3VycmVudF9tYXRyaXggaW4gdGhpcyBj YXNlCiAJIGJlY2F1c2UgaXQgY2FuIGhhdmUgY2hhbmdlZCB0aGUgYnVmZmVyLiAgKi8KICAgICAg IHx8ICFOSUxQIChWd2luZG93X3Njcm9sbF9mdW5jdGlvbnMpCisgICAgICB8fCAhTklMUCAoQlZB UiAoY3VycmVudF9idWZmZXIsIHdpbmRvd19zdGFydF9lbmRfaG9vaykpCiAgICAgICB8fCAhanVz dF90aGlzX29uZV9wCiAgICAgICB8fCBNSU5JX1dJTkRPV19QICh3KQogICAgICAgfHwgISh1c2Vk X2N1cnJlbnRfbWF0cml4X3AKQEAgLTE2OTMxLDcgKzE3MDQwLDE3IEBAIHJlZGlzcGxheV93aW5k b3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJICBjbGVhcl9n bHlwaF9tYXRyaXggKHctPmRlc2lyZWRfbWF0cml4KTsKIAkgIGlmICgxID09IHRyeV93aW5kb3cg KHdpbmRvdywgaXQuY3VycmVudC5wb3MsCiAJCQkgICAgICAgVFJZX1dJTkRPV19DSEVDS19NQVJH SU5TKSkKLQkgICAgZ290byBkb25lOworICAgIHsKKyAgICAgIGlmICghTklMUCAoQlZBUiAoY3Vy cmVudF9idWZmZXIsIHdpbmRvd19zdGFydF9lbmRfaG9vaykpCisgICAgICAgICAgJiYgdy0+d2lu ZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcpCisgICAgICAgIHsKKyAgICAgICAgICBydW5fd2lu ZG93X3N0YXJ0X2VuZF9ob29rICh3aW5kb3csIGl0LmN1cnJlbnQucG9zLCBpdCwgInJlZGlzcGxh eV93aW5kb3cgKHBvc3QtcmVjZW50ZXIpIik7CisgICAgICAgICAgY2xlYXJfZ2x5cGhfbWF0cml4 ICh3LT5kZXNpcmVkX21hdHJpeCk7CisgICAgICAgICAgdHJ5X3dpbmRvdyAod2luZG93LCBpdC5j dXJyZW50LnBvcywgMCk7CisgICAgICAgIH0KKyAgICAgIGdvdG8gZG9uZTsKKyAgICB9CisKIAl9 CiAKICAgICAgIC8qIElmIGNlbnRlcmluZyBwb2ludCBmYWlsZWQgdG8gbWFrZSB0aGUgd2hvbGUg bGluZSB2aXNpYmxlLApAQCAtMjM2ODYsNiArMjM4MDUsMjAgQEAgZGVjb2RlX21vZGVfc3BlYyAo c3RydWN0IHdpbmRvdyAqdywgcmVnaXN0ZXIgaW50IGMsIGludCBmaWVsZF93aWR0aCwKIAkgIHJl dHVybiAiQCI7CiAgICAgICB9CiAKKyAgICBjYXNlICd3JzoKKyAgICAgIHsKKyAgcHRyZGlmZl90 IHdpbmRvd19zdGFydCA9IG1hcmtlcl9wb3NpdGlvbiAody0+c3RhcnQpOworICBwaW50MnN0ciAo ZGVjb2RlX21vZGVfc3BlY19idWYsIHdpZHRoLCB3aW5kb3dfc3RhcnQpOworICByZXR1cm4gZGVj b2RlX21vZGVfc3BlY19idWY7CisgICAgICB9CisKKyAgICBjYXNlICdXJzoKKyAgICAgIHsKKyAg cHRyZGlmZl90IHdpbmRvd19lbmQgPSBCVUZfWiAoYikgLSB3LT53aW5kb3dfZW5kX3BvczsKKyAg cGludDJzdHIgKGRlY29kZV9tb2RlX3NwZWNfYnVmLCB3aWR0aCwgd2luZG93X2VuZCk7CisgIHJl dHVybiBkZWNvZGVfbW9kZV9zcGVjX2J1ZjsKKyAgICAgIH0KKwogICAgIGNhc2UgJ3onOgogICAg ICAgLyogY29kaW5nLXN5c3RlbSAobm90IGluY2x1ZGluZyBlbmQtb2YtbGluZSBmb3JtYXQpICov CiAgICAgY2FzZSAnWic6Cg== --Multipart_Sun_Feb_21_22:05:15_2016-1--
X-Loop: help-debbugs@HIDDEN Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. References: <m260yqdsp7.wl%esq@HIDDEN> In-Reply-To: <m260yqdsp7.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 11 Mar 2016 16:22:01 +0000 Resent-Message-ID: <handler.22404.B22404.145771329729168 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 22404 <at> debbugs.gnu.org Received: via spool by 22404-submit <at> debbugs.gnu.org id=B22404.145771329729168 (code B ref 22404); Fri, 11 Mar 2016 16:22:01 +0000 Received: (at 22404) by debbugs.gnu.org; 11 Mar 2016 16:21:37 +0000 Received: from localhost ([127.0.0.1]:45322 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aePon-0007aO-5y for submit <at> debbugs.gnu.org; Fri, 11 Mar 2016 11:21:37 -0500 Received: from cobb.liquidweb.com ([50.28.13.150]:53730) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <esq@HIDDEN>) id 1aePok-0007aB-Qb for 22404 <at> debbugs.gnu.org; Fri, 11 Mar 2016 11:21:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=0zgDdhtENCwQNaMKMRyF2JdyG6pontMOFQHYt/pZzGc=; b=0E6RIW+RYTK9Jykh0s0tDJttW+RWjOIw+Gn/+Kt1RZF43GX6JvHddrbnhP9VuCnDWb9sCx7EG3+Jm4WkOOeCLjYtV6M+LR92UbduX/EPwvKPdCZ0LzILca0JiarLLQc0; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50655 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from <esq@HIDDEN>) id 1aePoZ-000109-9W; Fri, 11 Mar 2016 11:21:23 -0500 Date: Fri, 11 Mar 2016 08:21:26 -0800 Message-ID: <m2r3fhyohl.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Fri_Mar_11_08:21:24_2016-1" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.7 (/) --Multipart_Fri_Mar_11_08:21:24_2016-1 Content-Type: text/plain; charset=US-ASCII Attached is the next draft of the `window-start-end-hook`, which applies to the master branch as of commit "ea626c72e590aa7a45fd26df42240854e4225cef" on March 10, 2015. The primary addition is a new location for the hook to be called when scrolling with the mouse-wheel. A couple of pointers were added to store window/start-end values. Miscellaneous unrelated new/experimental features have been removed from the patch. The usage is as follows: (defun window-start-end-hook-fn (win start end pbol-start peol-end fully-p) (message "win: %s | start: %s | end: %s | pbol-start: %s | peol-end: %s | fully-p: %s" win start end pbol-start peol-end fully-p)) (add-hook 'window-start-end-hook 'window-start-end-hook-fn nil t) --Multipart_Fri_Mar_11_08:21:24_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="window_start_end_hook.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9idWZmZXIuYyBiL3NyYy9idWZmZXIuYwppbmRleCA5OGI2MWMzLi5i YTM3Y2JjIDEwMDY0NAotLS0gYS9zcmMvYnVmZmVyLmMKKysrIGIvc3JjL2J1ZmZlci5jCkBAIC01 MDczLDYgKzUwNzMsNyBAQCBpbml0X2J1ZmZlcl9vbmNlICh2b2lkKQogICBYU0VURkFTVElOVCAo QlZBUiAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgZGlzcGxheV90YWJsZSksIGlkeCk7ICsraWR4Owog ICBYU0VURkFTVElOVCAoQlZBUiAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgc3ludGF4X3RhYmxlKSwg aWR4KTsgKytpZHg7CiAgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2xvY2FsX2ZsYWdzLCBj YWNoZV9sb25nX3NjYW5zKSwgaWR4KTsgKytpZHg7CisgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVm ZmVyX2xvY2FsX2ZsYWdzLCB3aW5kb3dfc3RhcnRfZW5kX2hvb2spLCBpZHgpOyArK2lkeDsKICAg WFNFVEZBU1RJTlQgKEJWQVIgKCZidWZmZXJfbG9jYWxfZmxhZ3MsIGNhdGVnb3J5X3RhYmxlKSwg aWR4KTsgKytpZHg7CiAgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2xvY2FsX2ZsYWdzLCBi aWRpX2Rpc3BsYXlfcmVvcmRlcmluZyksIGlkeCk7ICsraWR4OwogICBYU0VURkFTVElOVCAoQlZB UiAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgYmlkaV9wYXJhZ3JhcGhfZGlyZWN0aW9uKSwgaWR4KTsg KytpZHg7CkBAIC01MTY2LDYgKzUxNjcsNyBAQCBpbml0X2J1ZmZlcl9vbmNlICh2b2lkKQogICBY U0VURkFTVElOVCAoQlZBUiAoJmJ1ZmZlcl9kZWZhdWx0cywgZmlsbF9jb2x1bW4pLCA3MCk7CiAg IFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2RlZmF1bHRzLCBsZWZ0X21hcmdpbiksIDApOwog ICBic2V0X2NhY2hlX2xvbmdfc2NhbnMgKCZidWZmZXJfZGVmYXVsdHMsIFF0KTsKKyAgYnNldF93 aW5kb3dfc3RhcnRfZW5kX2hvb2sgKCZidWZmZXJfZGVmYXVsdHMsIFFuaWwpOwogICBic2V0X2Zp bGVfdHJ1ZW5hbWUgKCZidWZmZXJfZGVmYXVsdHMsIFFuaWwpOwogICBYU0VURkFTVElOVCAoQlZB UiAoJmJ1ZmZlcl9kZWZhdWx0cywgZGlzcGxheV9jb3VudCksIDApOwogICBYU0VURkFTVElOVCAo QlZBUiAoJmJ1ZmZlcl9kZWZhdWx0cywgbGVmdF9tYXJnaW5fY29scyksIDApOwpAQCAtNTM3OSw2 ICs1MzgxLDggQEAgc3ltc19vZl9idWZmZXIgKHZvaWQpCiAgIHN0YXRpY3BybyAoJlFTRnVuZGFt ZW50YWwpOwogICBzdGF0aWNwcm8gKCZWYnVmZmVyX2FsaXN0KTsKIAorICBERUZTWU0gKFF3aW5k b3dfc3RhcnRfZW5kX2hvb2ssICJ3aW5kb3ctc3RhcnQtZW5kLWhvb2siKTsKKwogICBERUZTWU0g KFFjaG9pY2UsICJjaG9pY2UiKTsKICAgREVGU1lNIChRbGVmdCwgImxlZnQiKTsKICAgREVGU1lN IChRcmlnaHQsICJyaWdodCIpOwpAQCAtNjE0OCw2ICs2MTUyLDExIEBAIG1haW50YWluZWQgaW50 ZXJuYWxseSBieSB0aGUgRW1hY3MgcHJpbWl0aXZlcy4gIEVuYWJsaW5nIG9yIGRpc2FibGluZwog dGhlIGNhY2hlIHNob3VsZCBub3QgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiBhbnkgb2YgdGhlIG1v dGlvbgogZnVuY3Rpb25zOyBpdCBzaG91bGQgb25seSBhZmZlY3QgdGhlaXIgcGVyZm9ybWFuY2Uu ICAqLyk7CiAKKyAgREVGVkFSX1BFUl9CVUZGRVIgKCJ3aW5kb3ctc3RhcnQtZW5kLWhvb2siLCAm QlZBUiAoY3VycmVudF9idWZmZXIsIHdpbmRvd19zdGFydF9lbmRfaG9vayksIFFuaWwsCisgICAg ZG9jOiAvKiBBIGJ1ZmVyLWxvY2FsIGhvb2sgdXNlZCB0byBvYnRhaW4gbmV3IGB3aW5kb3ctc3Rh cnRgIGFuZCBgd2luZG93LWVuZGAKK2R1cmluZyByZWRpc3BsYXkuICBUaGUgZnVuY3Rpb24gYXR0 YWNoZWQgdG8gdGhpcyBob29rIGhhcyB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czoKK1dJTkRPVywg V0lORE9XLVNUQVJULCBXSU5ET1ctRU5ELCBQQk9MLVNUQVJULCBQRU9MLUVORCwgRlVMTFktUC4g ICovKTsKKwogICBERUZWQVJfUEVSX0JVRkZFUiAoInBvaW50LWJlZm9yZS1zY3JvbGwiLCAmQlZB UiAoY3VycmVudF9idWZmZXIsIHBvaW50X2JlZm9yZV9zY3JvbGwpLCBRbmlsLAogCQkgICAgIGRv YzogLyogVmFsdWUgb2YgcG9pbnQgYmVmb3JlIHRoZSBsYXN0IHNlcmllcyBvZiBzY3JvbGwgb3Bl cmF0aW9ucywgb3IgbmlsLiAgKi8pOwogCmRpZmYgLS1naXQgYS9zcmMvYnVmZmVyLmggYi9zcmMv YnVmZmVyLmgKaW5kZXggNTc4M2JmYi4uMzVlZGRmYiAxMDA2NDQKLS0tIGEvc3JjL2J1ZmZlci5o CisrKyBiL3NyYy9idWZmZXIuaApAQCAtNjQzLDYgKzY0Myw5IEBAIHN0cnVjdCBidWZmZXIKICAg ICAgY2FjaGUgYXJlIGVuYWJsZWQuICBTZWUgc2VhcmNoLmMsIGluZGVudC5jIGFuZCBiaWRpLmMg Zm9yIGRldGFpbHMuICAqLwogICBMaXNwX09iamVjdCBjYWNoZV9sb25nX3NjYW5zXzsKIAorICAv KiBUaGUgbmFtZSBvZiB0aGUgaG9vay4gICovCisgIExpc3BfT2JqZWN0IHdpbmRvd19zdGFydF9l bmRfaG9va187CisKICAgLyogSWYgdGhlIHdpZHRoIHJ1biBjYWNoZSBpcyBlbmFibGVkLCB0aGlz IHRhYmxlIGNvbnRhaW5zIHRoZQogICAgICBjaGFyYWN0ZXIgd2lkdGhzIHdpZHRoX3J1bl9jYWNo ZSAoc2VlIGFib3ZlKSBhc3N1bWVzLiAgV2hlbiB3ZQogICAgICBkbyBhIHRob3JvdWdoIHJlZGlz cGxheSwgd2UgY29tcGFyZSB0aGlzIGFnYWluc3QgdGhlIGJ1ZmZlcidzCkBAIC04ODUsNiArODg4 LDExIEBAIHN0cnVjdCBidWZmZXIKICAgIGJ1ZmZlci4gIChTb21lIHNldHRlcnMgdGhhdCBhcmUg cHJpdmF0ZSB0byBhIHNpbmdsZSAuYyBmaWxlIGFyZQogICAgZGVmaW5lZCBhcyBzdGF0aWMgaW4g dGhvc2UgZmlsZXMuKSAgKi8KIElOTElORSB2b2lkCitic2V0X3dpbmRvd19zdGFydF9lbmRfaG9v ayAoc3RydWN0IGJ1ZmZlciAqYiwgTGlzcF9PYmplY3QgdmFsKQoreworICBiLT53aW5kb3dfc3Rh cnRfZW5kX2hvb2tfID0gdmFsOworfQorSU5MSU5FIHZvaWQKIGJzZXRfYmlkaV9wYXJhZ3JhcGhf ZGlyZWN0aW9uIChzdHJ1Y3QgYnVmZmVyICpiLCBMaXNwX09iamVjdCB2YWwpCiB7CiAgIGItPmJp ZGlfcGFyYWdyYXBoX2RpcmVjdGlvbl8gPSB2YWw7CmRpZmYgLS1naXQgYS9zcmMva2V5Ym9hcmQu YyBiL3NyYy9rZXlib2FyZC5jCmluZGV4IDRlMWFjMTUuLjMyOWNiYTAgMTAwNjQ0Ci0tLSBhL3Ny Yy9rZXlib2FyZC5jCisrKyBiL3NyYy9rZXlib2FyZC5jCkBAIC0xMjQ0LDYgKzEyNDQsMTUgQEAg c3RhdGljIGludCByZWFkX2tleV9zZXF1ZW5jZSAoTGlzcF9PYmplY3QgKiwgaW50LCBMaXNwX09i amVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wsIGJvb2wsIGJvb2wsIGJv b2wpOwogc3RhdGljIHZvaWQgYWRqdXN0X3BvaW50X2Zvcl9wcm9wZXJ0eSAocHRyZGlmZl90LCBi b29sKTsKIAorc3RhdGljIHZvaWQKK3NldF93aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHZvaWQpCit7 CisgIExpc3BfT2JqZWN0IHdpbmRvdyA9IChzZWxlY3RlZF93aW5kb3cpOworICBzdHJ1Y3Qgd2lu ZG93ICp3ID0gZGVjb2RlX2xpdmVfd2luZG93ICh3aW5kb3cpOworICB3LT53aW5kb3dfc3RhcnRf ZW5kX2hvb2tfZm9yY2UgPSB0cnVlOworICB3LT53aW5kb3dfc3RhcnRfZW5kX2hvb2tfcGVuZGlu ZyA9IHRydWU7Cit9CisKIExpc3BfT2JqZWN0CiBjb21tYW5kX2xvb3BfMSAodm9pZCkKIHsKQEAg LTEyNjksNiArMTI3OCw4IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lkKQogICAgICAgaWYgKCFOSUxQ IChWcG9zdF9jb21tYW5kX2hvb2spICYmICFOSUxQIChWcnVuX2hvb2tzKSkKIAlzYWZlX3J1bl9o b29rcyAoUXBvc3RfY29tbWFuZF9ob29rKTsKIAorICAgICAgc2V0X3dpbmRvd19zdGFydF9lbmRf aG9vayAoKTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1lc3NhZ2UsIHJlc2l6ZSB0aGUg ZWNobyBhcmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdlJ3Mgc2l6ZSBleGFjdGx5LiAg Ki8KICAgICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclswXSkpCkBAIC0xNDg1LDYgKzE0 OTYsOCBAQCBjb21tYW5kX2xvb3BfMSAodm9pZCkKIAogICAgICAgc2FmZV9ydW5faG9va3MgKFFw b3N0X2NvbW1hbmRfaG9vayk7CiAKKyAgICAgIHNldF93aW5kb3dfc3RhcnRfZW5kX2hvb2sgKCk7 CisKICAgICAgIC8qIElmIGRpc3BsYXlpbmcgYSBtZXNzYWdlLCByZXNpemUgdGhlIGVjaG8gYXJl YSB3aW5kb3cgdG8gZml0CiAJIHRoYXQgbWVzc2FnZSdzIHNpemUgZXhhY3RseS4gICovCiAgICAg ICBpZiAoIU5JTFAgKGVjaG9fYXJlYV9idWZmZXJbMF0pKQpkaWZmIC0tZ2l0IGEvc3JjL3dpbmRv dy5oIGIvc3JjL3dpbmRvdy5oCmluZGV4IDJjMDMwMzMuLjVjZDU4YjUgMTAwNjQ0Ci0tLSBhL3Ny Yy93aW5kb3cuaAorKysgYi9zcmMvd2luZG93LmgKQEAgLTM5NSw2ICszOTUsMTYgQEAgc3RydWN0 IHdpbmRvdwogICAgIC8qIFpfQllURSAtIGJ1ZmZlciBwb3NpdGlvbiBvZiB0aGUgbGFzdCBnbHlw aCBpbiB0aGUgY3VycmVudCBtYXRyaXggb2YgVy4KICAgICAgICBTaG91bGQgYmUgbm9ubmVnYXRp dmUsIGFuZCBvbmx5IHZhbGlkIGlmIHdpbmRvd19lbmRfdmFsaWQgaXMgdHJ1ZS4gICovCiAgICAg cHRyZGlmZl90IHdpbmRvd19lbmRfYnl0ZXBvczsKKworICAgIC8qIFRydWUgbWVhbnMgZm9yY2Ug YSBjYWxsIHRvIFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2suICAqLworICAgIGJvb2xfYmYgd2luZG93 X3N0YXJ0X2VuZF9ob29rX2ZvcmNlIDogMTsKKworICAgIC8qIFRydWUgbWVhbnMgdGhlIGhvb2sg aGFzIG5vdCB5ZXQgcnVuIHdpdGggcG9pbnQgZnVsbHkgdmlzaWJsZS4gICovCisgICAgYm9vbF9i ZiB3aW5kb3dfc3RhcnRfZW5kX2hvb2tfcGVuZGluZyA6IDE7CisKKyAgICAvKiBWYWx1ZXMgZm9y IHByZXZpb3VzIGFuZCBjdXJyZW50IGB3aW5kb3ctc3RhcnQnIGFuZCBgd2luZG93LWVuZCcuICAq LworICAgIGludCB3aW5kb3dfc3RhcnRfZW5kX2hvb2tfaW50X3dpbmRvd19zdGFydCwgd2luZG93 X3N0YXJ0X2VuZF9ob29rX2ludF93aW5kb3dfZW5kLAorICAgICAgICB3aW5kb3dfc3RhcnRfZW5k X2hvb2tfaW50X3ByZXZpb3VzX3dpbmRvd19zdGFydCwgd2luZG93X3N0YXJ0X2VuZF9ob29rX2lu dF9wcmV2aW91c193aW5kb3dfZW5kOwogICB9OwogCiAvKiBNb3N0IGNvZGUgc2hvdWxkIHVzZSB0 aGVzZSBmdW5jdGlvbnMgdG8gc2V0IExpc3AgZmllbGRzIGluIHN0cnVjdApkaWZmIC0tZ2l0IGEv c3JjL3hkaXNwLmMgYi9zcmMveGRpc3AuYwppbmRleCA1Yjk2MTQ0Li4wOWUwYzQ5IDEwMDY0NAot LS0gYS9zcmMveGRpc3AuYworKysgYi9zcmMveGRpc3AuYwpAQCAtMTM0MTQsNiArMTM0MTQsOTEg QEAgZG8geyBpZiAoISBwb2xsaW5nX3N0b3BwZWRfaGVyZSkgc3RvcF9wb2xsaW5nICgpOwlcCiBk byB7IGlmIChwb2xsaW5nX3N0b3BwZWRfaGVyZSkgc3RhcnRfcG9sbGluZyAoKTsJXAogICAgICAg IHBvbGxpbmdfc3RvcHBlZF9oZXJlID0gZmFsc2U7IH0gd2hpbGUgKGZhbHNlKQogCitzdGF0aWMg dm9pZAorcnVuX3dpbmRvd19zdGFydF9lbmRfaG9vayAoTGlzcF9PYmplY3Qgd2luZG93LCBzdHJ1 Y3QgdGV4dF9wb3Mgc3RhcnRwLCBFTUFDU19JTlQgcG9zaW50LCBzdHJ1Y3QgaXQgaXQsIGNoYXIg KnN0cmluZywgYm9vbCBmb3JjZSkKK3sKKyAgc3RydWN0IHdpbmRvdyAqdyA9IGRlY29kZV9saXZl X3dpbmRvdyAod2luZG93KTsKKyAgTGlzcF9PYmplY3QgYnVmOworICBzdHJ1Y3QgYnVmZmVyICpi OworICBidWYgPSB3LT5jb250ZW50czsKKyAgQ0hFQ0tfQlVGRkVSIChidWYpOworICBiID0gWEJV RkZFUiAoYnVmKTsKKyAgc3RydWN0IGJ1ZmZlciAqb2xkX2J1ZmZlciA9IE5VTEw7CisgIHZvaWQg Kml0ZGF0YSA9IE5VTEw7CisgIGJvb2wgZnVsbHlfcCA9IGZhbHNlOworICBpbnQgeCwgeSwgcnRv cCwgcmJvdCwgcm93aCwgdnBvcywgc3RhcnRwX2ludGVnZXIsIGVuZHAsIHBib2xfc3RhcnRwLCBw ZW9sX2VuZHA7CisgIHN0YXJ0cF9pbnRlZ2VyID0gQ0hBUlBPUyAoc3RhcnRwKTsKKyAgaWYgKGIg IT0gY3VycmVudF9idWZmZXIpCisgICAgeworICAgICAgb2xkX2J1ZmZlciA9IGN1cnJlbnRfYnVm ZmVyOworICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAoYik7CisgICAgfQorICBpZiAody0+d2lu ZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcKKyAgICAgICYmICFOSUxQIChCVkFSIChjdXJyZW50 X2J1ZmZlciwgd2luZG93X3N0YXJ0X2VuZF9ob29rKSkpCisgICAgeworICAgICAgaWYgKCgocG9z aW50ID49IENIQVJQT1MgKHN0YXJ0cCkgJiYgcG9zaW50IDw9IEJVRl9aViAoYikpCisgICAgICAg ICAgICAmJiBDSEFSUE9TIChzdGFydHApID49IEJVRl9CRUdWIChiKQorICAgICAgICAgICAgJiYg Q0hBUlBPUyAoc3RhcnRwKSA8PSBCVUZfWlYgKGIpCisgICAgICAgICAgICAmJiBwb3NfdmlzaWJs ZV9wICh3LCBwb3NpbnQsICZ4LCAmeSwgJnJ0b3AsICZyYm90LCAmcm93aCwgJnZwb3MpKSkKKyAg ICAgICAgZnVsbHlfcCA9ICFydG9wICYmICFyYm90OworICAgICAgaWYgKGZ1bGx5X3ApCisgICAg ICAgIHsKKyAgICAgICAgICB3LT53aW5kb3dfc3RhcnRfZW5kX2hvb2tfaW50X3ByZXZpb3VzX3dp bmRvd19zdGFydCA9IHctPndpbmRvd19zdGFydF9lbmRfaG9va19pbnRfd2luZG93X3N0YXJ0Owor ICAgICAgICAgIHctPndpbmRvd19zdGFydF9lbmRfaG9va19pbnRfd2luZG93X3N0YXJ0ID0gc3Rh cnRwX2ludGVnZXI7CisgICAgICAgICAgaXRkYXRhID0gYmlkaV9zaGVsdmVfY2FjaGUgKCk7Cisg ICAgICAgICAgc3RhcnRfZGlzcGxheSAoJml0LCB3LCBzdGFydHApOworICAgICAgICAgIG1vdmVf aXRfdmVydGljYWxseSAoJml0LCB3aW5kb3dfYm94X2hlaWdodCAodykpOworICAgICAgICAgIGlm IChpdC5jdXJyZW50X3kgPCBpdC5sYXN0X3Zpc2libGVfeSkKKyAgICAgICAgICAgIG1vdmVfaXRf cGFzdF9lb2wgKCZpdCk7CisgICAgICAgICAgZW5kcCA9IChJVF9DSEFSUE9TIChpdCkpOworICAg ICAgICAgIHctPndpbmRvd19zdGFydF9lbmRfaG9va19pbnRfcHJldmlvdXNfd2luZG93X2VuZCA9 IHctPndpbmRvd19zdGFydF9lbmRfaG9va19pbnRfd2luZG93X2VuZDsKKyAgICAgICAgICB3LT53 aW5kb3dfc3RhcnRfZW5kX2hvb2tfaW50X3dpbmRvd19lbmQgPSBlbmRwOworICAgICAgICAgIGJp ZGlfdW5zaGVsdmVfY2FjaGUgKGl0ZGF0YSwgZmFsc2UpOworICAgICAgICAgIFNFVF9QVCAoc3Rh cnRwX2ludGVnZXIpOworICAgICAgICAgIHBib2xfc3RhcnRwID0gWElOVCAoRmxpbmVfYmVnaW5u aW5nX3Bvc2l0aW9uIChRbmlsKSk7CisgICAgICAgICAgU0VUX1BUIChlbmRwKTsKKyAgICAgICAg ICBwZW9sX2VuZHAgPSBYSU5UIChGbGluZV9lbmRfcG9zaXRpb24gKFFuaWwpKTsKKyAgICAgICAg ICBTRVRfUFQgKHBvc2ludCk7CisjaWZkZWYgR0xZUEhfREVCVUcKKyAgICAgICAgICBkZWJ1Z19t ZXRob2RfYWRkICh3LCAiJXMgLS0geDogJWQgfCB5OiAlZCB8IHN0YXJ0cDogJWQgfCBlbmRwOiAl ZCB8IHBib2xfc3RhcnRwOiAlZCB8IHBlb2xfZW5kcDogJWQiLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cmluZywgeCwgeSwgc3RhcnRwX2ludGVnZXIsIGVuZHAsIHBib2xfc3Rh cnRwLCBwZW9sX2VuZHApOworI2VuZGlmCisgICAgICAgICAgLyogUmVzZXQgdGhlIGZsYWcgX2Jl Zm9yZV8gY2FsbGluZyBMaXNwLCBub3QgYWZ0ZXIsIHNvIHRoYXQKKyAgICAgICAgICAgICBpZiBM aXNwIGRvZXMgc2lnbmFsIGFuIGVycm9yLCB0aGUgZmxhZyB3aWxsIGJlIHJlc2V0LCBhbmQKKyAg ICAgICAgICAgICB3b24ndCBjYXVzZSB0aGUgaG9vayB0byBiZSBjYWxsZWQgYWQgbmF1c2VhbS4g ICovCisgICAgICAgICAgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcgPSBmYWxzZTsK KyAgICAgICAgICAvKiBXaGVuIGNhbGxpbmcgTGlzcCBmcm9tIHJlZGlzcGxheSwgYWx3YXlzIHVz ZSBzYWZlX2NhbGwsIHRvIGJlCisgICAgICAgICAgICAgcHJvdGVjdGVkIGFnYWluc3QgZXJyb3Jz IHNpZ25hbGVkIGJ5IHRoYXQgTGlzcC4gICovCisgICAgICAgICAgLyogc2FmZV9jYWxsOiAgZm4s IGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUsIGFyZzYsIGFyZzcgICovCisgICAgICAgICAg c2FmZV9jYWxsICg4LAorICAgICAgICAgICAgICBRcnVuX2hvb2tfd2l0aF9hcmdzLAorICAgICAg ICAgICAgICBRd2luZG93X3N0YXJ0X2VuZF9ob29rLAorICAgICAgICAgICAgICB3aW5kb3csCisg ICAgICAgICAgICAgIG1ha2VfbnVtYmVyIChzdGFydHBfaW50ZWdlciksCisgICAgICAgICAgICAg IG1ha2VfbnVtYmVyIChlbmRwKSwKKyAgICAgICAgICAgICAgbWFrZV9udW1iZXIgKHBib2xfc3Rh cnRwKSwKKyAgICAgICAgICAgICAgbWFrZV9udW1iZXIgKHBlb2xfZW5kcCksCisgICAgICAgICAg ICAgIGZ1bGx5X3AgPyBRdCA6IFFuaWwpOworICAgICAgICAgIC8qIEF0IHRoZSBjYXRjaC1hbGwg d2hlbiBzY3JvbGxpbmcgd2l0aCB0aGUgbW91c2Ugd2hlZWwsIHRoaXMgbmV4dCBzZWN0aW9uIGNh dXNlcyBhIHZpc3VhbCBmbGFzaAorICAgICAgICAgIG9mIGN1cnNvciBpbiB0aGUgd3JvbmcgcG9z aXRpb24gZHVlIHRvIFNFVF9QVCBhYm92ZS4gICovCisgICAgICAgICAgaWYgKGZvcmNlKQorICAg ICAgICAgICAgeworICAgICAgICAgICAgICBjbGVhcl9nbHlwaF9tYXRyaXggKHctPmRlc2lyZWRf bWF0cml4KTsKKyAgICAgICAgICAgICAgdHJ5X3dpbmRvdyAod2luZG93LCBzdGFydHAsIDApOwor ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICB7CisjaWZk ZWYgR0xZUEhfREVCVUcKKyAgICAgICAgICAgIC8qIFNlZSB0aGUgZG9jLXN0cmluZyBmb3IgYHBv cy12aXNpYmxlLWluLXdpbmRvdy1wJy4gICovCisgICAgICAgICAgICBkZWJ1Z19tZXRob2RfYWRk ICh3LCAiJXMgLS0geDogJWQgfCB5OiAlZCB8IHJ0b3A6ICVkIHwgcmJvdCAlZCB8IHJvd2g6ICVk IHwgdnBvczogJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLCB4 LCB5LCBydG9wLCByYm90LCByb3doLCB2cG9zKTsKKyNlbmRpZgorICAgICAgICAgIH0KKyAgICB9 CisgIGlmIChvbGRfYnVmZmVyKQorICAgIHNldF9idWZmZXJfaW50ZXJuYWwgKG9sZF9idWZmZXIp OworfQogCiAvKiBQZXJoYXBzIGluIHRoZSBmdXR1cmUgYXZvaWQgcmVjZW50ZXJpbmcgd2luZG93 cyBpZiBpdAogICAgaXMgbm90IG5lY2Vzc2FyeTsgY3VycmVudGx5IHRoYXQgY2F1c2VzIHNvbWUg cHJvYmxlbXMuICAqLwpAQCAtMTM2ODcsNiArMTM3NzIsNyBAQCByZWRpc3BsYXlfaW50ZXJuYWwg KHZvaWQpCiAgICAgICAmJiBtYXRjaF9wCiAgICAgICAmJiAhdy0+Zm9yY2Vfc3RhcnQKICAgICAg ICYmICF3LT5vcHRpb25hbF9uZXdfc3RhcnQKKyAgICAgICYmICF3LT53aW5kb3dfc3RhcnRfZW5k X2hvb2tfZm9yY2UKICAgICAgIC8qIFBvaW50IG11c3QgYmUgb24gdGhlIGxpbmUgdGhhdCB3ZSBo YXZlIGluZm8gcmVjb3JkZWQgYWJvdXQuICAqLwogICAgICAgJiYgUFQgPj0gQ0hBUlBPUyAodGxi dWZwb3MpCiAgICAgICAmJiBQVCA8PSBaIC0gQ0hBUlBPUyAodGxlbmRwb3MpCkBAIC0xNTM4OCw2 ICsxNTQ3NCw4IEBAIHRyeV9zY3JvbGxpbmcgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0 X3RoaXNfb25lX3AsCiAgIC8qIFJ1biB3aW5kb3cgc2Nyb2xsIGZ1bmN0aW9ucy4gICovCiAgIHN0 YXJ0cCA9IHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBzdGFydHApOwogCisg IHJ1bl93aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHdpbmRvdywgc3RhcnRwLCBQVCwgaXQsICJ0cnlf c2Nyb2xsaW5nIiwgZmFsc2UpOworCiAgIC8qIERpc3BsYXkgdGhlIHdpbmRvdy4gIEdpdmUgdXAg aWYgbmV3IGZvbnRzIGFyZSBsb2FkZWQsIG9yIGlmIHBvaW50CiAgICAgIGRvZXNuJ3QgYXBwZWFy LiAgKi8KICAgaWYgKCF0cnlfd2luZG93ICh3aW5kb3csIHN0YXJ0cCwgMCkpCkBAIC0xNjA1Myw2 ICsxNjE0MSw3IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBq dXN0X3RoaXNfb25lX3ApCiAgIHB0cmRpZmZfdCBiZWdfdW5jaGFuZ2VkLCBlbmRfdW5jaGFuZ2Vk OwogICBpbnQgZnJhbWVfbGluZV9oZWlnaHQ7CiAgIGJvb2wgdXNlX2Rlc2lyZWRfbWF0cml4Owor ICBib29sIHdpbmRvd19zdGFydF9lbmRfaG9va19zdXBwcmVzc193c2YgPSBmYWxzZTsKIAogICBT RVRfVEVYVF9QT1MgKGxwb2ludCwgUFQsIFBUX0JZVEUpOwogICBvcG9pbnQgPSBscG9pbnQ7CkBA IC0xNjI0MywxMyArMTYzMzIsMTYgQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2lu ZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAogICAvKiBJZiBzb21lb25lIHNwZWNpZmllZCBh IG5ldyBzdGFydGluZyBwb2ludCBidXQgZGlkIG5vdCBpbnNpc3QsCiAgICAgIGNoZWNrIHdoZXRo ZXIgaXQgY2FuIGJlIHVzZWQuICAqLwotICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3 aW5kb3dfZnJvemVuX3AgKHcpKQorICBpZiAoKHctPm9wdGlvbmFsX25ld19zdGFydCB8fCB3LT53 aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UgfHwgd2luZG93X2Zyb3plbl9wICh3KSkKICAgICAg ICYmIENIQVJQT1MgKHN0YXJ0cCkgPj0gQkVHVgogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA8 PSBaVikKICAgICB7CisKKyAgICAgIGlmICh3LT53aW5kb3dfc3RhcnRfZW5kX2hvb2tfZm9yY2Ug JiYgIXctPm9wdGlvbmFsX25ld19zdGFydCAmJiAhd2luZG93X2Zyb3plbl9wICh3KSAmJiAhdy0+ Zm9yY2Vfc3RhcnQpCisgICAgICAgIHdpbmRvd19zdGFydF9lbmRfaG9va19zdXBwcmVzc193c2Yg PSB0cnVlOworCiAgICAgICBwdHJkaWZmX3QgaXRfY2hhcnBvczsKIAotICAgICAgdy0+b3B0aW9u YWxfbmV3X3N0YXJ0ID0gZmFsc2U7CiAgICAgICBzdGFydF9kaXNwbGF5ICgmaXQsIHcsIHN0YXJ0 cCk7CiAgICAgICBtb3ZlX2l0X3RvICgmaXQsIFBULCAwLCBpdC5sYXN0X3Zpc2libGVfeSwgLTEs CiAJCSAgTU9WRV9UT19QT1MgfCBNT1ZFX1RPX1ggfCBNT1ZFX1RPX1kpOwpAQCAtMTYyNzAsMTQg KzE2MzYyLDI4IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBq dXN0X3RoaXNfb25lX3ApCiAJICAgIHctPmZvcmNlX3N0YXJ0ID0gdHJ1ZTsKICNpZmRlZiBHTFlQ SF9ERUJVRwogCSAgaWYgKHctPmZvcmNlX3N0YXJ0KQotCSAgICB7Ci0JICAgICAgaWYgKHdpbmRv d19mcm96ZW5fcCAodykpCi0JCWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQg ZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7Ci0JICAgICAgZWxzZQotCQlkZWJ1Z19tZXRob2Rf YWRkICh3LCAic2V0IGZvcmNlX3N0YXJ0IGZyb20gb3B0aW9uYWxfbmV3X3N0YXJ0Iik7Ci0JICAg IH0KKyAgICB7CisgICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkKKyAgICAgICAgeworICAg ICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAicmVkaXNwbGF5X3dpbmRvdyAoZm9yY2Vfc3RhcnQp OiAgd2luZG93X2Zyb3plbl9wICh3KSIpOworICAgICAgfQorICAgICAgZWxzZSBpZiAody0+b3B0 aW9uYWxfbmV3X3N0YXJ0KQorICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcs ICJyZWRpc3BsYXlfd2luZG93IChmb3JjZV9zdGFydCk6ICB3LT5vcHRpb25hbF9uZXdfc3RhcnQi KTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYgKHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3Jj ZSkKKyAgICAgICAgeworICAgICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAicmVkaXNwbGF5X3dp bmRvdyAoZm9yY2Vfc3RhcnQpOiAgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX2ZvcmNlIik7Cisg ICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAo dywgInJlZGlzcGxheV93aW5kb3cgKGZvcmNlX3N0YXJ0KTogIFRoaXMgc2l0dWF0aW9uIGlzIG5v dCB5ZXQgY29udGVtcGxhdGVkLiIpOworICAgICAgfQorICAgIH0KICNlbmRpZgogCX0KKyAgICAg IHctPm9wdGlvbmFsX25ld19zdGFydCA9IGZhbHNlOworICAgICAgdy0+d2luZG93X3N0YXJ0X2Vu ZF9ob29rX2ZvcmNlID0gZmFsc2U7CiAgICAgfQogCiAgZm9yY2Vfc3RhcnQ6CkBAIC0xNjMwNSwx MSArMTY0MTEsMTggQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29s IGp1c3RfdGhpc19vbmVfcCkKIAkgdGhhbiB0byBnZXQgaW50byBhbiBpbmZpbml0ZSBsb29wIGNh bGxpbmcgdGhlIGhvb2sgZnVuY3Rpb25zCiAJIGFuZCBoYXZpbmcgdGhlbSBnZXQgbW9yZSBlcnJv cnMuICAqLwogICAgICAgaWYgKCF1cGRhdGVfbW9kZV9saW5lCi0JICB8fCAhIE5JTFAgKFZ3aW5k b3dfc2Nyb2xsX2Z1bmN0aW9ucykpCisJICB8fCAhIE5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0 aW9ucykKKwkgIHx8ICEgTklMUCAoQlZBUiAoY3VycmVudF9idWZmZXIsIHdpbmRvd19zdGFydF9l bmRfaG9vaykpKQogCXsKIAkgIHVwZGF0ZV9tb2RlX2xpbmUgPSB0cnVlOwogCSAgdy0+dXBkYXRl X21vZGVfbGluZSA9IHRydWU7Ci0JICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5jdGlv bnMgKHdpbmRvdywgc3RhcnRwKTsKKworICAvKiBSdW4gd2luZG93IHNjcm9sbCBmdW5jdGlvbnMu ICAqLworICBpZiAoIXdpbmRvd19zdGFydF9lbmRfaG9va19zdXBwcmVzc193c2YpCisgICAgc3Rh cnRwID0gcnVuX3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zICh3aW5kb3csIHN0YXJ0cCk7CisKKyAg cnVuX3dpbmRvd19zdGFydF9lbmRfaG9vayAod2luZG93LCBzdGFydHAsIFBULCBpdCwgInJlZGlz cGxheV93aW5kb3cgKGZvcmNlX3N0YXJ0KSIsIGZhbHNlKTsKKwogCX0KIAogICAgICAgaWYgKENI QVJQT1MgKHN0YXJ0cCkgPCBCRUdWKQpAQCAtMTY0NjAsOSArMTY1NzMsMTMgQEAgcmVkaXNwbGF5 X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAkgIGdv dG8gdHJ5X3RvX3Njcm9sbDsKIAl9CiAKKyAgLyogV2hlbiBzY3JvbGxpbmcgd2l0aCB0aGUgbW91 c2Ugd2hlZWwsIFBUIGhhcyBub3QgeWV0IGJlZW4gcmVzZXQgc28gd2UgdXNlIENIQVJQT1MgKHN0 YXJ0cCkuICAqLworICBydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rICh3aW5kb3csIHN0YXJ0cCwg Q0hBUlBPUyAoc3RhcnRwKSwgaXQsICJyZWRpc3BsYXlfd2luZG93OiAgY2F0Y2gtYWxsIiwgZmFs c2UpOworCiAjaWZkZWYgR0xZUEhfREVCVUcKLSAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJm b3JjZWQgd2luZG93IHN0YXJ0Iik7CisgICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAicmVkaXNw bGF5X3dpbmRvdzogIGZvcmNlZCB3aW5kb3cgc3RhcnQiKTsKICNlbmRpZgorCiAgICAgICBnb3Rv IGRvbmU7CiAgICAgfQogCkBAIC0xNjU3Nyw2ICsxNjY5NCw3IEBAIHJlZGlzcGxheV93aW5kb3cg KExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJICAgICBiZWNhdXNl IGEgd2luZG93IHNjcm9sbCBmdW5jdGlvbiBjYW4gaGF2ZSBjaGFuZ2VkIHRoZQogCSAgICAgYnVm ZmVyLiAgKi8KIAkgIHx8ICFOSUxQIChWd2luZG93X3Njcm9sbF9mdW5jdGlvbnMpCisJICB8fCAh TklMUCAoQlZBUiAoY3VycmVudF9idWZmZXIsIHdpbmRvd19zdGFydF9lbmRfaG9vaykpCiAJICB8 fCBNSU5JX1dJTkRPV19QICh3KQogCSAgfHwgISh1c2VkX2N1cnJlbnRfbWF0cml4X3AKIAkgICAg ICAgPSB0cnlfd2luZG93X3JldXNpbmdfY3VycmVudF9tYXRyaXggKHcpKSkKQEAgLTE2Nzc0LDYg KzE2ODkyLDggQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1 c3RfdGhpc19vbmVfcCkKICAgLyogUnVuIHNjcm9sbCBob29rcy4gICovCiAgIHN0YXJ0cCA9IHJ1 bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBpdC5jdXJyZW50LnBvcyk7CiAKKyAg cnVuX3dpbmRvd19zdGFydF9lbmRfaG9vayAod2luZG93LCBzdGFydHAsIFBULCBpdCwgInJlZGlz cGxheV93aW5kb3cgKHJlY2VudGVyKSIsIGZhbHNlKTsKKwogICAvKiBSZWRpc3BsYXkgdGhlIHdp bmRvdy4gICovCiAgIHVzZV9kZXNpcmVkX21hdHJpeCA9IGZhbHNlOwogICBpZiAoIWN1cnJlbnRf bWF0cml4X3VwX3RvX2RhdGVfcApAQCAtMTY3ODIsNiArMTY5MDIsNyBAQCByZWRpc3BsYXlfd2lu ZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogICAgICAgLyog RG9uJ3QgdXNlIHRyeV93aW5kb3dfcmV1c2luZ19jdXJyZW50X21hdHJpeCBpbiB0aGlzIGNhc2UK IAkgYmVjYXVzZSBpdCBjYW4gaGF2ZSBjaGFuZ2VkIHRoZSBidWZmZXIuICAqLwogICAgICAgfHwg IU5JTFAgKFZ3aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucykKKyAgICAgIHx8ICFOSUxQIChCVkFSIChj dXJyZW50X2J1ZmZlciwgd2luZG93X3N0YXJ0X2VuZF9ob29rKSkKICAgICAgIHx8ICFqdXN0X3Ro aXNfb25lX3AKICAgICAgIHx8IE1JTklfV0lORE9XX1AgKHcpCiAgICAgICB8fCAhKHVzZWRfY3Vy cmVudF9tYXRyaXhfcApAQCAtMTY5MDIsNyArMTcwMjMsMTMgQEAgcmVkaXNwbGF5X3dpbmRvdyAo TGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAkgIGNsZWFyX2dseXBo X21hdHJpeCAody0+ZGVzaXJlZF9tYXRyaXgpOwogCSAgaWYgKDEgPT0gdHJ5X3dpbmRvdyAod2lu ZG93LCBpdC5jdXJyZW50LnBvcywKIAkJCSAgICAgICBUUllfV0lORE9XX0NIRUNLX01BUkdJTlMp KQotCSAgICBnb3RvIGRvbmU7CisgICAgeworICAgICAgLyogVG8gYXZvaWQgYSB2aXN1YWwgaGlj ay11cCwgaXQgaXMgbmVjZXNzYXJ5IHRvIHNldCB0aGUgbGFzdCBhcmd1bWVudCB0byB0cnVlIC0t IHRoYXQgdHJpZ2dlcnMKKyAgICAgIGBjbGVhcl9nbHlwaF9tYXRyaXgnIGFuZCBgdHJ5X3dpbmRv dycgYWZ0ZXIgdGhlIGZ1bmN0aW9ucyBhdHRhY2hlZCB0byB0aGUgaG9vayBoYXZlIHJ1bi4gICov CisgICAgICBydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rICh3aW5kb3csIGl0LmN1cnJlbnQucG9z LCBQVCwgaXQsICJyZWRpc3BsYXlfd2luZG93IChwb3N0LXJlY2VudGVyKSIsIHRydWUpOworICAg ICAgZ290byBkb25lOworICAgIH0KKwogCX0KIAogICAgICAgLyogSWYgY2VudGVyaW5nIHBvaW50 IGZhaWxlZCB0byBtYWtlIHRoZSB3aG9sZSBsaW5lIHZpc2libGUsCg== --Multipart_Fri_Mar_11_08:21:24_2016-1--
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.