From unknown Mon Aug 18 14:15:18 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#5809 <5809@debbugs.gnu.org> To: bug#5809 <5809@debbugs.gnu.org> Subject: Status: 23.1.94; cross-reference by anchor yields in accurate position Reply-To: bug#5809 <5809@debbugs.gnu.org> Date: Mon, 18 Aug 2025 21:15:18 +0000 retitle 5809 23.1.94; cross-reference by anchor yields in accurate position reassign 5809 emacs submitter 5809 Eli Zaretskii severity 5809 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 31 05:59:37 2010 Received: (at submit) by debbugs.gnu.org; 31 Mar 2010 09:59:37 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nwui0-0004cc-Ri for submit@debbugs.gnu.org; Wed, 31 Mar 2010 05:59:37 -0400 Received: from mail.gnu.org ([199.232.76.166] helo=mx10.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nwuhx-0004cV-V0 for submit@debbugs.gnu.org; Wed, 31 Mar 2010 05:59:34 -0400 Received: from lists.gnu.org ([199.232.76.165]:55872) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Nwuhv-0007kT-5l for submit@debbugs.gnu.org; Wed, 31 Mar 2010 05:59:31 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nwuhu-0003qP-DS for bug-gnu-emacs@gnu.org; Wed, 31 Mar 2010 05:59:30 -0400 Received: from [140.186.70.92] (port=32950 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nwuhr-0003nC-AC for bug-gnu-emacs@gnu.org; Wed, 31 Mar 2010 05:59:28 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.0 (2010-01-18) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_WEB autolearn=no version=3.3.0 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Nwuho-0007Xo-2J for bug-gnu-emacs@gnu.org; Wed, 31 Mar 2010 05:59:27 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:63635) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nwuhn-0007XE-Hu for bug-gnu-emacs@gnu.org; Wed, 31 Mar 2010 05:59:23 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0L0500M004WI1V00@a-mtaout22.012.net.il> for bug-gnu-emacs@gnu.org; Wed, 31 Mar 2010 12:58:17 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.127.176.135]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0500L2R514NM20@a-mtaout22.012.net.il> for bug-gnu-emacs@gnu.org; Wed, 31 Mar 2010 12:58:17 +0300 (IDT) Date: Wed, 31 Mar 2010 12:58:25 +0300 From: Eli Zaretskii Subject: 23.1.94; cross-reference by anchor yields in accurate position X-012-Sender: halo1@inter.net.il To: bug-gnu-emacs@gnu.org Message-id: <837hoszubi.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-Spam-Score: -3.2 (---) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.9 (---) emacs -Q C-u C-h i /path/to/elisp RET g Handling Errors RET Now press TAB repeatedly to move point to the "Definition of signal" hyperlink, and press RET => you will find yourself in the "Signaling Errors" node, but 3 lines above the place where the description of `signal' begins. I see this on GNU/Linux with Texinfo 4.12 and on MS-Windows with Texinfo 4.8. (But I don't think makeinfo is the culprit, see below.) This is a regression from Emacs 22.3, which behaves as expected. Emacs 23.1 has the same problem as the current pretest. (Both 22.3 and 23.1 were tested with the same Info files as 23.1.94.) The trunk has the same problem as well. In GNU Emacs 23.1.94.1 (i386-mingw-nt5.1.2600) of 2010-03-12 on HOME-C4E4A596F7 Windowing system distributor `Microsoft Corp.', version 5.1.2600 configured using `configure --with-gcc (3.4)' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: ENU value of $XMODIFIERS: nil locale-coding-system: cp1255 default enable-multibyte-characters: t Major mode: Mail Minor modes in effect: shell-dirtrack-mode: t diff-auto-refine-mode: t flyspell-mode: t desktop-save-mode: t show-paren-mode: t display-time-mode: t tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-encryption-mode: t auto-compression-mode: t temp-buffer-resize-mode: t line-number-mode: t abbrev-mode: t Recent input: C-z C-z C-z C-z C-z C-z l C-x = C-x C-x C-x C-s C-x 4 a H o w SPC t o SPC r e - t h r o w SPC a SPC s i g n a l SPC c a u g h t SPC b y SPC c i o o n d i t i o n - c a s e . C-x C-s C-SPC M-w C-y SPC E x p l a i n SPC h o w SPC t o SPC r e - t h r o w SPC a SPC s i g n a l . C-x C-s C-x # C-x k C-x k r C-c C-y C-x C-x C-SPC C-w C-SPC C-w M-z M-z M-z M-z C-w I S-SPC a d d e d SPC t h i s SPC t o SPC t h e SPC E L i s p SPC m a n u a l . C-c C-s M-x r e p o p r t - e m Recent messages: Saving file d:/gnu/bzr/emacs/emacs-23/doc/lispref/ChangeLog... Wrote d:/gnu/bzr/emacs/emacs-23/doc/lispref/ChangeLog When done with a buffer, type C-x # Mark set [2 times] Saving file d:/usr/tmp/bzr_log.59l73j... Wrote d:/usr/tmp/bzr_log.59l73j Mark set [5 times] Sending... Added to d:/usr/eli/rmail/SENT.MAIL Sending...done Load-path shadows: None found. Features: (shadow emacsbug debug rmailedit tramp-imap assoc tramp-gw tramp-fish tramp-cache tramp-ftp tramp-cmds tramp shell format-spec tramp-compat trampver iso-transl compare-w whitespace diff-mode texinfo crm thingatpt rmailout mule-util ebuff-menu electric descr-text dabbrev pp help-mode view auth-source message ecomplete rfc822 mml mml-sec password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums nnheader gnus-util netrc mm-util mail-prsvr gmm-utils wid-edit mailheader canlock hashcash smtpmail multi-isearch mailalias mailabbrev sendmail conf-mode newcomment ld-script sh-script executable dired-x dired-aux dired tcl generic nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok sgml-mode arc-mode archive-mode parse-time python-21 python comint ring org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs org-html org-exp org-exp-blocks org-agenda org-info org-gnus org-bibtex org-bbdb org byte-opt bytecomp byte-compile advice help-fns advice-preload org-footnote org-src org-list org-faces org-compat org-macs time-date noutline outline easy-mmode flyspell ispell add-log jka-compr vc-bzr sha1 hex-util make-mode info cc-mode cc-fonts easymenu cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs regexp-opt vc-cvs rmailsum rmail mail-utils desktop server filecache saveplace generic-x paren battery time tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces cus-face files text-properties overlay md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process multi-tty emacs) From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 31 07:17:37 2010 Received: (at 5809) by debbugs.gnu.org; 31 Mar 2010 11:17:37 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NwvvV-0005CA-46 for submit@debbugs.gnu.org; Wed, 31 Mar 2010 07:17:37 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NwvvT-0005C2-H9 for 5809@debbugs.gnu.org; Wed, 31 Mar 2010 07:17:36 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0L05001008KXP800@a-mtaout22.012.net.il> for 5809@debbugs.gnu.org; Wed, 31 Mar 2010 14:17:17 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.127.176.135]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L050005U8OSIQ50@a-mtaout22.012.net.il>; Wed, 31 Mar 2010 14:17:17 +0300 (IDT) Date: Wed, 31 Mar 2010 14:17:26 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <837hoszubi.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: Eli Zaretskii Message-id: <83634czqnt.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.7 (-) > Date: Wed, 31 Mar 2010 12:58:25 +0300 > From: Eli Zaretskii s/in accurate/inaccurate/ Sorry for sloppy typing. From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 31 11:11:52 2010 Received: (at 5809) by debbugs.gnu.org; 31 Mar 2010 15:11:52 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NwzaC-0007C0-0Y for submit@debbugs.gnu.org; Wed, 31 Mar 2010 11:11:52 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nwza9-0007Bv-TK for 5809@debbugs.gnu.org; Wed, 31 Mar 2010 11:11:50 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.54.39.cable.starman.ee [82.131.54.39]) by mx1.starman.ee (Postfix) with ESMTP id D1E643F40BC; Wed, 31 Mar 2010 18:11:39 +0300 (EEST) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> Date: Wed, 31 Mar 2010 18:08:04 +0300 In-Reply-To: <837hoszubi.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 31 Mar 2010 12:58:25 +0300") Message-ID: <87hbnwy2un.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > emacs -Q > C-u C-h i /path/to/elisp RET > g Handling Errors RET > > Now press TAB repeatedly to move point to the "Definition of signal" > hyperlink, and press RET => you will find yourself in the "Signaling > Errors" node, but 3 lines above the place where the description of > `signal' begins. > > I see this on GNU/Linux with Texinfo 4.12 and on MS-Windows with > Texinfo 4.8. (But I don't think makeinfo is the culprit, see below.) > > This is a regression from Emacs 22.3, which behaves as expected. > Emacs 23.1 has the same problem as the current pretest. (Both 22.3 > and 23.1 were tested with the same Info files as 23.1.94.) The trunk > has the same problem as well. This is a known side-effect of the breadcrumbs feature. When you set `Info-breadcrumbs-depth' to 0, everything is ok. In bug#4147 we tried to put Info breadcrumbs in the header window. -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 31 11:55:49 2010 Received: (at 5809) by debbugs.gnu.org; 31 Mar 2010 15:55:50 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nx0Gj-0007SJ-As for submit@debbugs.gnu.org; Wed, 31 Mar 2010 11:55:49 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nx0Gg-0007SE-VL for 5809@debbugs.gnu.org; Wed, 31 Mar 2010 11:55:48 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0L0500B00LEEEN00@a-mtaout22.012.net.il> for 5809@debbugs.gnu.org; Wed, 31 Mar 2010 18:55:08 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.127.176.135]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L05007DTLJVHSA0@a-mtaout22.012.net.il>; Wed, 31 Mar 2010 18:55:08 +0300 (IDT) Date: Wed, 31 Mar 2010 18:55:17 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <87hbnwy2un.fsf@mail.jurta.org> X-012-Sender: halo1@inter.net.il To: Juri Linkov Message-id: <83y6h8xz8a.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.6 (-) > From: Juri Linkov > Cc: 5809@debbugs.gnu.org > Date: Wed, 31 Mar 2010 18:08:04 +0300 > > This is a known side-effect of the breadcrumbs feature. > When you set `Info-breadcrumbs-depth' to 0, everything is ok. I hope this will be fixed nonetheless. There's no particular reason why the breadcrumbs should defeat cross-references. From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 01 14:07:14 2010 Received: (at 5809) by debbugs.gnu.org; 1 Apr 2010 18:07:14 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxOnS-00069f-BR for submit@debbugs.gnu.org; Thu, 01 Apr 2010 14:07:14 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxOnP-00069a-Fm for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 14:07:12 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.34.136.cable.starman.ee [82.131.34.136]) by mx1.starman.ee (Postfix) with ESMTP id AC05F3F40C4; Thu, 1 Apr 2010 21:07:01 +0300 (EEST) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> Date: Thu, 01 Apr 2010 21:06:27 +0300 In-Reply-To: <83y6h8xz8a.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 31 Mar 2010 18:55:17 +0300") Message-ID: <8739zf5bif.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.2 (--) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) >> This is a known side-effect of the breadcrumbs feature. >> When you set `Info-breadcrumbs-depth' to 0, everything is ok. > > I hope this will be fixed nonetheless. There's no particular reason > why the breadcrumbs should defeat cross-references. Maybe we should disable breadcrumbs in 23.2? -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 01 14:13:24 2010 Received: (at 5809) by debbugs.gnu.org; 1 Apr 2010 18:13:24 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxOtQ-0006Bi-HZ for submit@debbugs.gnu.org; Thu, 01 Apr 2010 14:13:24 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxOtO-0006Bc-A4 for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 14:13:23 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0L0700F00MKDOK00@a-mtaout20.012.net.il> for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 21:13:02 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0700F4MMLO1930@a-mtaout20.012.net.il>; Thu, 01 Apr 2010 21:13:02 +0300 (IDT) Date: Thu, 01 Apr 2010 21:13:02 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <8739zf5bif.fsf@mail.jurta.org> X-012-Sender: halo1@inter.net.il To: Juri Linkov Message-id: <83y6h7vy6p.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> X-Spam-Score: -1.8 (-) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.8 (-) > From: Juri Linkov > Cc: 5809@debbugs.gnu.org > Date: Thu, 01 Apr 2010 21:06:27 +0300 > > >> This is a known side-effect of the breadcrumbs feature. > >> When you set `Info-breadcrumbs-depth' to 0, everything is ok. > > > > I hope this will be fixed nonetheless. There's no particular reason > > why the breadcrumbs should defeat cross-references. > > Maybe we should disable breadcrumbs in 23.2? I cannot believe this is so hard to fix properly. Can you describe the details? From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 01 14:39:39 2010 Received: (at 5809) by debbugs.gnu.org; 1 Apr 2010 18:39:39 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxPIo-0006NZ-Pd for submit@debbugs.gnu.org; Thu, 01 Apr 2010 14:39:38 -0400 Received: from smtp-out2.starman.ee ([85.253.0.4] helo=mx2.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxPIm-0006NT-IH for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 14:39:37 -0400 X-Virus-Scanned: by Amavisd-New at mx2.starman.ee Received: from mail.starman.ee (82.131.34.136.cable.starman.ee [82.131.34.136]) by mx2.starman.ee (Postfix) with ESMTP id E95933F4084; Thu, 1 Apr 2010 21:39:26 +0300 (EEST) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> Date: Thu, 01 Apr 2010 21:30:30 +0300 In-Reply-To: <83y6h7vy6p.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 01 Apr 2010 21:13:02 +0300") Message-ID: <87y6h7uitd.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) >> >> This is a known side-effect of the breadcrumbs feature. >> >> When you set `Info-breadcrumbs-depth' to 0, everything is ok. >> > >> > I hope this will be fixed nonetheless. There's no particular reason >> > why the breadcrumbs should defeat cross-references. >> >> Maybe we should disable breadcrumbs in 23.2? > > I cannot believe this is so hard to fix properly. Can you describe > the details? Info breadcrumbs are currently implemented by inserting a string into the Info buffer. This breaks all point positions that Info functions are relied upon. It is a daunting task to try to account these offsets for the lengths of breadcrumb strings inserted in all visited nodes above the current node in the current Info file. This practically means rewriting the core logic of info.el just before the release. -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 01 16:23:25 2010 Received: (at 5809) by debbugs.gnu.org; 1 Apr 2010 20:23:25 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxQvF-000715-2K for submit@debbugs.gnu.org; Thu, 01 Apr 2010 16:23:25 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxQvC-000710-Mb for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 16:23:24 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0L0700K00SJX4300@a-mtaout20.012.net.il> for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 23:22:41 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0700FW3SLRTGD0@a-mtaout20.012.net.il>; Thu, 01 Apr 2010 23:22:40 +0300 (IDT) Date: Thu, 01 Apr 2010 23:22:41 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <87y6h7uitd.fsf@mail.jurta.org> X-012-Sender: halo1@inter.net.il To: Juri Linkov Message-id: <83wrwqx6r2.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > From: Juri Linkov > Cc: 5809@debbugs.gnu.org > Date: Thu, 01 Apr 2010 21:30:30 +0300 > > >> Maybe we should disable breadcrumbs in 23.2? > > > > I cannot believe this is so hard to fix properly. Can you describe > > the details? > > Info breadcrumbs are currently implemented by inserting a string into > the Info buffer. This breaks all point positions that Info functions > are relied upon. It is a daunting task to try to account these offsets > for the lengths of breadcrumb strings inserted in all visited nodes > above the current node in the current Info file. This practically > means rewriting the core logic of info.el just before the release. I was talking about fixing this on the trunk. For Emacs 23.2, I indeed think we should turn off this feature by default. For the trunk, isn't it true that the function which actually goes to a location is Info-find-node-2, and that all the others call it? If so, this is the main place to account for the inserted breadcrumbs. We could maintain in some data structure the buffer positions and length of each breadcrumbs line we insert, and then use that data structure in Info-find-node-2 to compute the summary offset to be applied in the current node. WDYT? From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 01 16:49:58 2010 Received: (at 5809) by debbugs.gnu.org; 1 Apr 2010 20:49:58 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxRKw-0007w5-Fn for submit@debbugs.gnu.org; Thu, 01 Apr 2010 16:49:58 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxRKt-0007vi-JA for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 16:49:57 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0L0700000TBC9U00@a-mtaout22.012.net.il> for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 23:49:49 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0700MQATUZPA30@a-mtaout22.012.net.il>; Thu, 01 Apr 2010 23:49:49 +0300 (IDT) Date: Thu, 01 Apr 2010 23:49:49 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <83wrwqx6r2.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: juri@jurta.org, 5809@debbugs.gnu.org Message-id: <83vdcax5hu.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: 5809 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.8 (-) > Date: Thu, 01 Apr 2010 23:22:41 +0300 > From: Eli Zaretskii > Cc: 5809@debbugs.gnu.org > > For the trunk, isn't it true that the function which actually goes to > a location is Info-find-node-2, and that all the others call it? If > so, this is the main place to account for the inserted breadcrumbs. > We could maintain in some data structure the buffer positions and > length of each breadcrumbs line we insert, and then use that data > structure in Info-find-node-2 to compute the summary offset to be > applied in the current node. Here's another, perhaps better idea: how about if, instead of inserting breadcrumbs as text into the buffer, we put an overlay there with a display property whose value is the breadcrumbs as a string? This way, buffer positions are not affected at all. From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 01 17:59:39 2010 Received: (at 5809) by debbugs.gnu.org; 1 Apr 2010 21:59:39 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxSQM-000073-Mj for submit@debbugs.gnu.org; Thu, 01 Apr 2010 17:59:39 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxSQK-00006t-6I for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 17:59:36 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.34.136.cable.starman.ee [82.131.34.136]) by mx1.starman.ee (Postfix) with ESMTP id C256F3F40BF; Fri, 2 Apr 2010 00:59:26 +0300 (EEST) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> Date: Fri, 02 Apr 2010 00:10:03 +0300 In-Reply-To: <83vdcax5hu.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 01 Apr 2010 23:49:49 +0300") Message-ID: <878w96rgd1.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.7 (--) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) >> For the trunk, isn't it true that the function which actually goes to >> a location is Info-find-node-2, and that all the others call it? If >> so, this is the main place to account for the inserted breadcrumbs. >> We could maintain in some data structure the buffer positions and >> length of each breadcrumbs line we insert, and then use that data >> structure in Info-find-node-2 to compute the summary offset to be >> applied in the current node. > > Here's another, perhaps better idea: how about if, instead of > inserting breadcrumbs as text into the buffer, we put an overlay there > with a display property whose value is the breadcrumbs as a string? > This way, buffer positions are not affected at all. I already tried this and some other kludges that showed their disadvantages. In bug#4147 we concluded that the best solution would be to put breadcrumbs to the header line where breadcrumb navigation links belong to along with the links to the up/next/previous nodes. Currently the header line has the limitation in only one glyph row. But this is a general problem that should be solved one way or the other, so different modes like Info, proced, ruler-mode could have their own header window. There is a successful prototype implementation in bug#4147 that you also helped to develop. -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 01 17:59:39 2010 Received: (at 5809) by debbugs.gnu.org; 1 Apr 2010 21:59:39 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxSQN-000075-Bk for submit@debbugs.gnu.org; Thu, 01 Apr 2010 17:59:39 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxSQJ-00006s-OL for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 17:59:36 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.34.136.cable.starman.ee [82.131.34.136]) by mx1.starman.ee (Postfix) with ESMTP id 3F4923F40BC; Fri, 2 Apr 2010 00:59:26 +0300 (EEST) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> Date: Fri, 02 Apr 2010 00:09:04 +0300 In-Reply-To: <83wrwqx6r2.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 01 Apr 2010 23:22:41 +0300") Message-ID: <87hbnuvphb.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > I was talking about fixing this on the trunk. For Emacs 23.2, I > indeed think we should turn off this feature by default. I'm going to install this on the `emacs-23' branch if there are no objections: === modified file 'lisp/info.el' --- lisp/info.el 2010-03-03 19:23:20 +0000 +++ lisp/info.el 2010-04-01 20:57:33 +0000 @@ -235,7 +235,7 @@ (defcustom Info-refill-paragraphs nil :type 'boolean :group 'info) -(defcustom Info-breadcrumbs-depth 4 +(defcustom Info-breadcrumbs-depth 0 "Depth of breadcrumbs to display. 0 means do not display breadcrumbs." :type 'integer) -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 01 18:16:10 2010 Received: (at 5809) by debbugs.gnu.org; 1 Apr 2010 22:16:10 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxSgM-0000Du-I0 for submit@debbugs.gnu.org; Thu, 01 Apr 2010 18:16:10 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.183] helo=ironport2-out.pppoe.ca) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxSgL-0000Dp-Aw for 5809@debbugs.gnu.org; Thu, 01 Apr 2010 18:16:09 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAP63tEtFpZE8/2dsb2JhbACbSXK2OoUBBIsm X-IronPort-AV: E=Sophos;i="4.51,350,1267419600"; d="scan'208";a="60098409" Received: from 69-165-145-60.dsl.teksavvy.com (HELO pastel.home) ([69.165.145.60]) by ironport2-out.pppoe.ca with ESMTP; 01 Apr 2010 18:16:05 -0400 Received: by pastel.home (Postfix, from userid 20848) id CD69B85F0; Thu, 1 Apr 2010 18:16:04 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Message-ID: References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> Date: Thu, 01 Apr 2010 18:16:04 -0400 In-Reply-To: <83vdcax5hu.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 01 Apr 2010 23:49:49 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.1 (--) X-Debbugs-Envelope-To: 5809 Cc: juri@jurta.org, 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.1 (--) > Here's another, perhaps better idea: how about if, instead of > inserting breadcrumbs as text into the buffer, we put an overlay there > with a display property whose value is the breadcrumbs as a string? > This way, buffer positions are not affected at all. That was my thought as well, but then you can't "click" on breadcrumbs with the keyboard any more. Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 03:08:04 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 07:08:04 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nxaz6-0003QK-MN for submit@debbugs.gnu.org; Fri, 02 Apr 2010 03:08:04 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nxaz4-0003Pz-4s for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 03:08:03 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0L0800L00MFB4G00@a-mtaout22.012.net.il> for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 10:07:43 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0800LAIMGU4H00@a-mtaout22.012.net.il>; Fri, 02 Apr 2010 10:07:43 +0300 (IDT) Date: Fri, 02 Apr 2010 10:07:44 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: X-012-Sender: halo1@inter.net.il To: Stefan Monnier Message-id: <83sk7ewcvz.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 5809 Cc: juri@jurta.org, 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.8 (-) > From: Stefan Monnier > Cc: juri@jurta.org, 5809@debbugs.gnu.org > Date: Thu, 01 Apr 2010 18:16:04 -0400 > > > Here's another, perhaps better idea: how about if, instead of > > inserting breadcrumbs as text into the buffer, we put an overlay there > > with a display property whose value is the breadcrumbs as a string? > > This way, buffer positions are not affected at all. > > That was my thought as well, but then you can't "click" on breadcrumbs > with the keyboard any more. "Clicking" on breadcrumbs with a keyboard is the same as typing "u", so I don't see this as a loss. And if we think this _is_ a loss, we could add a new feature. Or maybe using the `cursor' property on the overlay will do the trick even without any new features. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 10:19:42 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 14:19:42 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nxhio-0006Y2-Ex for submit@debbugs.gnu.org; Fri, 02 Apr 2010 10:19:42 -0400 Received: from rcsinet11.oracle.com ([148.87.113.123]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nxhim-0006Xw-Hz for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 10:19:41 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by rcsinet11.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o32EJXXe008243 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 2 Apr 2010 14:19:35 GMT Received: from acsmt355.oracle.com (acsmt355.oracle.com [141.146.40.155]) by acsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o2VG5jrQ006179; Fri, 2 Apr 2010 14:19:32 GMT Received: from abhmt003.oracle.com by acsmt355.oracle.com with ESMTP id 133254561270217860; Fri, 02 Apr 2010 07:17:40 -0700 Received: from dradamslap1 (/10.175.216.242) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 02 Apr 2010 07:17:39 -0700 From: "Drew Adams" To: "'Eli Zaretskii'" , "'Stefan Monnier'" References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org><83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org><83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org><83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Fri, 2 Apr 2010 07:17:35 -0700 Message-ID: <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <83sk7ewcvz.fsf@gnu.org> Thread-Index: AcrSNtgnpR3Z2r8aTzGAPSZR0I8CMAANguvA X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt355.oracle.com [141.146.40.155] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090201.4BB5FCF5.0096:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) > > > Here's another, perhaps better idea: how about if, instead of > > > inserting breadcrumbs as text into the buffer, we put an > > > overlay there with a display property whose value is the > > > breadcrumbs as a string? > > > This way, buffer positions are not affected at all. > > > > That was my thought as well, but then you can't "click" on > > breadcrumbs with the keyboard any more. > > "Clicking" on breadcrumbs with a keyboard is the same as typing "u", > so I don't see this as a loss. And if we think this _is_ a loss, we > could add a new feature. Or maybe using the `cursor' property on the > overlay will do the trick even without any new features. Obviously, the ideal situation will be if both (a) breadcrumbs function fully and (b) cross references and other features that reference positions function accurately. That's what we're looking for, and that quest is good. If, however, we ultimately find we need to, or decide to, settle for something less than ideal, then there are different desirable qualities that could be dropped. IOW it would be a trade-off. I would just point out that things such as cross references are not completely broken by breadcrumbs, IIUC. You are taken to the correct node in all cases, I believe. Point is just not always moved to the exact location we would like - it is sometimes moved nearby. It might be decided that always respecting destination position exactly is a must-have or is considered more important than the convenience (in terms of orientation/help and navigation) of breadcrumbs. But let's at least be aware that a trade-off is involved. It should not be a foregone conclusion to toss out the baby with the bathwater. Keep in mind too that in some documentation systems, which don't even have the fine-grained "node" size of Info (on average), cross references generally do not take you to an exact destination position. They just get you to the appropriate section. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 10:39:29 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 14:39:29 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nxi1x-0006hR-0Q for submit@debbugs.gnu.org; Fri, 02 Apr 2010 10:39:29 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nxi1u-0006hM-Gt for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 10:39:27 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0L0900B0073NGQ00@a-mtaout20.012.net.il> for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 17:39:20 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0900ASG7DISR10@a-mtaout20.012.net.il>; Fri, 02 Apr 2010 17:39:18 +0300 (IDT) Date: Fri, 02 Apr 2010 17:39:20 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> X-012-Sender: halo1@inter.net.il To: Drew Adams Message-id: <83d3yhx6jr.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.0 (-) > From: "Drew Adams" > Cc: <5809@debbugs.gnu.org> > Date: Fri, 2 Apr 2010 07:17:35 -0700 > > Keep in mind too that in some documentation systems, which don't even have the > fine-grained "node" size of Info (on average), cross references generally do not > take you to an exact destination position. They just get you to the appropriate > section. That Info does support this feature is one of its advantages, and we should not lose it, IMO. Without it, reading a large manual as a reference is a PITA. Besides, it simply feels as a bug (and actually is): you are placed in the middle of a sentence that, more often than not, has nothing to do with the subject you are after. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 11:27:37 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 15:27:37 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NximX-0006yP-1R for submit@debbugs.gnu.org; Fri, 02 Apr 2010 11:27:37 -0400 Received: from rcsinet11.oracle.com ([148.87.113.123]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NximU-0006yK-QI for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 11:27:35 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by rcsinet11.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o32FRRKR031438 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 2 Apr 2010 15:27:29 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by acsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o329qJnG029609; Fri, 2 Apr 2010 15:27:25 GMT Received: from abhmt013.oracle.com by acsmt354.oracle.com with ESMTP id 141891471270221971; Fri, 02 Apr 2010 08:26:11 -0700 Received: from dradamslap1 (/10.175.216.242) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 02 Apr 2010 08:26:11 -0700 From: "Drew Adams" To: "'Eli Zaretskii'" References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> <83d3yhx6jr.fsf@gnu.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Fri, 2 Apr 2010 08:26:11 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <83d3yhx6jr.fsf@gnu.org> Thread-Index: AcrSckk4cP4m8N7RQrO81mQ6hoTxJwABdmZg X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt353.oracle.com [141.146.40.153] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090206.4BB60CDF.001B:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) > > Keep in mind too that in some documentation systems, which > > don't even have the fine-grained "node" size of Info (on > > average), cross references generally do not > > take you to an exact destination position. They just get > > you to the appropriate section. > > That Info does support this feature is one of its advantages, and we > should not lose it, IMO. Without it, reading a large manual as a > reference is a PITA. > > Besides, it simply feels as a bug (and actually is): you are placed in > the middle of a sentence that, more often than not, has nothing to do > with the subject you are after. I think everyone agrees that it is a desirable feature. If we can have both exact cursor destination and breadcrumbs, that will be ideal. Both are useful features. It is somewhat disorienting to not have point land only nearby and not at exactly the right spot. And it is disorienting to not immediately see where you are in the document hierarchy (beyond just immediate up, next, and prev nodes). We should aim to get both working properly together. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 12:16:29 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 16:16:29 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxjXp-0007GE-Cz for submit@debbugs.gnu.org; Fri, 02 Apr 2010 12:16:29 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxjXm-0007G9-IZ for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 12:16:27 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.33.32.cable.starman.ee [82.131.33.32]) by mx1.starman.ee (Postfix) with ESMTP id ABAA33F40C0; Fri, 2 Apr 2010 19:16:16 +0300 (EEST) From: Juri Linkov To: Stefan Monnier Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> Date: Fri, 02 Apr 2010 19:14:09 +0300 In-Reply-To: (Stefan Monnier's message of "Thu, 01 Apr 2010 18:16:04 -0400") Message-ID: <87d3yi85sv.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) >> Here's another, perhaps better idea: how about if, instead of >> inserting breadcrumbs as text into the buffer, we put an overlay there >> with a display property whose value is the breadcrumbs as a string? >> This way, buffer positions are not affected at all. > > That was my thought as well, but then you can't "click" on breadcrumbs > with the keyboard any more. You can't click with the keyboard on the navigation up/next/prev links in the header line too. I have not seen any complaints on that. The header line has one advantage over links - it doesn't scroll and always stays on the top. -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 12:32:34 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 16:32:34 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxjnN-0007MO-Ox for submit@debbugs.gnu.org; Fri, 02 Apr 2010 12:32:33 -0400 Received: from acsinet11.oracle.com ([141.146.126.233]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxjnM-0007MJ-4I for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 12:32:32 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by acsinet11.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o32GWPwW031752 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 2 Apr 2010 16:32:27 GMT Received: from acsmt354.oracle.com (acsmt354.oracle.com [141.146.40.154]) by acsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o32FZmOQ019081; Fri, 2 Apr 2010 16:32:24 GMT Received: from abhmt009.oracle.com by acsmt353.oracle.com with ESMTP id 142057401270225917; Fri, 02 Apr 2010 09:31:57 -0700 Received: from dradamslap1 (/10.175.216.242) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 02 Apr 2010 09:31:56 -0700 From: "Drew Adams" To: "'Juri Linkov'" , "'Stefan Monnier'" References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org><83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org><83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org><83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Fri, 2 Apr 2010 09:31:57 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <87d3yi85sv.fsf@mail.jurta.org> Thread-Index: AcrSgcdPOsgdif0RSoWV0FzUnvY1zAAACrow X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt354.oracle.com [141.146.40.154] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090205.4BB61C18.0179:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) > The header line has one advantage over links - it doesn't scroll > and always stays on the top. Yes, that's a significant advantage for orientation and navigability, IMO. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 13:42:46 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 17:42:46 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxktK-0007mZ-7C for submit@debbugs.gnu.org; Fri, 02 Apr 2010 13:42:46 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxktI-0007mU-MS for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 13:42:44 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0L0900K00FSU0X00@a-mtaout22.012.net.il> for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 20:41:42 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0900IYPFTHRK30@a-mtaout22.012.net.il>; Fri, 02 Apr 2010 20:41:42 +0300 (IDT) Date: Fri, 02 Apr 2010 20:41:44 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <87d3yi85sv.fsf@mail.jurta.org> X-012-Sender: halo1@inter.net.il To: Juri Linkov Message-id: <838w95wy3r.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.7 (-) > From: Juri Linkov > Cc: Eli Zaretskii , 5809@debbugs.gnu.org > Date: Fri, 02 Apr 2010 19:14:09 +0300 > > > That was my thought as well, but then you can't "click" on breadcrumbs > > with the keyboard any more. > > You can't click with the keyboard on the navigation up/next/prev links > in the header line too. I have not seen any complaints on that. > > The header line has one advantage over links - it doesn't scroll > and always stays on the top. You can move the overlay upon scrolling to achieve the same effect. The advantage of overlays is that you don't need any changes to the display engine. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 14:02:03 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 18:02:03 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxlBz-0007uo-HN for submit@debbugs.gnu.org; Fri, 02 Apr 2010 14:02:03 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.183] helo=ironport2-out.pppoe.ca) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxlBx-0007uT-Pp for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 14:02:02 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEALrNtUtFpZE8/2dsb2JhbACbSHK0PIUFBIsn X-IronPort-AV: E=Sophos;i="4.51,354,1267419600"; d="scan'208";a="60128964" Received: from 69-165-145-60.dsl.teksavvy.com (HELO pastel.home) ([69.165.145.60]) by ironport2-out.pppoe.ca with ESMTP; 02 Apr 2010 14:01:56 -0400 Received: by pastel.home (Postfix, from userid 20848) id CBDE385F0; Fri, 2 Apr 2010 14:01:56 -0400 (EDT) From: Stefan Monnier To: Juri Linkov Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Message-ID: References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> Date: Fri, 02 Apr 2010 14:01:56 -0400 In-Reply-To: <87d3yi85sv.fsf@mail.jurta.org> (Juri Linkov's message of "Fri, 02 Apr 2010 19:14:09 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.1 (--) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.1 (--) >>> Here's another, perhaps better idea: how about if, instead of >>> inserting breadcrumbs as text into the buffer, we put an overlay there >>> with a display property whose value is the breadcrumbs as a string? >>> This way, buffer positions are not affected at all. >> That was my thought as well, but then you can't "click" on breadcrumbs >> with the keyboard any more. > You can't click with the keyboard on the navigation up/next/prev links > in the header line too. I have not seen any complaints on that. IIUC there are keyboard shortcuts to go up/next/prev, whereas there aren't keyboard shortcuts to go to one of the breadcrumbs (other than the last one which is just "up"). This said, I agree that not being able to click on them with the keyboard is not the end of the world. IOW, using an after-string would probably be an OK compromise for 23.2 (better than dropping breadcrumbs altogether). Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 14:03:35 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 18:03:35 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxlDS-0007vQ-NK for submit@debbugs.gnu.org; Fri, 02 Apr 2010 14:03:35 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.183] helo=ironport2-out.pppoe.ca) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxlDQ-0007vL-Mt for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 14:03:32 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEALrNtUtFpZE8/2dsb2JhbACbSHK0PIUFBIsn X-IronPort-AV: E=Sophos;i="4.51,354,1267419600"; d="scan'208";a="60129009" Received: from 69-165-145-60.dsl.teksavvy.com (HELO pastel.home) ([69.165.145.60]) by ironport2-out.pppoe.ca with ESMTP; 02 Apr 2010 14:03:28 -0400 Received: by pastel.home (Postfix, from userid 20848) id EA40285F0; Fri, 2 Apr 2010 14:03:27 -0400 (EDT) From: Stefan Monnier To: Juri Linkov Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Message-ID: References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <87hbnuvphb.fsf@mail.jurta.org> Date: Fri, 02 Apr 2010 14:03:27 -0400 In-Reply-To: <87hbnuvphb.fsf@mail.jurta.org> (Juri Linkov's message of "Fri, 02 Apr 2010 00:09:04 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.1 (--) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.1 (--) >> I was talking about fixing this on the trunk. For Emacs 23.2, I >> indeed think we should turn off this feature by default. > I'm going to install this on the `emacs-23' branch if there are no > objections: That won't fix the bug, only hide it. Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 02 19:12:06 2010 Received: (at 5809) by debbugs.gnu.org; 2 Apr 2010 23:12:07 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nxq22-0001Qs-Nx for submit@debbugs.gnu.org; Fri, 02 Apr 2010 19:12:06 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nxq20-0001QX-SY for 5809@debbugs.gnu.org; Fri, 02 Apr 2010 19:12:05 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.28.176.cable.starman.ee [82.131.28.176]) by mx1.starman.ee (Postfix) with ESMTP id 857FE3F40A8; Sat, 3 Apr 2010 02:11:55 +0300 (EEST) From: Juri Linkov To: Stefan Monnier Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> Date: Sat, 03 Apr 2010 02:11:45 +0300 In-Reply-To: (Stefan Monnier's message of "Fri, 02 Apr 2010 14:01:56 -0400") Message-ID: <87eiix5u1a.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > IOW, using an after-string would probably be an OK compromise for 23.2 > (better than dropping breadcrumbs altogether). I'll try to implement an after-string for 23.2. -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 03 18:22:24 2010 Received: (at 5809) by debbugs.gnu.org; 3 Apr 2010 22:22:24 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyBjU-00005y-1Y for submit@debbugs.gnu.org; Sat, 03 Apr 2010 18:22:24 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyBjR-00005o-K0 for 5809@debbugs.gnu.org; Sat, 03 Apr 2010 18:22:22 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.28.129.cable.starman.ee [82.131.28.129]) by mx1.starman.ee (Postfix) with ESMTP id A9A443F40A1; Sun, 4 Apr 2010 01:22:11 +0300 (EEST) From: Juri Linkov To: Stefan Monnier Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> Date: Sun, 04 Apr 2010 01:04:45 +0300 In-Reply-To: <87eiix5u1a.fsf@mail.jurta.org> (Juri Linkov's message of "Sat, 03 Apr 2010 02:11:45 +0300") Message-ID: <878w94dxf2.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.2 (--) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) >> IOW, using an after-string would probably be an OK compromise for 23.2 >> (better than dropping breadcrumbs altogether). > > I'll try to implement an after-string for 23.2. To be able to click on links that are not part of the Info file and don't have the "*Note" format, this patch adds two new commands `Info-mouse-follow-link' and `Info-follow-link' plus a new keymap `Info-link-keymap' (it's like `Info-up-link-keymap' and friends). `Info-insert-breadcrumbs' is renamed to `Info-breadcrumbs' that returns a string with links. There are still a problem. I can't find a way to move the cursor inside the overlay's after-string and click links inside it. Any suggestions? === modified file 'lisp/info.el' --- lisp/info.el 2010-03-03 19:23:20 +0000 +++ lisp/info.el 2010-04-03 22:03:23 +0000 @@ -1053,8 +1053,6 @@ (defun Info-find-node-2 (filename nodena (Info-select-node) (goto-char (point-min)) (forward-line 1) ; skip header line - (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line - (forward-line 1)) (cond (anchorpos (let ((new-history (list Info-current-file @@ -3551,6 +3549,20 @@ (defun Info-try-follow-nearest-node (&op ((setq node (Info-get-token (point) "Prev: " "Prev: \\([^,\n\t]*\\)")) (Info-goto-node node fork))) node)) + +(defun Info-mouse-follow-link (click) + "Follow a link under point." + (interactive "e") + (mouse-set-point click) + (Info-follow-link)) + +(defun Info-follow-link () + "Follow a link under point." + (interactive) + (let ((link-args (get-text-property (point) 'link-args))) + (when link-args + (Info-goto-node link-args)))) + (defvar Info-mode-map (let ((map (make-keymap))) @@ -4141,11 +4153,23 @@ (defvar Info-up-link-keymap keymap) "Keymap to put on the Up link in the text or the header line.") -(defun Info-insert-breadcrumbs () +(defvar Info-link-keymap + (let ((keymap (make-sparse-keymap))) + (define-key keymap [header-line mouse-1] 'Info-mouse-follow-link) + (define-key keymap [header-line mouse-2] 'Info-mouse-follow-link) + (define-key keymap [header-line down-mouse-1] 'ignore) + (define-key keymap [mouse-2] 'Info-mouse-follow-link) + (define-key keymap [follow-link] 'mouse-face) + (define-key keymap "\r" 'Info-follow-link) + keymap) + "Keymap to put on the link in the text or the header line.") + +(defun Info-breadcrumbs () (let ((nodes (Info-toc-nodes Info-current-file)) (node Info-current-node) (crumbs ()) - (depth Info-breadcrumbs-depth)) + (depth Info-breadcrumbs-depth) + line) ;; Get ancestors from the cached parent-children node info (while (and (not (equal "Top" node)) (> depth 0)) @@ -4172,15 +4196,24 @@ (defun Info-insert-breadcrumbs () (file-name-nondirectory Info-current-file) ;; Some legacy code can still use a symbol. Info-current-file))))) - (insert (if (bolp) "" " > ") - (cond - ((null node) "...") - ((equal node Info-current-node) - ;; No point linking to ourselves. - (propertize text 'font-lock-face 'info-header-node)) - (t - (concat "*Note " text "::")))))) - (insert "\n")))) + (setq line (concat + line + (if (null line) "" " > ") + (cond + ((null node) "...") + ((equal node Info-current-node) + ;; No point linking to ourselves. + (propertize text 'font-lock-face 'info-header-node)) + (t + (propertize text + 'mouse-face 'highlight + 'font-lock-face 'info-header-xref + 'help-echo "mouse-2: Go to node" + 'keymap Info-link-keymap + 'link-args text) + )))))) + (setq line (concat line "\n"))) + line)) (defun Info-fontify-node () "Fontify the node." @@ -4227,8 +4260,8 @@ (defun Info-fontify-node () ((string-equal (downcase tag) "next") Info-next-link-keymap) ((string-equal (downcase tag) "up" ) Info-up-link-keymap)))))) - (when (> Info-breadcrumbs-depth 0) - (Info-insert-breadcrumbs)) + ;; (when (> Info-breadcrumbs-depth 0) + ;; (insert (Info-breadcrumbs))) ;; Treat header line. (when Info-use-header-line @@ -4260,7 +4293,10 @@ (defun Info-fontify-node () ;; that is in the header, if it is just part. (cond ((> Info-breadcrumbs-depth 0) - (put-text-property (point-min) (1+ header-end) 'invisible t)) + (put-text-property (point-min) (1+ header-end) 'invisible t) + (overlay-put + (make-overlay header-end (1+ header-end)) + 'after-string (propertize (Info-breadcrumbs) 'cursor t))) ((not (bobp)) ;; Hide the punctuation at the end, too. (skip-chars-backward " \t,") -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 02:13:58 2010 Received: (at 5809) by debbugs.gnu.org; 4 Apr 2010 06:13:58 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyJ5q-0003nI-Mh for submit@debbugs.gnu.org; Sun, 04 Apr 2010 02:13:58 -0400 Received: from mtaout23.012.net.il ([80.179.55.175]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyJ5o-0003nD-B9 for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 02:13:57 -0400 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0L0C0090098STA00@a-mtaout23.012.net.il> for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 09:12:40 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0C007Z498YWH50@a-mtaout23.012.net.il>; Sun, 04 Apr 2010 09:12:39 +0300 (IDT) Date: Sun, 04 Apr 2010 09:12:37 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <878w94dxf2.fsf@mail.jurta.org> X-012-Sender: halo1@inter.net.il To: Juri Linkov Message-id: <831vev21be.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.7 (-) > From: Juri Linkov > Date: Sun, 04 Apr 2010 01:04:45 +0300 > Cc: 5809@debbugs.gnu.org > > >> IOW, using an after-string would probably be an OK compromise for 23.2 > >> (better than dropping breadcrumbs altogether). > > > > I'll try to implement an after-string for 23.2. > > To be able to click on links that are not part of the Info file > and don't have the "*Note" format, this patch adds two new commands > `Info-mouse-follow-link' and `Info-follow-link' plus a new keymap > `Info-link-keymap' (it's like `Info-up-link-keymap' and friends). > > `Info-insert-breadcrumbs' is renamed to `Info-breadcrumbs' > that returns a string with links. Thank you! > There are still a problem. I can't find a way to move the cursor > inside the overlay's after-string and click links inside it. > Any suggestions? Does it work to change the character of the overlay string on which you put the `cursor' property? (You will need to redefine C-f, C-b, and friends for that.) From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 07:09:49 2010 Received: (at 5809) by debbugs.gnu.org; 4 Apr 2010 11:09:49 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyNi9-0005YT-Ex for submit@debbugs.gnu.org; Sun, 04 Apr 2010 07:09:49 -0400 Received: from smtp-out2.starman.ee ([85.253.0.4] helo=mx2.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyNi7-0005YO-Lo for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 07:09:48 -0400 X-Virus-Scanned: by Amavisd-New at mx2.starman.ee Received: from mail.starman.ee (82.131.69.202.cable.starman.ee [82.131.69.202]) by mx2.starman.ee (Postfix) with ESMTP id C6B063F408F; Sun, 4 Apr 2010 14:09:35 +0300 (EEST) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> <831vev21be.fsf@gnu.org> Date: Sun, 04 Apr 2010 14:07:28 +0300 In-Reply-To: <831vev21be.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 04 Apr 2010 09:12:37 +0300") Message-ID: <87bpdzzdfu.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) >> There are still a problem. I can't find a way to move the cursor >> inside the overlay's after-string and click links inside it. >> Any suggestions? > > Does it work to change the character of the overlay string on which > you put the `cursor' property? (You will need to redefine C-f, C-b, > and friends for that.) Sorry, I don't understand what do you mean. Could you modify the example you recently sent to emacs-devel: (let ((pos (goto-char (point-max)))) (insert "foobar") (overlay-put (make-overlay (+ pos 2) (+ pos 3)) 'after-string (propertize "-" 'cursor t))) to allow the cursor to move inside 'after-string and to not jump over it? -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 08:13:17 2010 Received: (at 5809) by debbugs.gnu.org; 4 Apr 2010 12:13:17 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyOhZ-0006Qy-3f for submit@debbugs.gnu.org; Sun, 04 Apr 2010 08:13:17 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyOhW-0006Qt-PV for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 08:13:15 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0L0C00A00PTU9I00@a-mtaout20.012.net.il> for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 15:12:11 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0C009Z6PW5ZO00@a-mtaout20.012.net.il>; Sun, 04 Apr 2010 15:12:08 +0300 (IDT) Date: Sun, 04 Apr 2010 15:12:11 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <87bpdzzdfu.fsf@mail.jurta.org> X-012-Sender: halo1@inter.net.il To: Juri Linkov Message-id: <83sk7bzaas.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> <831vev21be.fsf@gnu.org> <87bpdzzdfu.fsf@mail.jurta.org> X-Spam-Score: -1.8 (-) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.8 (-) > From: Juri Linkov > Cc: monnier@iro.umontreal.ca, 5809@debbugs.gnu.org > Date: Sun, 04 Apr 2010 14:07:28 +0300 > > >> There are still a problem. I can't find a way to move the cursor > >> inside the overlay's after-string and click links inside it. > >> Any suggestions? > > > > Does it work to change the character of the overlay string on which > > you put the `cursor' property? (You will need to redefine C-f, C-b, > > and friends for that.) > > Sorry, I don't understand what do you mean. Could you modify the example > you recently sent to emacs-devel: > > (let ((pos (goto-char (point-max)))) > (insert "foobar") > (overlay-put > (make-overlay (+ pos 2) (+ pos 3)) > 'after-string (propertize "-" 'cursor t))) > > to allow the cursor to move inside 'after-string and to not jump over it? Compare the results of evaluating the two forms below: (let ((pos (goto-char (point-max)))) (insert "foobar") (overlay-put (make-overlay (+ pos 2) (+ pos 3)) 'after-string (concat "1" (propertize "2" 'cursor t) "34"))) (let ((pos (goto-char (point-max)))) (insert "foobar") (overlay-put (make-overlay (+ pos 2) (+ pos 3)) 'after-string (concat "12" (propertize "3" 'cursor t) "4"))) Both display "foo1234bar", with "1234" coming from the `after-string' overlay. When you type C-f on the second `o' in "foo", the cursor will be displayed on `2' with the first form and on `3' with the second. More generally, the cursor will be displayed on the character in "1234" which you propertize with a non-nil `cursor' property. What I meant in my suggestion is to move the property from one character to another of the `after-string' when the user types C-f with cursor on the overlay. E.g., if the cursor is on `2' and I type C-f, modify the `after-string' from (concat "1" (propertize "2" 'cursor t) "34") to (concat "12" (propertize "3" 'cursor t) "4") Then it will appear as if the cursor moved inside the `after-string'. From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 10:32:01 2010 Received: (at 5809) by debbugs.gnu.org; 4 Apr 2010 14:32:01 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyQro-0007ux-RD for submit@debbugs.gnu.org; Sun, 04 Apr 2010 10:32:00 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.183] helo=ironport2-out.pppoe.ca) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyQrl-0007us-QG for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 10:31:58 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAII/uEtFpZE8/2dsb2JhbACbTXKxDIUHBIsq X-IronPort-AV: E=Sophos;i="4.51,361,1267419600"; d="scan'208";a="60182534" Received: from 69-165-145-60.dsl.teksavvy.com (HELO pastel.home) ([69.165.145.60]) by ironport2-out.pppoe.ca with ESMTP; 04 Apr 2010 10:31:52 -0400 Received: by pastel.home (Postfix, from userid 20848) id EFD8385F0; Sun, 4 Apr 2010 10:31:51 -0400 (EDT) From: Stefan Monnier To: Juri Linkov Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Message-ID: References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> Date: Sun, 04 Apr 2010 10:31:51 -0400 In-Reply-To: <878w94dxf2.fsf@mail.jurta.org> (Juri Linkov's message of "Sun, 04 Apr 2010 01:04:45 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.1 (--) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.1 (--) > There are still a problem. I can't find a way to move the cursor > inside the overlay's after-string and click links inside it. That's what I said would be the limitation: you can't "click" with the keyboard. I think it's an acceptable limitation for now. Also you can't copy&paste the string (e.g. to make a bug report). > Any suggestions? If you *really really really* want to make it work, you can redefine C-f/C-b and make it move "virtually" by setting/changing the `cursor' property on those strings, and then do yet more ugly hacks when you hit RET, etc... but I strongly recommend against it. Stefan From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 16:39:29 2010 Received: (at 5809) by debbugs.gnu.org; 4 Apr 2010 20:39:29 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyWbR-0001nV-Dj for submit@debbugs.gnu.org; Sun, 04 Apr 2010 16:39:29 -0400 Received: from rcsinet11.oracle.com ([148.87.113.123]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyWbP-0001nQ-F6 for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 16:39:28 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by rcsinet11.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o34KdLqa017927 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 4 Apr 2010 20:39:22 GMT Received: from acsmt354.oracle.com (acsmt354.oracle.com [141.146.40.154]) by acsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o34K4p0C002005; Sun, 4 Apr 2010 20:39:20 GMT Received: from abhmt013.oracle.com by acsmt353.oracle.com with ESMTP id 136066591270413545; Sun, 04 Apr 2010 13:39:05 -0700 Received: from dradamslap1 (/141.144.72.40) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 04 Apr 2010 13:39:05 -0700 From: "Drew Adams" To: "'Eli Zaretskii'" References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org><83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org><83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org><83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org><422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com><83d3yhx6jr.fsf@gnu.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Sun, 4 Apr 2010 13:39:00 -0700 Message-ID: <83C1972058E043DB8B80FEFB5A317A98@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: AcrSckk4cP4m8N7RQrO81mQ6hoTxJwABdmZgAG0H6KA= X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt354.oracle.com [141.146.40.154] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090209.4BB8F8F8.0101:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) > > > Keep in mind too that in some documentation systems, which > > > don't even have the fine-grained "node" size of Info (on > > > average), cross references generally do not > > > take you to an exact destination position. They just get > > > you to the appropriate section. > > > > That Info does support this feature is one of its advantages, and we > > should not lose it, IMO. Without it, reading a large manual as a > > reference is a PITA. > > > > Besides, it simply feels as a bug (and actually is): you > > are placed in the middle of a sentence that, more often > > than not, has nothing to do with the subject you are after. > > I think everyone agrees that it is a desirable feature. If we > can have both exact cursor destination and breadcrumbs, that > will be ideal. Both are useful features. > > It is somewhat disorienting to not have point land only > nearby and not at exactly the right spot. And it is > disorienting to not immediately see where you > are in the document hierarchy (beyond just immediate up, > next, and prev nodes). > > We should aim to get both working properly together. Also, *in practice* this is a *rare* problem. You are making a mountain out of a mole hill. I wonder if people discussing this have actually tried following many links in the manuals. Most of the discussion has been about how to implement a solution and not about the problem. Think about the user and actual use, not just about implementation. Follow the actual cross references in the Emacs and Elisp manuals, and you will see that there are only a very *small* number of them that do not simply point to the beginning of a node. And only those small number are the potential candidates for target imprecision. And even in a reference manual such as Elisp, where you might expect many cross references to specific function and variable descriptions that occur in the middle of a node, there are relatively few such mid-node cross references. The one exception: index links to specific keys, functions, variables, and keys. They do target precise mid-node positions. But in fact only a small minority of even those exceptional cases do not act as well as one might hope. Following the link places you quite near the precise location and generally at a location that can still be considered the intended target (e.g. within the correct, targeted 1-3 line description or paragraph). Why would that be? Because (a) most breadcrumbs are short and (b) most function, variable, and key descriptions are more than one line long. So being off by the length of one or more breadcrumbs still takes you to the right description. Again, try it and see for yourself. Follow a representative sample of links of your choice, and see what proportion are in fact problematic. I'm sure you'll find that it is *very* small. So in practice this is not a real problem. There are many more important UI difficulties and annoyances that could be addressed before trying to achieve perfection here. Again, if you can find a clean, simple way to make *everything* work well, so much the better, obviously. But we should not make the perfect into the enemy of the good - do not throw out the baby with the bathwater. Don't let your enthusiasm for trying some new UI technique (`after-string', `cursor' properties, multi-line headers etc.) carry you away - creating a sledgehammer to kill a fly. Think about where you're going with the implementation vs what you're really trying accomplish. What's the problem and how bad is it in practice? In truth, Eli's dramatic characterization of this problem as "a PITA" and you are placed in the middle of a sentence that, more often than not, has nothing to do with the subject you are after. is quite overblown and inaccurate. It is simply not the case, except in rare cases. More often than not - in fact in the overwhelming majority of cases - you are NOT placed in the middle of a sentence that has nothing to do with the subject you are after. That's a fact, AFAICT. Try it, instead of just treating this academically. Follow real links and you will soon see what I mean. You are taken directly to the precise info you need in 99.9% of the cases (no, I didn't count - but try it and make your own estimate). From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 16:48:37 2010 Received: (at 5809) by debbugs.gnu.org; 4 Apr 2010 20:48:37 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyWkG-0001qm-VN for submit@debbugs.gnu.org; Sun, 04 Apr 2010 16:48:37 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyWkE-0001qh-ME for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 16:48:35 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0L0D00700DKTJA00@a-mtaout22.012.net.il> for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 23:47:52 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0D006KJDRRMF20@a-mtaout22.012.net.il>; Sun, 04 Apr 2010 23:47:52 +0300 (IDT) Date: Sun, 04 Apr 2010 23:47:57 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <83C1972058E043DB8B80FEFB5A317A98@us.oracle.com> X-012-Sender: halo1@inter.net.il To: Drew Adams Message-id: <83eiivymf6.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> <83d3yhx6jr.fsf@gnu.org> <83C1972058E043DB8B80FEFB5A317A98@us.oracle.com> X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.0 (-) > From: "Drew Adams" > Cc: <5809@debbugs.gnu.org> > Date: Sun, 4 Apr 2010 13:39:00 -0700 > > Also, *in practice* this is a *rare* problem. You are making a mountain out of a > mole hill. Drew, please try being objective. You were one of the main pushers for introducing the breadcrumbs feature, so it's understandable that you have bias, but please try to hold it back. > In truth, Eli's dramatic characterization of this problem as "a PITA" and > > you are placed in the middle of a sentence that, > more often than not, has nothing to do with the > subject you are after. > > is quite overblown and inaccurate. It is simply not the case, except in rare > cases. Well, perhaps I happen to hit only those ``rare cases'', because it happens all the time to me. The amount of offset depends on how many other nodes you visited in the same sub-file, so it's somewhat unpredictable. Anyway, Juri is actively working on a solution for this bug, and almost has it done, so this argument is pointless and unnecessary. From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 18:53:11 2010 Received: (at 5809) by debbugs.gnu.org; 4 Apr 2010 22:53:11 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyYgo-0002cH-TU for submit@debbugs.gnu.org; Sun, 04 Apr 2010 18:53:11 -0400 Received: from acsinet11.oracle.com ([141.146.126.233]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyYgn-0002cC-Am for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 18:53:10 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by acsinet11.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o34Mr3dF000775 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 4 Apr 2010 22:53:04 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by acsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o34Mr1j8022838; Sun, 4 Apr 2010 22:53:02 GMT Received: from abhmt014.oracle.com by acsmt355.oracle.com with ESMTP id 136120531270421494; Sun, 04 Apr 2010 15:51:34 -0700 Received: from dradamslap1 (/141.144.72.40) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 04 Apr 2010 15:51:34 -0700 From: "Drew Adams" To: "'Eli Zaretskii'" References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> <83d3yhx6jr.fsf@gnu.org> <83C1972058E043DB8B80FEFB5A317A98@us.oracle.com> <83eiivymf6.fsf@gnu.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Sun, 4 Apr 2010 15:51:29 -0700 Message-ID: <4173056BC32F4835955C1B5A781D37EE@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <83eiivymf6.fsf@gnu.org> Thread-Index: AcrUODB5md7bvB2BRWalfsnNWiweYAAAVP0g X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt353.oracle.com [141.146.40.153] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A0B0209.4BB9184E.016C:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) > > Also, *in practice* this is a *rare* problem. You are > > making a mountain out of a mole hill. > > Drew, please try being objective. You were one of the main pushers > for introducing the breadcrumbs feature, so it's understandable that > you have bias, but please try to hold it back. Eli, you please try being objective. That was my precisely my point: *objectively measure* how much this is a real problem in practice. YOU do the measurement - don't take my word for it. Judge for yourself, but judge only after actually trying a sample of links. No, BTW, I was not in fact a "pusher" of breadcrumbs for Emacs. I created breadcrumbs for Info in my own library, and I eventually offered the idea (and implementation) to Emacs. Stefan took it from there. I don't care to push it or any particular implementation of it for Emacs. Do with it what you will. Personally, I think breadcrumbs are helpful to users, but I really don't care whether I convince Emacs developers of that. I still have and use the feature in my own library, with my original code (somewhat different from the Emacs implementation). I have no problem with Emacs not adopting that feature or any of the other Info enhancements I use - that should be clear by now. (In fact, it's much easier in terms of maintenance when Emacs does not adopt a feature I have, if it implements it only partially or differently, for example.) And even if you don't believe me and you think I have some perverse motivation for what I'm saying, the *facts* don't lie: There simply are very few problematic links. Don't believe me; test for yourself - but be honest about what you find. My motivation is irrelevant, as is yours. Let us not second-guess motives or descend to ad hominem argument: Drew's arguments and findings don't count, because he's the one who came up with the idea for breadcrumbs in the first place. You can be better than that, Eli. My point was and still is that BOTH breadcrumbs AND being able to target a precise mid-node position are helpful aids to users. I've been clear that IF you can do them both cleanly and simply then please do so. FWIW, until I actually tried sampling links today, you had me convinced, with your single link-behaving-badly and your exaggerated language, that this was in fact a real, practical problem. I was surprised when I discovered that existing links do not bear out your characterization of the situation. (I wondered about that, since I use this feature all the time.) After that discovery I thought it might help to put this in perspective - objectively - hence my mail today. Ignore reality if you like - your choice. > > In truth, Eli's dramatic characterization of this problem > > as "a PITA" and > > > > you are placed in the middle of a sentence that, > > more often than not, has nothing to do with the > > subject you are after. > > > > is quite overblown and inaccurate. It is simply not the > > case, except in rare cases. > > Well, perhaps I happen to hit only those ``rare cases'', because it > happens all the time to me. Yes, perhaps. Can you characterize that use? I characterized the behavior of both (a) links in general and (b) index links, which are an exception to the rule. And my characterization was not only theoretical (logical), explaining *why* in general there would be no real problem. It was also practical: I followed lots (hundreds) of links in both manuals. How about you? Use your own link traversal/sampling. Describe it to us, so we can understand your use case where "it happens all the time". Is that just hyperbole? Does it really happen to you for each link? You truly must be doing something I haven't thought of. I have difficulty finding links that don't work well. One of us is either exaggerating or doing something very exceptional. Pick links at random. Or start at the beginning of the manual and try each link in order. Or start at the end. Or start with the index, which is where the problem is most likely to arise. Even for index links, I think you'll find that you've exaggerated the claim greatly. For those willing to test this objectively, I propose two quick tests, to give you a good idea: (a) links in the text (anywhere) and (b) links in an index. Take just 2 minutes right now to click, click, click, seeing whether you end up in the wrong place. I am convinced that you will find the same thing I reported: there are *very* few bad-behaving links. This is not a PITA. > The amount of offset depends on how many other nodes you visited in > the same sub-file, so it's somewhat unpredictable. I'm aware of that. That's why I wrote So being off by the length of one or more breadcrumbs ^^^^^^^ still takes you to the right description. TRY it. Visit as many nodes and links as you like - the more the better. Describe to us what you *actually* see: what percentage of the links do not take you directly to the appropriate passage? 10%? 1%? 0.1%? I gave you my guesstimate: 0.1% - a bad-link case such as you reported represents maybe one in a thousand links. You give us your estimate. But please do try actually following a fair number of links before estimating. Objective - yes, please. Don't just make the claim that it happens "all the time" to you, without letting us know what links lead you to say that. > Anyway, Juri is actively working on a solution for this bug, and > almost has it done, so this argument is pointless and unnecessary. I repeat: If you can find a clean, simple way to make ^^^^^^^^^^^^^ *everything* work well, so much the better, obviously. ^^^^^^^^^^^^ What I've heard so far about the solution in progress doesn't seem to fit that description; it doesn't inspire confidence. The last I heard, there was even talk about having to rebind keys (or else sacrifice keyboard link following). "If you *really really really* want to make it work", as Stefan put it. Each time some part of a solution was proposed there seemed to be drawbacks. Fixing the fixes... At some point the question becomes whether the cure might be worse than the illness. The point of my message today was to take a second, objective look at the illness. Is it "really really really" worth the complicated cure? So I agree that not just this discussion but the whole enterprise - this bug fix - has been rather pointless and unnecessary. There are far more important problems to fix (a long list of them, including UI bugs). From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 20:02:06 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 00:02:07 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyZlW-00030V-GZ for submit@debbugs.gnu.org; Sun, 04 Apr 2010 20:02:06 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyZlU-000305-5G for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 20:02:05 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.69.202.cable.starman.ee [82.131.69.202]) by mx1.starman.ee (Postfix) with ESMTP id 1ED2D3F40A4; Mon, 5 Apr 2010 03:01:54 +0300 (EEST) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> <831vev21be.fsf@gnu.org> <87bpdzzdfu.fsf@mail.jurta.org> <83sk7bzaas.fsf@gnu.org> Date: Mon, 05 Apr 2010 02:51:23 +0300 In-Reply-To: <83sk7bzaas.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 04 Apr 2010 15:12:11 +0300") Message-ID: <87pr2eygph.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > What I meant in my suggestion is to move the property from one > character to another of the `after-string' when the user types C-f > with cursor on the overlay. E.g., if the cursor is on `2' and I type > C-f, modify the `after-string' from > > (concat "1" (propertize "2" 'cursor t) "34") > to > (concat "12" (propertize "3" 'cursor t) "4") > > Then it will appear as if the cursor moved inside the `after-string'. Thanks for the explanation. It seems this is not a trivial change for 23.2. -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 20:02:07 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 00:02:07 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyZlW-00030X-P8 for submit@debbugs.gnu.org; Sun, 04 Apr 2010 20:02:07 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyZlU-000306-Id for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 20:02:05 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.69.202.cable.starman.ee [82.131.69.202]) by mx1.starman.ee (Postfix) with ESMTP id EC4AF3F40A5; Mon, 5 Apr 2010 03:01:54 +0300 (EEST) From: Juri Linkov To: Stefan Monnier Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> Date: Mon, 05 Apr 2010 02:52:19 +0300 In-Reply-To: (Stefan Monnier's message of "Sun, 04 Apr 2010 10:31:51 -0400") Message-ID: <87eiiuwz6g.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) >> There are still a problem. I can't find a way to move the cursor >> inside the overlay's after-string and click links inside it. > > That's what I said would be the limitation: you can't "click" with > the keyboard. I think it's an acceptable limitation for now. > Also you can't copy&paste the string (e.g. to make a bug report). We could change the background color of the overlay's after-string to look like the header line (grey background) so users will expect that only mouse clicks should work on grey areas. This patch works with mouse clicks, but needs more testing: === modified file 'lisp/info.el' --- lisp/info.el 2010-03-03 19:23:20 +0000 +++ lisp/info.el 2010-04-04 23:50:03 +0000 @@ -153,12 +153,12 @@ (defcustom Info-use-header-line t :group 'info) (defface info-header-xref - '((t :inherit info-xref)) + '((t :inherit (info-xref header-line))) "Face for Info cross-references in a node header." :group 'info) (defface info-header-node - '((t :inherit info-node)) + '((t :inherit (info-node header-line))) "Face for Info nodes in a node header." :group 'info) @@ -1053,8 +1053,6 @@ (defun Info-find-node-2 (filename nodena (Info-select-node) (goto-char (point-min)) (forward-line 1) ; skip header line - (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line - (forward-line 1)) (cond (anchorpos (let ((new-history (list Info-current-file @@ -3551,6 +3549,19 @@ (defun Info-try-follow-nearest-node (&op ((setq node (Info-get-token (point) "Prev: " "Prev: \\([^,\n\t]*\\)")) (Info-goto-node node fork))) node)) + +(defun Info-mouse-follow-link (click) + "Follow a link under point." + (interactive "e") + (let* ((position (event-start click)) + (posn-string (and position (posn-string position))) + (string (car-safe posn-string)) + (string-pos (cdr-safe posn-string)) + (link-args (and string string-pos + (get-text-property string-pos 'link-args string)))) + (when link-args + (Info-goto-node link-args)))) + (defvar Info-mode-map (let ((map (make-keymap))) @@ -4141,11 +4152,22 @@ (defvar Info-up-link-keymap keymap) "Keymap to put on the Up link in the text or the header line.") -(defun Info-insert-breadcrumbs () +(defvar Info-link-keymap + (let ((keymap (make-sparse-keymap))) + (define-key keymap [header-line mouse-1] 'Info-mouse-follow-link) + (define-key keymap [header-line mouse-2] 'Info-mouse-follow-link) + (define-key keymap [header-line down-mouse-1] 'ignore) + (define-key keymap [mouse-2] 'Info-mouse-follow-link) + (define-key keymap [follow-link] 'mouse-face) + keymap) + "Keymap to put on the link in the text or the header line.") + +(defun Info-breadcrumbs () (let ((nodes (Info-toc-nodes Info-current-file)) (node Info-current-node) (crumbs ()) - (depth Info-breadcrumbs-depth)) + (depth Info-breadcrumbs-depth) + line) ;; Get ancestors from the cached parent-children node info (while (and (not (equal "Top" node)) (> depth 0)) @@ -4172,15 +4194,24 @@ (defun Info-insert-breadcrumbs () (file-name-nondirectory Info-current-file) ;; Some legacy code can still use a symbol. Info-current-file))))) - (insert (if (bolp) "" " > ") - (cond - ((null node) "...") - ((equal node Info-current-node) - ;; No point linking to ourselves. - (propertize text 'font-lock-face 'info-header-node)) - (t - (concat "*Note " text "::")))))) - (insert "\n")))) + (setq line (concat + line + (if (null line) "" (propertize " > " 'face 'header-line)) + (cond + ((null node) (propertize "..." 'face 'header-line)) + ((equal node Info-current-node) + ;; No point linking to ourselves. + (propertize text 'font-lock-face 'info-header-node)) + (t + (propertize text + 'mouse-face 'highlight + 'font-lock-face 'info-header-xref + 'help-echo "mouse-2: Go to node" + 'keymap Info-link-keymap + 'link-args text) + )))))) + (setq line (concat line (propertize "\n" 'face 'header-line)))) + line)) (defun Info-fontify-node () "Fontify the node." @@ -4227,9 +4258,6 @@ (defun Info-fontify-node () ((string-equal (downcase tag) "next") Info-next-link-keymap) ((string-equal (downcase tag) "up" ) Info-up-link-keymap)))))) - (when (> Info-breadcrumbs-depth 0) - (Info-insert-breadcrumbs)) - ;; Treat header line. (when Info-use-header-line (goto-char (point-min)) @@ -4260,7 +4288,10 @@ (defun Info-fontify-node () ;; that is in the header, if it is just part. (cond ((> Info-breadcrumbs-depth 0) - (put-text-property (point-min) (1+ header-end) 'invisible t)) + (put-text-property (point-min) (1+ header-end) 'invisible t) + (overlay-put + (make-overlay header-end (1+ header-end)) + 'after-string (Info-breadcrumbs))) ((not (bobp)) ;; Hide the punctuation at the end, too. (skip-chars-backward " \t,") -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 20:22:58 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 00:22:58 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nya5i-000380-41 for submit@debbugs.gnu.org; Sun, 04 Apr 2010 20:22:58 -0400 Received: from smtp-out2.starman.ee ([85.253.0.4] helo=mx2.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nya5g-00037v-Fd for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 20:22:57 -0400 X-Virus-Scanned: by Amavisd-New at mx2.starman.ee Received: from mail.starman.ee (82.131.69.202.cable.starman.ee [82.131.69.202]) by mx2.starman.ee (Postfix) with ESMTP id 1431C3F40AD; Mon, 5 Apr 2010 03:22:46 +0300 (EEST) From: Juri Linkov To: "Drew Adams" Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> <83d3yhx6jr.fsf@gnu.org> <83C1972058E043DB8B80FEFB5A317A98@us.oracle.com> <83eiivymf6.fsf@gnu.org> <4173056BC32F4835955C1B5A781D37EE@us.oracle.com> Date: Mon, 05 Apr 2010 02:58:53 +0300 In-Reply-To: <4173056BC32F4835955C1B5A781D37EE@us.oracle.com> (Drew Adams's message of "Sun, 4 Apr 2010 15:51:29 -0700") Message-ID: <87wrwmvjfe.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, 'Eli Zaretskii' X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > I am convinced that you will find the same thing I reported: > there are *very* few bad-behaving links. Please see bug#4147. Breadcrumbs break Info search and navigation in the history with `l'. -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 04 22:06:38 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 02:06:38 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nybi1-0003kD-W3 for submit@debbugs.gnu.org; Sun, 04 Apr 2010 22:06:38 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.183] helo=ironport2-out.pppoe.ca) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nybi0-0003k7-0p for 5809@debbugs.gnu.org; Sun, 04 Apr 2010 22:06:36 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAGbiuEvO+K6K/2dsb2JhbACbTHKyRYUHBIsq X-IronPort-AV: E=Sophos;i="4.51,364,1267419600"; d="scan'208";a="60201266" Received: from 206-248-174-138.dsl.teksavvy.com (HELO pastel.home) ([206.248.174.138]) by ironport2-out.pppoe.ca with ESMTP; 04 Apr 2010 22:06:31 -0400 Received: by pastel.home (Postfix, from userid 20848) id BFFF385F0; Sun, 4 Apr 2010 22:06:31 -0400 (EDT) From: Stefan Monnier To: Juri Linkov Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Message-ID: References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> <87eiiuwz6g.fsf@mail.jurta.org> Date: Sun, 04 Apr 2010 22:06:31 -0400 In-Reply-To: <87eiiuwz6g.fsf@mail.jurta.org> (Juri Linkov's message of "Mon, 05 Apr 2010 02:52:19 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.1 (--) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.1 (--) > We could change the background color of the overlay's after-string > to look like the header line (grey background) so users will expect > that only mouse clicks should work on grey areas. I'd rather not change this part of the visual appearance, but maybe it's just my personal preference. I think this decision should be taken with the understanding that we will want to install a real-fix in Emacs-24 so that we can click with the keyboard and copy&paste the breadcrumbs and that we won't want to revert the visual appearance at that point (people get used to visual appearances). > - (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line > - (forward-line 1)) I'd keep it commented out, since it may be useful again when we revert to using actual text rather than an after-string. > + (setq line (concat > + line > + (if (null line) "" (propertize " > " 'face 'header-line)) > + (cond > + ((null node) (propertize "..." 'face 'header-line)) > + ((equal node Info-current-node) > + ;; No point linking to ourselves. > + (propertize text 'font-lock-face 'info-header-node)) > + (t > + (propertize text > + 'mouse-face 'highlight > + 'font-lock-face 'info-header-xref > + 'help-echo "mouse-2: Go to node" > + 'keymap Info-link-keymap > + 'link-args text) > + )))))) If we want to use this header-line appearance, couldn't we use something like font-lock-append-text-property rather than apply `header-line' bit-by-bit (and worse yet: in different ways for different parts). I.e. the changes to info-header-xref and info-header-node faces earlier in the patch are not a good idea (think of people who changed those faces, for example). > @@ -4227,9 +4258,6 @@ (defun Info-fontify-node () > ((string-equal (downcase tag) "next") Info-next-link-keymap) > ((string-equal (downcase tag) "up" ) Info-up-link-keymap)))))) > - (when (> Info-breadcrumbs-depth 0) > - (Info-insert-breadcrumbs)) > - > ;; Treat header line. > (when Info-use-header-line > (goto-char (point-min)) > @@ -4260,7 +4288,10 @@ (defun Info-fontify-node () > ;; that is in the header, if it is just part. > (cond > ((> Info-breadcrumbs-depth 0) > - (put-text-property (point-min) (1+ header-end) 'invisible t)) > + (put-text-property (point-min) (1+ header-end) 'invisible t) > + (overlay-put > + (make-overlay header-end (1+ header-end)) > + 'after-string (Info-breadcrumbs))) > ((not (bobp)) > ;; Hide the punctuation at the end, too. > (skip-chars-backward " \t,") Why is the `overlay-put' at a different place than the former Info-insert-breadcrumbs? Stefan PS: the rest of the patch looks OK, so if you can fix the above feel free to install it. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 01:26:12 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 05:26:12 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nyep9-0004s9-Dz for submit@debbugs.gnu.org; Mon, 05 Apr 2010 01:26:11 -0400 Received: from mtaout23.012.net.il ([80.179.55.175]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nyep6-0004s4-Sf for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 01:26:10 -0400 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0L0E008001R9PE00@a-mtaout23.012.net.il> for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 08:26:04 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0E007HJ1RF7R40@a-mtaout23.012.net.il>; Mon, 05 Apr 2010 08:26:04 +0300 (IDT) Date: Mon, 05 Apr 2010 08:26:09 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <87pr2eygph.fsf@mail.jurta.org> X-012-Sender: halo1@inter.net.il To: Juri Linkov Message-id: <83d3yezczy.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> <831vev21be.fsf@gnu.org> <87bpdzzdfu.fsf@mail.jurta.org> <83sk7bzaas.fsf@gnu.org> <87pr2eygph.fsf@mail.jurta.org> X-Spam-Score: -1.7 (-) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.7 (-) > From: Juri Linkov > Cc: monnier@iro.umontreal.ca, 5809@debbugs.gnu.org > Date: Mon, 05 Apr 2010 02:51:23 +0300 > > > What I meant in my suggestion is to move the property from one > > character to another of the `after-string' when the user types C-f > > with cursor on the overlay. E.g., if the cursor is on `2' and I type > > C-f, modify the `after-string' from > > > > (concat "1" (propertize "2" 'cursor t) "34") > > to > > (concat "12" (propertize "3" 'cursor t) "4") > > > > Then it will appear as if the cursor moved inside the `after-string'. > > Thanks for the explanation. It seems this is not a trivial change for 23.2. Yes, I agree. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 02:39:17 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 06:39:17 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nyfxs-0005Jc-Sk for submit@debbugs.gnu.org; Mon, 05 Apr 2010 02:39:17 -0400 Received: from rcsinet11.oracle.com ([148.87.113.123]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nyfxq-0005JX-QB for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 02:39:15 -0400 Received: from rcsinet13.oracle.com (rcsinet13.oracle.com [148.87.113.125]) by rcsinet11.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o356d9gN007575 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 5 Apr 2010 06:39:10 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by rcsinet13.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o356d8Ic007370; Mon, 5 Apr 2010 06:39:08 GMT Received: from abhmt003.oracle.com by acsmt355.oracle.com with ESMTP id 136535951270449516; Sun, 04 Apr 2010 23:38:36 -0700 Received: from dradamslap1 (/141.144.72.40) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 04 Apr 2010 23:38:36 -0700 From: "Drew Adams" To: "'Eli Zaretskii'" , "'Stefan Monnier'" References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org><83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org><83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org><83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Sun, 4 Apr 2010 23:38:30 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <83sk7ewcvz.fsf@gnu.org> Thread-Index: AcrSNtgnpR3Z2r8aTzGAPSZR0I8CMACUyPMQ X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt353.oracle.com [141.146.40.153] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090202.4BB9858D.0085:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) > > but then you can't "click" on breadcrumbs with the keyboard any more. > > "Clicking" on breadcrumbs with a keyboard is the same as typing "u", > so I don't see this as a loss. No. Clicking or hitting return on a specific part of a breadcrumbs path takes you directly to that ancestor node. `u' takes you only to the parent node. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 03:03:45 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 07:03:45 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NygLZ-0005Rs-95 for submit@debbugs.gnu.org; Mon, 05 Apr 2010 03:03:45 -0400 Received: from acsinet12.oracle.com ([141.146.126.234]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NygLW-0005Rm-Ro for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 03:03:43 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by acsinet12.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o3573b1c031877 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 5 Apr 2010 07:03:39 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by acsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o3549tjX018118; Mon, 5 Apr 2010 07:03:37 GMT Received: from abhmt007.oracle.com by acsmt354.oracle.com with ESMTP id 136566841270450920; Mon, 05 Apr 2010 00:02:00 -0700 Received: from dradamslap1 (/141.144.72.40) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 05 Apr 2010 00:01:59 -0700 From: "Drew Adams" To: "'Juri Linkov'" References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org><83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org><83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org><83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org><422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com><83d3yhx6jr.fsf@gnu.org><83C1972058E043DB8B80FEFB5A317A98@us.oracle.com><83eiivymf6.fsf@gnu.org><4173056BC32F4835955C1B5A781D37EE@us.oracle.com> <87wrwmvjfe.fsf@mail.jurta.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Mon, 5 Apr 2010 00:01:54 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <87wrwmvjfe.fsf@mail.jurta.org> Thread-Index: AcrUViQEGJyoKYMISfOZg3oDGYfLKAALbHiA X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt353.oracle.com [141.146.40.153] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090205.4BB98B49.00AC:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, 'Eli Zaretskii' X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) > > I am convinced that you will find the same thing I reported: > > there are *very* few bad-behaving links. You changed the subject below (different problem), so shall we assume that you did in fact find the same thing I reported when you clicked on a representative sample of links? > Please see bug#4147. Breadcrumbs break Info search > and navigation in the history with `l'. I suppose you mean this: >> The odd behavior when point moves forward by a few >> characters is caused by breadcrumbs inserted to the >> Info buffer (the distance point moves forward is the >> length of the breadcrumbs string). That is indeed a very different symptom, even if the cause is the same. And that symptom is more disorienting, even if being off by a few characters also is not the end of the world. Users will wonder what's happening, and they should not need to be puzzled that way. No one disputes that making breadcrumbs work without causing such difficulties is desirable. I questioned the other symptom's description as being "a PITA" and happening "all the time". And I wondered whether the fixes being discussed were clean and simple enough. (I might add "and general enough", since we seem sometimes to have moved away from the search for a general solution that handles also other, non-Info problems.) I did, BTW, support your point that putting breadcrumbs in the header line has a "significant advantage for orientation and navigability" (my words). Looking over this thread, and particularly the thread for #4147, there have been several different solution approaches proposed (mainly by you). That's good. Better to think it over well before picking one and implementing it, since each possible change seems to be fairly far-reaching in terms of implementation/design, and the behavior consequences for this and other things in Emacs are different depending on which is chosen. You obviously understand the various solutions better than I. Based on my limited understanding, a multi-line header seems to be the best solution I've heard so far (and it has other uses elsewhere). It's too bad that the simple solution of using a newline in the header line doesn't work without display-engine changes. Has anyone looked into what changes to the display engine would be needed to fix that? Don't get me wrong. I'm not at all against trying to find a better, general header-line (or other general) mechanism to deal with problems such as this. On the contrary. But that merits a general design reflection, not just handling as a bug report for a particular problem. Some such general discussion has already gone on in these threads. It's good to continue that, but in emacs-devel under an appropriate general topic, not just in the thread of a bug that deals with only one or two aspects of the question. At one time (in the #4147 thread) you said "The goal is to design a new window infrastructure that supports window groups." Now you seem to be back to a multi-line header line (via display-engine changes?), which might or might not mean the same thing. Maybe that's the question: just what is the general design goal? As I said in the #4147 thread: In that case, I'd suggest that emacs-devel is the right place to discuss such redesign. IOW, leave the bug unfixed until the requisite design change allows fixing it, and discuss the design change in the dev mailing list, not just in this bug thread. Yes, I do not think we should turn off breadcrumbs by default for Emacs 23.2. The benefit outweighs the inconveniences, IMO - just one opinion. It is in order to discuss just such trade-offs that I suggested that people actually click Info links to see if Eli's problem is typical or exceptional. For Emacs 23.2, both that problem and the search-off-by-a-few-chars problem do not merit turning off breadcrumbs by default, IMO. But I also agree that a general redesign of, say, header lines that helps with the breadcrumbs problems and with other things (e.g. tabs) would be a good goal. As you put it (in #4147): Currently the header line has the limitation in only one glyph row. But this is a general problem that should be solved one way or the other, so different modes like Info, proced, ruler-mode could have their own header window. Until that general change is made, I say leave breadcrumbs displayed by default. And I wish that such general changes were discussed in emacs-devel _as general design changes_, and not just inside specific bug threads here and there. When discussed in terms of this or that Info symptom the generality is lost, and the focus oscillates between being narrow (for the particular problem symptom) and general. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 12:57:56 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 16:57:57 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nypca-000151-Iq for submit@debbugs.gnu.org; Mon, 05 Apr 2010 12:57:56 -0400 Received: from smtp-out2.starman.ee ([85.253.0.4] helo=mx2.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NypcY-00014v-Tr for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 12:57:55 -0400 X-Virus-Scanned: by Amavisd-New at mx2.starman.ee Received: from mail.starman.ee (82.131.96.80.cable.starman.ee [82.131.96.80]) by mx2.starman.ee (Postfix) with ESMTP id 2A7303F40EC; Mon, 5 Apr 2010 19:57:42 +0300 (EEST) From: Juri Linkov To: "Drew Adams" Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> <83d3yhx6jr.fsf@gnu.org> <83C1972058E043DB8B80FEFB5A317A98@us.oracle.com> <83eiivymf6.fsf@gnu.org> <4173056BC32F4835955C1B5A781D37EE@us.oracle.com> <87wrwmvjfe.fsf@mail.jurta.org> Date: Mon, 05 Apr 2010 19:42:37 +0300 In-Reply-To: (Drew Adams's message of "Mon, 5 Apr 2010 00:01:54 -0700") Message-ID: <87hbnqoza2.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, 'Eli Zaretskii' X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > It's too bad that the simple solution of using a newline in the header > line doesn't work without display-engine changes. Has anyone looked > into what changes to the display engine would be needed to fix that? Looking over the header-line implementation in the display-engine, the header-line is treated like the mode-line at the top of the buffer. And newlines are disallowed in the mode-line. -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 12:58:01 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 16:58:01 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nypce-00015C-U3 for submit@debbugs.gnu.org; Mon, 05 Apr 2010 12:58:01 -0400 Received: from smtp-out2.starman.ee ([85.253.0.4] helo=mx2.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nypcd-00014w-2p for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 12:57:59 -0400 X-Virus-Scanned: by Amavisd-New at mx2.starman.ee Received: from mail.starman.ee (82.131.96.80.cable.starman.ee [82.131.96.80]) by mx2.starman.ee (Postfix) with ESMTP id C1CC53F40ED; Mon, 5 Apr 2010 19:57:46 +0300 (EEST) From: Juri Linkov To: "Drew Adams" Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> <83d3yhx6jr.fsf@gnu.org> <83C1972058E043DB8B80FEFB5A317A98@us.oracle.com> <83eiivymf6.fsf@gnu.org> <4173056BC32F4835955C1B5A781D37EE@us.oracle.com> Date: Mon, 05 Apr 2010 19:45:56 +0300 In-Reply-To: <4173056BC32F4835955C1B5A781D37EE@us.oracle.com> (Drew Adams's message of "Sun, 4 Apr 2010 15:51:29 -0700") Message-ID: <871veum52b.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, 'Eli Zaretskii' X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > TRY it. Visit as many nodes and links as you like - the more the > better. Describe to us what you *actually* see: what percentage of > the links do not take you directly to the appropriate passage? > 10%? 1%? 0.1%? No need to blindly trying to click all links. You can open the file `info/elisp' and count all strings that start with "Ref:" (they are anchors that put the cursor to a mid-node position). There are 66 lines with "Ref:" (that fail to go directly to the appropriate place) and 839 lines with "Node:" (that succeed since they put the cursor to the beginning of the node). The ratio of 66 to 839 is 8%. So you guess of 10% is closer to the actual percentage. -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 12:58:04 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 16:58:04 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nypci-00015i-6E for submit@debbugs.gnu.org; Mon, 05 Apr 2010 12:58:04 -0400 Received: from smtp-out2.starman.ee ([85.253.0.4] helo=mx2.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nypcg-000157-C5 for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 12:58:03 -0400 X-Virus-Scanned: by Amavisd-New at mx2.starman.ee Received: from mail.starman.ee (82.131.96.80.cable.starman.ee [82.131.96.80]) by mx2.starman.ee (Postfix) with ESMTP id B77DA3F40EC; Mon, 5 Apr 2010 19:57:48 +0300 (EEST) From: Juri Linkov To: Stefan Monnier Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> <87eiiuwz6g.fsf@mail.jurta.org> Date: Mon, 05 Apr 2010 19:50:52 +0300 In-Reply-To: (Stefan Monnier's message of "Sun, 04 Apr 2010 22:06:31 -0400") Message-ID: <87bpdxdes3.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) >> We could change the background color of the overlay's after-string >> to look like the header line (grey background) so users will expect >> that only mouse clicks should work on grey areas. > > I'd rather not change this part of the visual appearance, but maybe it's > just my personal preference. I think this decision should be taken > with the understanding that we will want to install a real-fix in > Emacs-24 so that we can click with the keyboard and copy&paste > the breadcrumbs and that we won't want to revert the visual appearance > at that point (people get used to visual appearances). I think both types of navigation links (breadcrumbs and up/next/prev) should be treated equally. If we'll implement clicking with the keyboard and copy&paste in Emacs-24, it would be natural to apply this to the up/next/prev links as well and change their visual appearance. Or maybe to leave breadcrumbs and navigation links in the (multi-line?) header line will be better because they don't scroll and stay on top. In any case, it's important that the visual appearance should match the user's expectation. When the visual appearance of breadcrumbs is the same as for the rest text of the Info buffer, users will be tempted to use the keyboard on breadcrumbs. > If we want to use this header-line appearance, couldn't we use something > like font-lock-append-text-property rather than apply `header-line' > bit-by-bit (and worse yet: in different ways for different parts). Done in the patch below. >> @@ -4260,7 +4288,10 @@ (defun Info-fontify-node () >> ;; that is in the header, if it is just part. >> (cond >> ((> Info-breadcrumbs-depth 0) >> - (put-text-property (point-min) (1+ header-end) 'invisible t)) >> + (put-text-property (point-min) (1+ header-end) 'invisible t) >> + (overlay-put >> + (make-overlay header-end (1+ header-end)) >> + 'after-string (Info-breadcrumbs))) >> ((not (bobp)) >> ;; Hide the punctuation at the end, too. >> (skip-chars-backward " \t,") > > Why is the `overlay-put' at a different place than the > former Info-insert-breadcrumbs? The overlay doesn't correctly interact with the `invisible' text property. However, we can put 'invisible on the overlay instead of the text property: (let ((ov (make-overlay (point-min) (1+ header-end)))) (overlay-put ov 'invisible t) (overlay-put ov 'after-string (Info-breadcrumbs)) (overlay-put ov 'evaporate t)) > PS: the rest of the patch looks OK, so if you can fix the above > feel free to install it. I'll give this patch more testing before installing: === modified file 'lisp/info.el' --- lisp/info.el 2010-03-03 19:23:20 +0000 +++ lisp/info.el 2010-04-05 16:48:03 +0000 @@ -1053,8 +1053,8 @@ (defun Info-find-node-2 (filename nodena (Info-select-node) (goto-char (point-min)) (forward-line 1) ; skip header line - (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line - (forward-line 1)) + ;; (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line + ;; (forward-line 1)) (cond (anchorpos (let ((new-history (list Info-current-file @@ -3551,6 +3551,19 @@ (defun Info-try-follow-nearest-node (&op ((setq node (Info-get-token (point) "Prev: " "Prev: \\([^,\n\t]*\\)")) (Info-goto-node node fork))) node)) + +(defun Info-mouse-follow-link (click) + "Follow a link under point." + (interactive "e") + (let* ((position (event-start click)) + (posn-string (and position (posn-string position))) + (string (car-safe posn-string)) + (string-pos (cdr-safe posn-string)) + (link-args (and string string-pos + (get-text-property string-pos 'link-args string)))) + (when link-args + (Info-goto-node link-args)))) + (defvar Info-mode-map (let ((map (make-keymap))) @@ -4141,11 +4154,22 @@ (defvar Info-up-link-keymap keymap) "Keymap to put on the Up link in the text or the header line.") -(defun Info-insert-breadcrumbs () +(defvar Info-link-keymap + (let ((keymap (make-sparse-keymap))) + (define-key keymap [header-line mouse-1] 'Info-mouse-follow-link) + (define-key keymap [header-line mouse-2] 'Info-mouse-follow-link) + (define-key keymap [header-line down-mouse-1] 'ignore) + (define-key keymap [mouse-2] 'Info-mouse-follow-link) + (define-key keymap [follow-link] 'mouse-face) + keymap) + "Keymap to put on the link in the text or the header line.") + +(defun Info-breadcrumbs () (let ((nodes (Info-toc-nodes Info-current-file)) (node Info-current-node) (crumbs ()) - (depth Info-breadcrumbs-depth)) + (depth Info-breadcrumbs-depth) + line) ;; Get ancestors from the cached parent-children node info (while (and (not (equal "Top" node)) (> depth 0)) @@ -4172,15 +4196,26 @@ (defun Info-insert-breadcrumbs () (file-name-nondirectory Info-current-file) ;; Some legacy code can still use a symbol. Info-current-file))))) - (insert (if (bolp) "" " > ") - (cond - ((null node) "...") - ((equal node Info-current-node) - ;; No point linking to ourselves. - (propertize text 'font-lock-face 'info-header-node)) - (t - (concat "*Note " text "::")))))) - (insert "\n")))) + (setq line (concat + line + (if (null line) "" " > ") + (cond + ((null node) "...") + ((equal node Info-current-node) + ;; No point linking to ourselves. + (propertize text 'font-lock-face 'info-header-node)) + (t + (propertize text + 'mouse-face 'highlight + 'font-lock-face 'info-header-xref + 'help-echo "mouse-2: Go to node" + 'keymap Info-link-keymap + 'link-args text) + )))))) + (setq line (concat line "\n"))) + (font-lock-append-text-property 0 (length line) + 'font-lock-face 'header-line line) + line)) (defun Info-fontify-node () "Fontify the node." @@ -4227,8 +4262,8 @@ (defun Info-fontify-node () ((string-equal (downcase tag) "next") Info-next-link-keymap) ((string-equal (downcase tag) "up" ) Info-up-link-keymap)))))) - (when (> Info-breadcrumbs-depth 0) - (Info-insert-breadcrumbs)) + ;; (when (> Info-breadcrumbs-depth 0) + ;; (insert (Info-breadcrumbs))) ;; Treat header line. (when Info-use-header-line @@ -4260,7 +4295,10 @@ (defun Info-fontify-node () ;; that is in the header, if it is just part. (cond ((> Info-breadcrumbs-depth 0) - (put-text-property (point-min) (1+ header-end) 'invisible t)) + (let ((ov (make-overlay (point-min) (1+ header-end)))) + (overlay-put ov 'invisible t) + (overlay-put ov 'after-string (Info-breadcrumbs)) + (overlay-put ov 'evaporate t))) ((not (bobp)) ;; Hide the punctuation at the end, too. (skip-chars-backward " \t,") -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 13:14:09 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 17:14:09 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NypsG-0001CG-Iw for submit@debbugs.gnu.org; Mon, 05 Apr 2010 13:14:09 -0400 Received: from rcsinet12.oracle.com ([148.87.113.124]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NypsF-0001C1-0b for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 13:14:07 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by rcsinet12.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o35HE0In002665 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 5 Apr 2010 17:14:01 GMT Received: from acsmt354.oracle.com (acsmt354.oracle.com [141.146.40.154]) by acsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o35H7TxA025489; Mon, 5 Apr 2010 17:13:58 GMT Received: from abhmt005.oracle.com by acsmt355.oracle.com with ESMTP id 147516381270487569; Mon, 05 Apr 2010 10:12:49 -0700 Received: from dradamslap1 (/141.144.72.40) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 05 Apr 2010 10:12:49 -0700 From: "Drew Adams" To: "'Juri Linkov'" References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org><83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org><83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org><83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org><422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com><83d3yhx6jr.fsf@gnu.org><83C1972058E043DB8B80FEFB5A317A98@us.oracle.com><83eiivymf6.fsf@gnu.org><4173056BC32F4835955C1B5A781D37EE@us.oracle.com> <871veum52b.fsf@mail.jurta.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Mon, 5 Apr 2010 10:12:44 -0700 Message-ID: <0E46F93610574883ACE7EDAA6B791B84@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <871veum52b.fsf@mail.jurta.org> Thread-Index: AcrU4SSVE9SaH8teRgq53k+IpYAEiAAACccQ X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt354.oracle.com [141.146.40.154] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090204.4BBA1A57.01D0:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -5.2 (-----) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, 'Eli Zaretskii' X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) > No need to blindly trying to click all links. You can open the file > `info/elisp' and count all strings that start with "Ref:" > (they are anchors that put the cursor to a mid-node position). > > There are 66 lines with "Ref:" (that fail to go directly to the > appropriate place) and 839 lines with "Node:" (that succeed since > they put the cursor to the beginning of the node). > > The ratio of 66 to 839 is 8%. So you guess of 10% is closer to the > actual percentage. Thanks. I wasn't aware of that. Now we know. Neither "all the time" nor "very rare". At least in terms of _numbers_ of links (see #2 below). 1. But what do you mean here by "fail to go directly to the appropriate place"? As I pointed out, failing to go to the precise location is not a problem in the vast majority of cases, since the link still takes you to the appropriate paragraph or correct 1-3 line description. Does your measure take that into account? IOW, even if 10% of the links do not behave precisely, but 99.9% of those fail-to-go-directly links still get you to the correct paragraph (or correct 1-2 line function/var description), then the 10% number is far too high as a measure of the real problem. 2. I'm still assuming, based on experience, that it is mainly the index links that target mid-node locations. So a secondary question would be how often the different kinds of links are followed in practice - e.g. index vs other links. If there is a significant difference (either way), that could be important. This is a user-practice question, which cannot be answered by counting links. I myself use the index a lot, at least via `i'. I think it's important that index links actually take you where they should. But if users generally use index links less than text-body links, then that reduces the practical problem still further. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 16:09:08 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 20:09:08 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nysbc-0002GE-FD for submit@debbugs.gnu.org; Mon, 05 Apr 2010 16:09:08 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.183] helo=ironport2-out.pppoe.ca) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nysba-0002Ft-6m for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 16:09:06 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAIbfuUvO+K6K/2dsb2JhbACbTHK3N4UHBIsq X-IronPort-AV: E=Sophos;i="4.51,366,1267419600"; d="scan'208";a="60249187" Received: from 206-248-174-138.dsl.teksavvy.com (HELO ceviche.home) ([206.248.174.138]) by ironport2-out.pppoe.ca with ESMTP; 05 Apr 2010 16:09:00 -0400 Received: by ceviche.home (Postfix, from userid 20848) id 9EE77660BF; Mon, 5 Apr 2010 16:09:00 -0400 (EDT) From: Stefan Monnier To: Juri Linkov Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Message-ID: References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> <87eiiuwz6g.fsf@mail.jurta.org> <87bpdxdes3.fsf@mail.jurta.org> Date: Mon, 05 Apr 2010 16:09:00 -0400 In-Reply-To: <87bpdxdes3.fsf@mail.jurta.org> (Juri Linkov's message of "Mon, 05 Apr 2010 19:50:52 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.1 (--) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.1 (--) > I think both types of navigation links (breadcrumbs and up/next/prev) > should be treated equally. If we'll implement clicking with the keyboard > and copy&paste in Emacs-24, it would be natural to apply this to the > up/next/prev links as well and change their visual appearance. The up/prev/next links are different because we don't want them to scroll with the text. I.e. we're willing to give up on keyboard-clicking and copy&pasting to be able to use the header-line. Maybe we'd want to put the breadcrumbs in the header-line as well, but that would require 2 lines of header-line and I'm not sure I'd be in favor of such a change (especially as computer displays tend to get less and less tall nowadays, for reasons that escape me). > In any case, it's important that the visual appearance should match the > user's expectation. When the visual appearance of breadcrumbs is > the same as for the rest text of the Info buffer, users will be tempted > to use the keyboard on breadcrumbs. I think it's OK: it is a misfeature, so it's normal for people to complain about them. Let's not pretend it's a feature when it's not. Or to reverse your argument: if it looks like a header-line, people will report bugs about the fact that it doesn't stay at the top of the display ;-) I.e. in any case it won't match all the user's expectations and I don't think this argument will give us a good basis on which to make a decision. > The overlay doesn't correctly interact with the `invisible' > text property. Interesting. That deserves a comment. > However, we can put 'invisible on the overlay instead of the text property: > (let ((ov (make-overlay (point-min) (1+ header-end)))) > (overlay-put ov 'invisible t) > (overlay-put ov 'after-string (Info-breadcrumbs)) > (overlay-put ov 'evaporate t)) Yes, that's better, thank you. Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 16:11:20 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 20:11:20 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nysdk-0002H6-Mi for submit@debbugs.gnu.org; Mon, 05 Apr 2010 16:11:20 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181] helo=ironport2-out.pppoe.ca) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nysdj-0002Gx-V7 for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 16:11:20 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEALLguUvO+K6K/2dsb2JhbACbTHK3OoUHBIsq X-IronPort-AV: E=Sophos;i="4.51,366,1267419600"; d="scan'208";a="60249363" Received: from 206-248-174-138.dsl.teksavvy.com (HELO ceviche.home) ([206.248.174.138]) by ironport2-out.pppoe.ca with ESMTP; 05 Apr 2010 16:11:15 -0400 Received: by ceviche.home (Postfix, from userid 20848) id 6B625660BF; Mon, 5 Apr 2010 16:11:15 -0400 (EDT) From: Stefan Monnier To: Juri Linkov Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Message-ID: References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> <83d3yhx6jr.fsf@gnu.org> <83C1972058E043DB8B80FEFB5A317A98@us.oracle.com> <83eiivymf6.fsf@gnu.org> <4173056BC32F4835955C1B5A781D37EE@us.oracle.com> <87wrwmvjfe.fsf@mail.jurta.org> <87hbnqoza2.fsf@mail.jurta.org> Date: Mon, 05 Apr 2010 16:11:15 -0400 In-Reply-To: <87hbnqoza2.fsf@mail.jurta.org> (Juri Linkov's message of "Mon, 05 Apr 2010 19:42:37 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -2.1 (--) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, Drew Adams X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.1 (--) >> It's too bad that the simple solution of using a newline in the header >> line doesn't work without display-engine changes. Has anyone looked >> into what changes to the display engine would be needed to fix that? A better option would be to allow multiple header-lines. So minor modes can use one without clashing with each-other or with major modes using header-lines. Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 17:55:28 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 21:55:28 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyuGV-0002sk-Oe for submit@debbugs.gnu.org; Mon, 05 Apr 2010 17:55:28 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyuGU-0002sf-3W for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 17:55:26 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0L0F00B00AS70E00@a-mtaout22.012.net.il> for 5809@debbugs.gnu.org; Tue, 06 Apr 2010 00:55:19 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.124.92.42]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L0F006MNBJYUYD0@a-mtaout22.012.net.il>; Tue, 06 Apr 2010 00:55:14 +0300 (IDT) Date: Tue, 06 Apr 2010 00:55:16 +0300 From: Eli Zaretskii Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position In-reply-to: <871veum52b.fsf@mail.jurta.org> X-012-Sender: halo1@inter.net.il To: Juri Linkov Message-id: <83ochxy37f.fsf@gnu.org> References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org> <422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com> <83d3yhx6jr.fsf@gnu.org> <83C1972058E043DB8B80FEFB5A317A98@us.oracle.com> <83eiivymf6.fsf@gnu.org> <4173056BC32F4835955C1B5A781D37EE@us.oracle.com> <871veum52b.fsf@mail.jurta.org> X-Spam-Score: -1.8 (-) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org, drew.adams@oracle.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.8 (-) > From: Juri Linkov > Cc: "'Eli Zaretskii'" , 5809@debbugs.gnu.org > Date: Mon, 05 Apr 2010 19:45:56 +0300 > > The ratio of 66 to 839 is 8%. So you guess of 10% is closer to the > actual percentage. That's only one manual. The Emacs manuals don't use @anchor very much. In the GDB manual, the ratio is 65 to 418 (15.5%), which is twice the ratio we see in ELisp. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 18:19:27 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 22:19:27 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nyudi-00030s-Rz for submit@debbugs.gnu.org; Mon, 05 Apr 2010 18:19:27 -0400 Received: from smtp-out1.starman.ee ([85.253.0.3] helo=mx1.starman.ee) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nyudg-00030n-RP for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 18:19:26 -0400 X-Virus-Scanned: by Amavisd-New at mx1.starman.ee Received: from mail.starman.ee (82.131.96.80.cable.starman.ee [82.131.96.80]) by mx1.starman.ee (Postfix) with ESMTP id 96D9B3F40B1; Tue, 6 Apr 2010 01:19:14 +0300 (EEST) From: Juri Linkov To: Stefan Monnier Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Organization: JURTA References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org> <83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org> <83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org> <83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <87d3yi85sv.fsf@mail.jurta.org> <87eiix5u1a.fsf@mail.jurta.org> <878w94dxf2.fsf@mail.jurta.org> <87eiiuwz6g.fsf@mail.jurta.org> <87bpdxdes3.fsf@mail.jurta.org> Date: Tue, 06 Apr 2010 01:17:45 +0300 In-Reply-To: (Stefan Monnier's message of "Mon, 05 Apr 2010 16:09:00 -0400") Message-ID: <87fx397ddn.fsf@mail.jurta.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > Or to reverse your argument: if it looks like a header-line, people will > report bugs about the fact that it doesn't stay at the top of the > display ;-) Yeah, breadcrumbs now are not normal links and not a header-line. But it's OK because when up/next/prev links are not in the header line (when `Info-use-header-line' is nil) then TAB (`Info-next-reference') doesn't go through up/next/prev links. In this regard, they are like breadcrumbs in an overlay. There is one difference: it's possible to type RET on up/next/prev in this case, but I think no one navigates this way with the keyboard because it's too slow to move point to a navigation link to type RET on it. >> The overlay doesn't correctly interact with the `invisible' >> text property. > > Interesting. That deserves a comment. Actually, nothing interesting because I meant that with the `invisible' text property any overlay inside it becomes invisible, and there is no other free place to put overlay on. >> However, we can put 'invisible on the overlay instead of the text property: >> (let ((ov (make-overlay (point-min) (1+ header-end)))) >> (overlay-put ov 'invisible t) >> (overlay-put ov 'after-string (Info-breadcrumbs)) >> (overlay-put ov 'evaporate t)) > > Yes, that's better, thank you. Installed to the emacs-23 branch (with code for grey background commented out). -- Juri Linkov http://www.jurta.org/emacs/ From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 19:19:02 2010 Received: (at 5809) by debbugs.gnu.org; 5 Apr 2010 23:19:02 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyvZO-0003MF-HK for submit@debbugs.gnu.org; Mon, 05 Apr 2010 19:19:02 -0400 Received: from rcsinet11.oracle.com ([148.87.113.123]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NyvZM-0003Lu-0k for 5809@debbugs.gnu.org; Mon, 05 Apr 2010 19:19:00 -0400 Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by rcsinet11.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o35NIr1A009746 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 5 Apr 2010 23:18:55 GMT Received: from acsmt355.oracle.com (acsmt355.oracle.com [141.146.40.155]) by rcsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o35NIpJE023896; Mon, 5 Apr 2010 23:18:52 GMT Received: from abhmt009.oracle.com by acsmt353.oracle.com with ESMTP id 148453101270509428; Mon, 05 Apr 2010 16:17:08 -0700 Received: from dradamslap1 (/141.144.225.69) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 05 Apr 2010 16:17:08 -0700 From: "Drew Adams" To: "'Stefan Monnier'" , "'Juri Linkov'" , "'Eli Zaretskii'" References: <837hoszubi.fsf@gnu.org> <87hbnwy2un.fsf@mail.jurta.org><83y6h8xz8a.fsf@gnu.org> <8739zf5bif.fsf@mail.jurta.org><83y6h7vy6p.fsf@gnu.org> <87y6h7uitd.fsf@mail.jurta.org><83wrwqx6r2.fsf@gnu.org> <83vdcax5hu.fsf@gnu.org> <83sk7ewcvz.fsf@gnu.org><422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com><83d3yhx6jr.fsf@gnu.org><83C1972058E043DB8B80FEFB5A317A98@us.oracle.com><83eiivymf6.fsf@gnu.org><4173056BC32F4835955C1B5A781D37EE@us.oracle.com><87wrwmvjfe.fsf@mail.jurta.org><87hbnqoza2.fsf@mail.jurta.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Mon, 5 Apr 2010 16:17:04 -0700 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0052_01CAD4DB.6F2013E0" X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: AcrU/Cfq3mVF/uNxRmmdVQpx6tWcJQAEtM4g X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Message-Flag: Follow up X-Source-IP: acsmt355.oracle.com [141.146.40.155] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090208.4BBA6FDD.015F:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) This is a multi-part message in MIME format. ------=_NextPart_000_0052_01CAD4DB.6F2013E0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit OK, FWIW, here's another idea. This doesn't respond to a general need for multi-line headers or multiple headers or any of the other things discussed so far. This is just an alternative breadcrumbs approach for Info. The idea is to use the mode line, not a header line, for breadcrumbs. Please try the attached patch, which is against info.el from today (it also works fine against the 95 pretest). It will take you only a moment to try. By default (in this patch at least) breadcrumbs are turned off. You can turn them on using `Info-breadcrumbs-mode', which is in the Info menu as `Toggle Breadcrumbs'. (That menu is of course also on the `Info' minor-mode lighter in the mode line.) When breadcrumbs are shown, they are all that is shown in the mode line. Mouse-2 on a node of the breadcrumbs path takes you to that node. Mouse-1 anywhere on the breadcrumbs brings up a `Breadcrumbs' menu, with these items: Set Breadcrumbs Depth Toggle Breadcrumbs Previous Node Next Node The previous and next items are there only when there is really a previous or next node. Setting the depth here (first menu item) does not change the value of option `Info-breadcrumbs-depth'. It's pretty simple - give it a try; you might like it. The mode line, like the header line, is always handy - no need to scroll. A possible change: Add a menu item `Customize Breadcrumbs Depth' for customizing `Info-breadcrumbs-depth', the default depth. Another possible change: Put back the size indication mode when breadcrumbs are shown. I don't miss it (the scroll bar is enough), but you might want it. There is probably room for it, even for manuals that have several levels and long node names. Another possible change: put back the read-only/writable indicator. Or perhaps just turn off breadcrumbs mode whenever someone edits an Info node. I don't think you'll miss any of the other stuff that is normally in the mode line. I don't. ------=_NextPart_000_0052_01CAD4DB.6F2013E0 Content-Type: application/octet-stream; name="info-2010-04-05.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="info-2010-04-05.patch" diff -cw info-BZR-2010-04-05.el info-patched-2010-04-05.el=0A= *** info-BZR-2010-04-05.el Mon Apr 5 07:48:52 2010=0A= --- info-patched-2010-04-05.el Mon Apr 5 15:41:04 2010=0A= ***************=0A= *** 240,245 ****=0A= --- 240,248 ----=0A= 0 means do not display breadcrumbs."=0A= :type 'integer)=0A= =0A= + (defvar Info-breadcrumbs-depth-internal Info-breadcrumbs-depth=0A= + "Current breadcrumbs depth for Info.")=0A= + =0A= (defcustom Info-search-whitespace-regexp "\\s-+"=0A= "If non-nil, regular expression to match a sequence of whitespace = chars.=0A= This applies to Info search for regular expressions.=0A= ***************=0A= *** 1053,1061 ****=0A= (Info-select-node)=0A= (goto-char (point-min))=0A= (forward-line 1) ; skip header line=0A= - (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line=0A= - (forward-line 1))=0A= - =0A= (cond (anchorpos=0A= (let ((new-history (list Info-current-file=0A= (substring-no-properties = nodename))))=0A= --- 1056,1061 ----=0A= ***************=0A= *** 1076,1082 ****=0A= (let ((hist (car Info-history)))=0A= (setq Info-history (cdr Info-history))=0A= (Info-find-node (nth 0 hist) (nth 1 hist) t)=0A= ! (goto-char (nth 2 hist))))))=0A= =0A= ;; Cache the contents of the (virtual) dir file, once we have merged=0A= ;; it for the first time, so we can save time subsequently.=0A= --- 1076,1083 ----=0A= (let ((hist (car Info-history)))=0A= (setq Info-history (cdr Info-history))=0A= (Info-find-node (nth 0 hist) (nth 1 hist) t)=0A= ! (goto-char (nth 2 hist)))))=0A= ! (if Info-breadcrumbs-mode (Info-insert-breadcrumbs) = (Info-set-mode-line)))=0A= =0A= ;; Cache the contents of the (virtual) dir file, once we have merged=0A= ;; it for the first time, so we can save time subsequently.=0A= ***************=0A= *** 3690,3695 ****=0A= --- 3691,3698 ----=0A= :help "Go to final node in this file"]=0A= ("Menu Item" ["You should never see this" report-emacs-bug t])=0A= ("Reference" ["You should never see this" report-emacs-bug t])=0A= + ["Toggle Breadcrumbs" Info-breadcrumbs-mode=0A= + :help "Toggle showing breadcrumbs in the mode line"]=0A= ["Search..." Info-search=0A= :help "Search for regular expression in this Info file"]=0A= ["Search Next" Info-search-next=0A= ***************=0A= *** 4196,4237 ****=0A= (let ((nodes (Info-toc-nodes Info-current-file))=0A= (node Info-current-node)=0A= (crumbs ())=0A= ! (depth Info-breadcrumbs-depth))=0A= ! =0A= ;; Get ancestors from the cached parent-children node info=0A= (while (and (not (equal "Top" node)) (> depth 0))=0A= (setq node (nth 1 (assoc node nodes)))=0A= ! (if node (push node crumbs))=0A= (setq depth (1- depth)))=0A= - =0A= ;; Add bottom node.=0A= ! (when Info-use-header-line=0A= ! ;; Let it disappear if crumbs is nil.=0A= ! (nconc crumbs (list Info-current-node)))=0A= ! (when (or Info-use-header-line crumbs)=0A= ;; Add top node (and continuation if needed).=0A= ! (setq crumbs=0A= ! (cons "Top" (if (member (pop crumbs) '(nil "Top"))=0A= ! crumbs (cons nil crumbs))))=0A= ! ;; Eliminate duplicate.=0A= ! (forward-line 1)=0A= (dolist (node crumbs)=0A= ! (let ((text=0A= ! (if (not (equal node "Top")) node=0A= ! (format "(%s)Top"=0A= (if (stringp Info-current-file)=0A= (file-name-nondirectory Info-current-file)=0A= ;; Some legacy code can still use a symbol.=0A= ! Info-current-file)))))=0A= ! (insert (if (bolp) "" " > ")=0A= ! (cond=0A= ! ((null node) "...")=0A= ! ((equal node Info-current-node)=0A= ! ;; No point linking to ourselves.=0A= ! (propertize text 'font-lock-face 'info-header-node))=0A= ! (t=0A= ! (concat "*Note " text "::"))))))=0A= ! (insert "\n"))))=0A= =0A= (defun Info-fontify-node ()=0A= "Fontify the node."=0A= --- 4199,4275 ----=0A= (let ((nodes (Info-toc-nodes Info-current-file))=0A= (node Info-current-node)=0A= (crumbs ())=0A= ! (depth Info-breadcrumbs-depth-internal)=0A= ! (text ""))=0A= ;; Get ancestors from the cached parent-children node info=0A= (while (and (not (equal "Top" node)) (> depth 0))=0A= (setq node (nth 1 (assoc node nodes)))=0A= ! (when node (push node crumbs))=0A= (setq depth (1- depth)))=0A= ;; Add bottom node.=0A= ! (setq crumbs (nconc crumbs (list Info-current-node)))=0A= ! (when crumbs=0A= ;; Add top node (and continuation if needed).=0A= ! (setq crumbs (cons "Top" (if (member (pop crumbs) '(nil "Top"))=0A= ! crumbs=0A= ! (cons nil crumbs))))=0A= (dolist (node crumbs)=0A= ! (when node=0A= ! (setq node ; Breadcrumbs map=0A= ! (propertize node=0A= ! 'local-map (let ((map = (make-sparse-keymap))=0A= ! (menu-map = (make-sparse-keymap "Breadcrumbs")))=0A= ! (define-key menu-map = [Info-prev]=0A= ! `(menu-item "Previous Node" = Info-prev=0A= ! :visible = ,(Info-check-pointer "prev[ious]*")=0A= ! :help "Go to = the previous node"))=0A= ! (define-key menu-map = [Info-next]=0A= ! `(menu-item "Next Node" = Info-next=0A= ! :visible = ,(Info-check-pointer "next")=0A= ! :help "Go to = the next node"))=0A= ! (define-key menu-map = [separator] '("--"))=0A= ! (define-key menu-map = [Info-breadcrumbs-mode]=0A= ! `(menu-item "Toggle = Breadcrumbs" Info-breadcrumbs-mode=0A= ! :help "Toggle = displaying breadcrumbs in the Info mode-line"=0A= ! :button = (:toggle . Info-breadcrumbs-mode)))=0A= ! (define-key menu-map = [Info-set-breadcrumbs-depth]=0A= ! `(menu-item "Set = Breadcrumbs Depth" Info-set-breadcrumbs-depth=0A= ! :help "Set = depth of breadcrumbs to show in the mode-line"))=0A= ! (define-key map [mode-line = down-mouse-1] menu-map)=0A= ! (define-key map [mode-line = down-mouse-2]=0A= ! `(lambda () (interactive) = (Info-goto-node ,node)))=0A= ! map)=0A= ! 'help-echo (concat "mouse-1: Menu"=0A= ! (if (equal node = Info-current-node)"" ", mouse-2: Go to this node")))))=0A= ! (let ((nodetext (if (not (equal node "Top"))=0A= ! node=0A= ! (format "(%s)%s"=0A= (if (stringp Info-current-file)=0A= (file-name-nondirectory = Info-current-file)=0A= ;; Some legacy code can still use = a symbol.=0A= ! Info-current-file)=0A= ! node))))=0A= ! (setq text (concat text (if (equal node "Top") "" " > ")=0A= ! (if node nodetext "...")))))=0A= ! (make-local-variable 'mode-line-format) ; Needed for Emacs 21+.=0A= ! (setq mode-line-format text))))=0A= ! =0A= ! (define-minor-mode Info-breadcrumbs-mode=0A= ! "Toggle the use of breadcrumbs in Info mode line.=0A= ! With arg, show breadcrumbs iff arg is positive."=0A= ! :group 'mode-line :group 'info=0A= ! (if (not Info-breadcrumbs-mode)=0A= ! (setq Info-breadcrumbs-depth-internal 0=0A= ! mode-line-format default-mode-line-format)=0A= ! (setq Info-breadcrumbs-depth-internal Info-breadcrumbs-depth)=0A= ! (Info-insert-breadcrumbs)))=0A= ! =0A= ! (defun Info-set-breadcrumbs-depth ()=0A= ! "Set current breadcrumbs depth to a value read from user."=0A= ! (interactive)=0A= ! (setq Info-breadcrumbs-depth-internal (read-number "New breadcrumbs = depth: "=0A= ! = Info-breadcrumbs-depth-internal))=0A= ! (Info-insert-breadcrumbs))=0A= =0A= (defun Info-fontify-node ()=0A= "Fontify the node."=0A= ***************=0A= *** 4278,4286 ****=0A= ((string-equal (downcase tag) "next") Info-next-link-keymap)=0A= ((string-equal (downcase tag) "up" ) Info-up-link-keymap))))))=0A= =0A= - (when (> Info-breadcrumbs-depth 0)=0A= - (Info-insert-breadcrumbs))=0A= - =0A= ;; Treat header line.=0A= (when Info-use-header-line=0A= (goto-char (point-min))=0A= --- 4316,4321 ----=0A= ***************=0A= *** 4307,4321 ****=0A= "%"=0A= ;; Preserve text properties on duplicated `%'.=0A= (lambda (s) (concat s s)) header))=0A= ! ;; Hide the part of the first line=0A= ! ;; that is in the header, if it is just part.=0A= ! (cond=0A= ! ((> Info-breadcrumbs-depth 0)=0A= ! (put-text-property (point-min) (1+ header-end) = 'invisible t))=0A= ! ((not (bobp))=0A= ;; Hide the punctuation at the end, too.=0A= (skip-chars-backward " \t,")=0A= ! (put-text-property (point) header-end 'invisible t))))))=0A= =0A= ;; Fontify titles=0A= (goto-char (point-min))=0A= --- 4342,4352 ----=0A= "%"=0A= ;; Preserve text properties on duplicated `%'.=0A= (lambda (s) (concat s s)) header))=0A= ! ;; Hide the part of the first line that is in the header, = if it is just part.=0A= ;; Hide the punctuation at the end, too.=0A= + (unless (bobp)=0A= (skip-chars-backward " \t,")=0A= ! (put-text-property (point) header-end 'invisible t)))))=0A= =0A= ;; Fontify titles=0A= (goto-char (point-min))=0A= =0A= Diff finished. Mon Apr 05 15:41:59 2010=0A= ------=_NextPart_000_0052_01CAD4DB.6F2013E0-- From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 06 01:51:29 2010 Received: (at 5809) by debbugs.gnu.org; 6 Apr 2010 05:51:29 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nz1h7-0005by-Ll for submit@debbugs.gnu.org; Tue, 06 Apr 2010 01:51:29 -0400 Received: from acsinet12.oracle.com ([141.146.126.234]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nz1gd-0005bW-Qz for 5809@debbugs.gnu.org; Tue, 06 Apr 2010 01:51:23 -0400 Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by acsinet12.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o365ojui014468 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 6 Apr 2010 05:50:51 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by rcsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o35Nm2Mx019404; Tue, 6 Apr 2010 05:50:44 GMT Received: from abhmt007.oracle.com by acsmt353.oracle.com with ESMTP id 138948731270532996; Mon, 05 Apr 2010 22:49:56 -0700 Received: from dradamslap1 (/141.144.225.69) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 05 Apr 2010 22:49:56 -0700 From: "Drew Adams" To: "'Stefan Monnier'" , "'Juri Linkov'" , "'Eli Zaretskii'" References: <837hoszubi.fsf@gnu.org><87hbnwy2un.fsf@mail.jurta.org><83y6h8xz8a.fsf@gnu.org><8739zf5bif.fsf@mail.jurta.org><83y6h7vy6p.fsf@gnu.org><87y6h7uitd.fsf@mail.jurta.org><83wrwqx6r2.fsf@gnu.org><83vdcax5hu.fsf@gnu.org><83sk7ewcvz.fsf@gnu.org><422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com><83d3yhx6jr.fsf@gnu.org><83C1972058E043DB8B80FEFB5A317A98@us.oracle.com><83eiivymf6.fsf@gnu.org><4173056BC32F4835955C1B5A781D37EE@us.oracle.com><87wrwmvjfe.fsf@mail.jurta.org><87hbnqoza2.fsf@mail.jurta.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Mon, 5 Apr 2010 22:49:53 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: AcrU/Cfq3mVF/uNxRmmdVQpx6tWcJQAEtM4gAA6qsbA= X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt353.oracle.com [141.146.40.153] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090208.4BBACBB5.0019:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) > A possible change: Add a menu item `Customize Breadcrumbs > Depth' for customizing > `Info-breadcrumbs-depth', the default depth. > > Another possible change: Put back the size indication mode > when breadcrumbs are > shown. I don't miss it (the scroll bar is enough), but you > might want it. There > is probably room for it, even for manuals that have several > levels and long node > names. > > Another possible change: put back the read-only/writable > indicator. Or perhaps > just turn off breadcrumbs mode whenever someone edits an Info node. Another possible change: Put `Info-scroll-up'/`down' on mouse-1/mouse-3 for the current node name (similar to what is the case now). From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 06 13:46:24 2010 Received: (at 5809) by debbugs.gnu.org; 6 Apr 2010 17:46:24 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NzCr1-0003x5-Lk for submit@debbugs.gnu.org; Tue, 06 Apr 2010 13:46:23 -0400 Received: from rcsinet12.oracle.com ([148.87.113.124]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NzCqz-0003x0-ND for 5809@debbugs.gnu.org; Tue, 06 Apr 2010 13:46:22 -0400 Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by rcsinet12.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o36Hk9vH027502 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 6 Apr 2010 17:46:12 GMT Received: from acsmt354.oracle.com (acsmt354.oracle.com [141.146.40.154]) by rcsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o36DBLEd019745; Tue, 6 Apr 2010 17:46:08 GMT Received: from abhmt020.oracle.com by acsmt355.oracle.com with ESMTP id 151114301270575963; Tue, 06 Apr 2010 10:46:03 -0700 Received: from dradamslap1 (/141.144.225.69) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 06 Apr 2010 10:46:03 -0700 From: "Drew Adams" To: "'Stefan Monnier'" , "'Juri Linkov'" , "'Eli Zaretskii'" References: <837hoszubi.fsf@gnu.org><87hbnwy2un.fsf@mail.jurta.org><83y6h8xz8a.fsf@gnu.org><8739zf5bif.fsf@mail.jurta.org><83y6h7vy6p.fsf@gnu.org><87y6h7uitd.fsf@mail.jurta.org><83wrwqx6r2.fsf@gnu.org><83vdcax5hu.fsf@gnu.org><83sk7ewcvz.fsf@gnu.org><422BAD8C75BE4F5BAE608BD47A355EFF@us.oracle.com><83d3yhx6jr.fsf@gnu.org><83C1972058E043DB8B80FEFB5A317A98@us.oracle.com><83eiivymf6.fsf@gnu.org><4173056BC32F4835955C1B5A781D37EE@us.oracle.com><87wrwmvjfe.fsf@mail.jurta.org><87hbnqoza2.fsf@mail.jurta.org> Subject: RE: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Tue, 6 Apr 2010 10:46:01 -0700 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_00C4_01CAD576.59D21D80" X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: AcrU/Cfq3mVF/uNxRmmdVQpx6tWcJQAEtM4gAA6qsbAAFogZwA== X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: acsmt354.oracle.com [141.146.40.154] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090207.4BBB7361.00E0:SCFMA4539814,ss=1,fgs=0 X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 5809 Cc: 5809@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) This is a multi-part message in MIME format. ------=_NextPart_000_00C4_01CAD576.59D21D80 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit I hope you will take a minute to try the patch. > Another possible change: Put `Info-scroll-up'/`down' on > mouse-1/mouse-3 for the current node name (similar to what > is the case now). I did that. Attached is a better patch: . mouse-2: the breadcrumbs menu . mouse-1/3: Info-scroll-* for the current node go-to-clicked-node for ancestor nodes And it does the usual mouseover highlighting on a node name to show it is mouse-active (which I had forgotten in the previous patch). ---- Better yet would be the following (I did not do this in the patch): Swap mouse-2 and mouse-3, and swap the scroll directions. For the current node: . mouse-1: Info-mouse-scroll-down . mouse-2: Info-mouse-scroll-up . mouse-3: breadcrumbs menu For ancestor nodes: . mouse-1: go to clicked node . mouse-2: go to clicked node . mouse-3: breadcrumbs menu That would be better for these reasons: 1. mouse-1 and mouse-2 both go to the clicked ancestor node, just as they both follow links (by default). 2. mouse-1 is to the left of mouse-2, so mouse-1 should move left and mouse-2 right. It is perverse to cross these directions. See bug #5841. 3. mouse-3 as a menu is very common outside Emacs and not unexpected for lots of users. mouse-2 (in Emacs and outside it) is rarely used for a menu. ------=_NextPart_000_00C4_01CAD576.59D21D80 Content-Type: application/octet-stream; name="info-2010-04-06.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="info-2010-04-06.patch" diff -cw info-BZR-2010-04-05.el info-patched-2010-04-06.el=0A= *** info-BZR-2010-04-05.el Mon Apr 5 07:48:52 2010=0A= --- info-patched-2010-04-06.el Tue Apr 6 09:04:46 2010=0A= ***************=0A= *** 240,245 ****=0A= --- 240,248 ----=0A= 0 means do not display breadcrumbs."=0A= :type 'integer)=0A= =0A= + (defvar Info-breadcrumbs-depth-internal Info-breadcrumbs-depth=0A= + "Current breadcrumbs depth for Info.")=0A= + =0A= (defcustom Info-search-whitespace-regexp "\\s-+"=0A= "If non-nil, regular expression to match a sequence of whitespace = chars.=0A= This applies to Info search for regular expressions.=0A= ***************=0A= *** 1053,1061 ****=0A= (Info-select-node)=0A= (goto-char (point-min))=0A= (forward-line 1) ; skip header line=0A= - (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line=0A= - (forward-line 1))=0A= - =0A= (cond (anchorpos=0A= (let ((new-history (list Info-current-file=0A= (substring-no-properties = nodename))))=0A= --- 1056,1061 ----=0A= ***************=0A= *** 1076,1082 ****=0A= (let ((hist (car Info-history)))=0A= (setq Info-history (cdr Info-history))=0A= (Info-find-node (nth 0 hist) (nth 1 hist) t)=0A= ! (goto-char (nth 2 hist))))))=0A= =0A= ;; Cache the contents of the (virtual) dir file, once we have merged=0A= ;; it for the first time, so we can save time subsequently.=0A= --- 1076,1083 ----=0A= (let ((hist (car Info-history)))=0A= (setq Info-history (cdr Info-history))=0A= (Info-find-node (nth 0 hist) (nth 1 hist) t)=0A= ! (goto-char (nth 2 hist)))))=0A= ! (if Info-breadcrumbs-mode (Info-insert-breadcrumbs) = (Info-set-mode-line)))=0A= =0A= ;; Cache the contents of the (virtual) dir file, once we have merged=0A= ;; it for the first time, so we can save time subsequently.=0A= ***************=0A= *** 3690,3695 ****=0A= --- 3691,3698 ----=0A= :help "Go to final node in this file"]=0A= ("Menu Item" ["You should never see this" report-emacs-bug t])=0A= ("Reference" ["You should never see this" report-emacs-bug t])=0A= + ["Toggle Breadcrumbs" Info-breadcrumbs-mode=0A= + :help "Toggle showing breadcrumbs in the mode line"]=0A= ["Search..." Info-search=0A= :help "Search for regular expression in this Info file"]=0A= ["Search Next" Info-search-next=0A= ***************=0A= *** 4196,4237 ****=0A= (let ((nodes (Info-toc-nodes Info-current-file))=0A= (node Info-current-node)=0A= (crumbs ())=0A= ! (depth Info-breadcrumbs-depth))=0A= ! =0A= ;; Get ancestors from the cached parent-children node info=0A= (while (and (not (equal "Top" node)) (> depth 0))=0A= (setq node (nth 1 (assoc node nodes)))=0A= ! (if node (push node crumbs))=0A= (setq depth (1- depth)))=0A= - =0A= ;; Add bottom node.=0A= ! (when Info-use-header-line=0A= ! ;; Let it disappear if crumbs is nil.=0A= ! (nconc crumbs (list Info-current-node)))=0A= ! (when (or Info-use-header-line crumbs)=0A= ;; Add top node (and continuation if needed).=0A= ! (setq crumbs=0A= ! (cons "Top" (if (member (pop crumbs) '(nil "Top"))=0A= ! crumbs (cons nil crumbs))))=0A= ! ;; Eliminate duplicate.=0A= ! (forward-line 1)=0A= (dolist (node crumbs)=0A= ! (let ((text=0A= ! (if (not (equal node "Top")) node=0A= ! (format "(%s)Top"=0A= (if (stringp Info-current-file)=0A= (file-name-nondirectory Info-current-file)=0A= ;; Some legacy code can still use a symbol.=0A= ! Info-current-file)))))=0A= ! (insert (if (bolp) "" " > ")=0A= ! (cond=0A= ! ((null node) "...")=0A= ! ((equal node Info-current-node)=0A= ! ;; No point linking to ourselves.=0A= ! (propertize text 'font-lock-face 'info-header-node))=0A= ! (t=0A= ! (concat "*Note " text "::"))))))=0A= ! (insert "\n"))))=0A= =0A= (defun Info-fontify-node ()=0A= "Fontify the node."=0A= --- 4199,4286 ----=0A= (let ((nodes (Info-toc-nodes Info-current-file))=0A= (node Info-current-node)=0A= (crumbs ())=0A= ! (depth Info-breadcrumbs-depth-internal)=0A= ! (text ""))=0A= ;; Get ancestors from the cached parent-children node info=0A= (while (and (not (equal "Top" node)) (> depth 0))=0A= (setq node (nth 1 (assoc node nodes)))=0A= ! (when node (push node crumbs))=0A= (setq depth (1- depth)))=0A= ;; Add bottom node.=0A= ! (setq crumbs (nconc crumbs (list Info-current-node)))=0A= ! (when crumbs=0A= ;; Add top node (and continuation if needed).=0A= ! (setq crumbs (cons "Top" (if (member (pop crumbs) '(nil "Top"))=0A= ! crumbs=0A= ! (cons nil crumbs))))=0A= (dolist (node crumbs)=0A= ! (let ((crumbs-map (make-sparse-keymap))=0A= ! (menu-map (make-sparse-keymap "Breadcrumbs")))=0A= ! (define-key crumbs-map [mode-line mouse-2] menu-map)=0A= ! (when node=0A= ! (define-key menu-map [Info-prev]=0A= ! `(menu-item "Previous Node" Info-prev=0A= ! :visible ,(Info-check-pointer "prev[ious]*")=0A= ! :help "Go to the previous node"))=0A= ! (define-key menu-map [Info-next]=0A= ! `(menu-item "Next Node" Info-next=0A= ! :visible ,(Info-check-pointer "next")=0A= ! :help "Go to the next node"))=0A= ! (define-key menu-map [separator] '("--"))=0A= ! (define-key menu-map [Info-breadcrumbs-mode]=0A= ! `(menu-item "Toggle Breadcrumbs" Info-breadcrumbs-mode=0A= ! :help "Toggle displaying breadcrumbs in the = Info mode-line"=0A= ! :button (:toggle . Info-breadcrumbs-mode)))=0A= ! (define-key menu-map [Info-set-breadcrumbs-depth]=0A= ! `(menu-item "Set Breadcrumbs Depth" = Info-set-breadcrumbs-depth=0A= ! :help "Set depth of breadcrumbs to show in = the mode-line"))=0A= ! (setq node (if (equal node Info-current-node)=0A= ! (propertize (replace-regexp-in-string "%" = "%%" Info-current-node)=0A= ! 'face 'mode-line-buffer-id=0A= ! 'help-echo "mouse-1: scroll = forward, mouse-2: menu, mouse-3: scroll back"=0A= ! 'mouse-face = 'mode-line-highlight=0A= ! 'local-map=0A= ! (progn=0A= ! (define-key crumbs-map = [mode-line mouse-1] 'Info-mouse-scroll-up)=0A= ! (define-key crumbs-map = [mode-line mouse-3] 'Info-mouse-scroll-down)=0A= ! crumbs-map))=0A= ! (propertize node=0A= ! 'local-map (progn=0A= ! (define-key = crumbs-map [mode-line mouse-1]=0A= ! `(lambda () = (interactive) (Info-goto-node ,node)))=0A= ! (define-key = crumbs-map [mode-line mouse-3]=0A= ! `(lambda () = (interactive) (Info-goto-node ,node)))=0A= ! crumbs-map)=0A= ! 'mouse-face 'mode-line-highlight=0A= ! 'help-echo "mouse-1, mouse-3: Go = to this node; mouse-2: Menu")))))=0A= ! (let ((nodetext (if (not (equal node "Top"))=0A= ! node=0A= ! (concat (format "(%s)"=0A= (if (stringp = Info-current-file)=0A= (file-name-nondirectory = Info-current-file)=0A= ;; Some legacy code can = still use a symbol.=0A= ! Info-current-file))=0A= ! node))))=0A= ! (setq text (concat text (if (equal node "Top") "" " > ") = (if node nodetext "...")))))=0A= ! (make-local-variable 'mode-line-format) ; Needed for Emacs 21+.=0A= ! (setq mode-line-format text))))=0A= ! =0A= ! (define-minor-mode Info-breadcrumbs-mode=0A= ! "Toggle the use of breadcrumbs in Info mode line.=0A= ! With arg, show breadcrumbs iff arg is positive."=0A= ! :group 'mode-line :group 'info=0A= ! (if (not Info-breadcrumbs-mode)=0A= ! (setq Info-breadcrumbs-depth-internal 0=0A= ! mode-line-format default-mode-line-format)=0A= ! (setq Info-breadcrumbs-depth-internal Info-breadcrumbs-depth)=0A= ! (Info-insert-breadcrumbs)))=0A= ! =0A= ! (defun Info-set-breadcrumbs-depth ()=0A= ! "Set current breadcrumbs depth to a value read from user."=0A= ! (interactive)=0A= ! (setq Info-breadcrumbs-depth-internal (read-number "New breadcrumbs = depth: "=0A= ! = Info-breadcrumbs-depth-internal))=0A= ! (Info-insert-breadcrumbs))=0A= =0A= (defun Info-fontify-node ()=0A= "Fontify the node."=0A= ***************=0A= *** 4278,4286 ****=0A= ((string-equal (downcase tag) "next") Info-next-link-keymap)=0A= ((string-equal (downcase tag) "up" ) Info-up-link-keymap))))))=0A= =0A= - (when (> Info-breadcrumbs-depth 0)=0A= - (Info-insert-breadcrumbs))=0A= - =0A= ;; Treat header line.=0A= (when Info-use-header-line=0A= (goto-char (point-min))=0A= --- 4327,4332 ----=0A= ***************=0A= *** 4307,4321 ****=0A= "%"=0A= ;; Preserve text properties on duplicated `%'.=0A= (lambda (s) (concat s s)) header))=0A= ! ;; Hide the part of the first line=0A= ! ;; that is in the header, if it is just part.=0A= ! (cond=0A= ! ((> Info-breadcrumbs-depth 0)=0A= ! (put-text-property (point-min) (1+ header-end) = 'invisible t))=0A= ! ((not (bobp))=0A= ;; Hide the punctuation at the end, too.=0A= (skip-chars-backward " \t,")=0A= ! (put-text-property (point) header-end 'invisible t))))))=0A= =0A= ;; Fontify titles=0A= (goto-char (point-min))=0A= --- 4353,4363 ----=0A= "%"=0A= ;; Preserve text properties on duplicated `%'.=0A= (lambda (s) (concat s s)) header))=0A= ! ;; Hide the part of the first line that is in the header, = if it is just part.=0A= ;; Hide the punctuation at the end, too.=0A= + (unless (bobp)=0A= (skip-chars-backward " \t,")=0A= ! (put-text-property (point) header-end 'invisible t)))))=0A= =0A= ;; Fontify titles=0A= (goto-char (point-min))=0A= =0A= Diff finished. Tue Apr 06 09:10:17 2010=0A= ------=_NextPart_000_00C4_01CAD576.59D21D80-- From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 25 14:28:55 2010 Received: (at 5809-done) by debbugs.gnu.org; 25 Apr 2010 18:28:55 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O66Za-0006by-Tw for submit@debbugs.gnu.org; Sun, 25 Apr 2010 14:28:55 -0400 Received: from pantheon-po25.its.yale.edu ([130.132.50.119]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O66ZY-0006br-EL for 5809-done@debbugs.gnu.org; Sun, 25 Apr 2010 14:28:53 -0400 Received: from furry (bordersgroupinc-gw.customer.alter.net [157.130.220.18] (may be forged)) (authenticated bits=0) by pantheon-po25.its.yale.edu (8.12.11.20060308/8.12.11) with ESMTP id o3PISjSY032752 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 25 Apr 2010 14:28:47 -0400 Received: by furry (Postfix, from userid 1000) id 44C11C055; Sun, 25 Apr 2010 14:28:44 -0400 (EDT) From: Chong Yidong To: Juri Linkov Subject: Re: bug#5809: 23.1.94; cross-reference by anchor yields in accurate position Date: Sun, 25 Apr 2010 14:28:44 -0400 Message-ID: <87fx2j8jz7.fsf@stupidchicken.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-YaleITSMailFilter: Version 1.2c (attachment(s) not renamed) X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: 5809-done Cc: 5809-done@debbugs.gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > Installed to the emacs-23 branch (with code for grey background > commented out). Thanks. From unknown Mon Aug 18 14:15:18 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 24 May 2010 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator