Package: emacs;
Reported by: Reuben Thomas <rrt <at> sc3d.org>
Date: Tue, 30 Oct 2012 13:27:04 UTC
Severity: normal
Found in version 24.1
Done: Agustin Martin <agustin.martin <at> hispalinux.es>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Agustin Martin <agustin.martin <at> hispalinux.es> Cc: tracker <at> debbugs.gnu.org Subject: bug#12768: closed (24.1; flyspell highlights words which ispell accepts) Date: Tue, 06 Nov 2012 17:52:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 6 Nov 2012 18:48:19 +0100 with message-id <20121106174819.GA16202 <at> agmartin.aq.upm.es> and subject line Re: bug#12768: 24.1; flyspell highlights words which ispell accepts has caused the debbugs.gnu.org bug report #12768, regarding 24.1; flyspell highlights words which ispell accepts to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 12768: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12768 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Reuben Thomas <rrt <at> sc3d.org> To: bug-gnu-emacs <at> gnu.org Subject: 24.1; flyspell highlights words which ispell accepts Date: Tue, 30 Oct 2012 13:23:12 +0000For example, "executable's" is highlighted by flyspell, but ispell-buffer ignores it. In GNU Emacs 24.1.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.12) of 2012-09-22 on batsu, modified by Debian Windowing system distributor `The X.Org Foundation', version 11.0.11300000 Configured using: `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.1/site-lisp:/usr/share/emacs/site-lisp' '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -O2' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'' 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: en_GB.UTF-8 value of $LC_NUMERIC: en_GB.UTF-8 value of $LC_TIME: en_GB.UTF-8 value of $LANG: en_GB.UTF-8 value of $XMODIFIERS: @im=none locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Lua Minor modes in effect: TeX-PDF-mode: t flyspell-mode: t recentf-mode: t show-paren-mode: t server-mode: t savehist-mode: t minibuffer-electric-default-mode: t iswitchb-mode: t icomplete-mode: t global-auto-revert-mode: t desktop-save-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: c o u n t <backspace> t e r - i n t u i i t i <backspace> <backspace> <backspace> t i v e l y SPC a n d SPC a n o <backspace> n o y i n g l y . M-q <return> <return> I S-SPC s u m p a <backspace> <backspace> <backspace> <backspace> y m p a t h i s e SPC w i t h SPC t h e SPC <backspace> <backspace> i s SPC f r o m SPC a SPC p r o g r a m m <C-backspace> <C-backspace> t h e SPC p o i n t SPC o f SPC v i e w SPC o f SPC t h e SPC u n d e r l y i n g SPC c o d e C-q ' s SPC s t r u c t u r e , SPC b u t SPC i t ' s <backspace> <backspace> C-q ' s SPC o d d SPC SPC <backspace> f r o m SPC a SPC u i s <backspace> <backspace> s <backspace> s e r - i n t e r a c e SPC <backspace> <backspace> <backspace> <backspace> f a c e SPC p o i o n t SPC o f <backspace> <backspace> <backspace> <backspace> <backspace> <backspace> n t SPC o f SPC v i e w . M-q C-c C-c y e s <return> M-x C-g <help-echo> <down-mouse-1> <mouse-1> <double-down-mouse-1> <double-mouse-1> <down-mouse-1> <mouse-1> M-x r e p [ o r t <backspace> <backspace> <backspace> <backspace> r e t - <backspace> <backspace> <backspace> <backspace> o r t - b <backspace> e m , a c s <backspace> <backspace> <backspace> <backspace> a c s - b u f <return> <backspace> g <return> Recent messages: Checking 24 files in /usr/share/emacs/24.1/lisp/cedet... Checking 57 files in /usr/share/emacs/24.1/lisp/calendar... Checking 87 files in /usr/share/emacs/24.1/lisp/calc... Checking 65 files in /usr/share/emacs/24.1/lisp/obsolete... Checking 1 files in /usr/share/emacs/24.1/leim... Checking for load-path shadows...done Auto-saving...done Sending... Sending via mail... Sending...done Quit Load-path shadows: /home/rrt/local/share/emacs/site-lisp/browse-kill-ring hides /usr/share/emacs24/site-lisp/emacs-goodies-el/browse-kill-ring /home/rrt/local/share/emacs/site-lisp/dict hides /usr/share/emacs24/site-lisp/emacs-goodies-el/dict /home/rrt/.emacs.d/elpa/dictionary-1.8.7/dictionary-init hides /usr/share/emacs24/site-lisp/dictionary-el/dictionary-init /home/rrt/.emacs.d/elpa/dictionary-1.8.7/dictionary hides /usr/share/emacs24/site-lisp/dictionary-el/dictionary /home/rrt/.emacs.d/elpa/dictionary-1.8.7/link hides /usr/share/emacs24/site-lisp/dictionary-el/link /home/rrt/.emacs.d/elpa/dictionary-1.8.7/connection hides /usr/share/emacs24/site-lisp/dictionary-el/connection /usr/share/emacs/site-lisp/golang-mode/go-mode-load hides /usr/share/emacs/24.1/site-lisp/golang-mode/go-mode-load /usr/share/emacs/site-lisp/golang-mode/go-mode hides /usr/share/emacs/24.1/site-lisp/golang-mode/go-mode /usr/share/emacs/24.1/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode /usr/share/emacs/24.1/site-lisp/cdargs hides /usr/share/emacs/site-lisp/cdargs /usr/share/emacs/site-lisp/rst hides /usr/share/emacs/24.1/lisp/textmodes/rst /usr/share/emacs24/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/24.1/lisp/textmodes/ispell /usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/24.1/lisp/textmodes/flyspell Features: (newcomment shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils find-func help-mode view etags preview prv-emacs info reporter tex-buf font-latex latex tex-style tex noutline outline sh-script executable multi-isearch make-mode cperl-mode cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs autoconf autoconf-mode flymake compile vc-git face-remap flyspell smart-quotes lua-mode comint ansi-color ring auto-dictionary-autoloads c-eldoc-autoloads dictionary-autoloads diff-git-autoloads dired-isearch-autoloads full-ack-autoloads guess-style-autoloads kill-ring-search-autoloads magit-autoloads mv-shell-autoloads tumble-autoloads http-post-simple-autoloads package tabulated-list completing-help recentf tree-widget wid-edit uniquify regexp-opt paren server savehist minibuf-eldef iswitchb icomplete autorevert desktop cus-start cus-load ropemacs pymacs ispell user-site-loaddefs advice advice-preload yasnippet help-fns derived edmacro kmacro easymenu assoc cl muse-autoloads go-mode-load emacs-goodies-el emacs-goodies-custom emacs-goodies-loaddefs easy-mmode preview-latex tex-site auto-loads time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar 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 minibuffer loaddefs button faces cus-face files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) -- http://rrt.sc3d.org/
[Message part 3 (message/rfc822, inline)]
From: Agustin Martin <agustin.martin <at> hispalinux.es> To: 12768-done <at> debbugs.gnu.org, rrt <at> sc3d.org Subject: Re: bug#12768: 24.1; flyspell highlights words which ispell accepts Date: Tue, 6 Nov 2012 18:48:19 +0100On Thu, Nov 01, 2012 at 04:44:01PM +0200, Eli Zaretskii wrote: > > Date: Thu, 1 Nov 2012 01:10:11 +0100 > > From: Agustin Martin <agustin.martin <at> hispalinux.es> > > Cc: agustin.martin <at> upm.es > > > > Really strange. With your steps I can even reproduce the problem with > > something as simple as > > > > dnl -- D > > > > If I add something before dnl I still get the problem. > > > > sdfdsfsdnl -- D > > > > IIf I either break the double dash (no double dashes at all) or the > > dnl or remove the "D" after the dashes problem disappear > > > > dfnl -- D > > dnl - - D > > dnl -- > > > > autotest-mode.el is a small file, but II do not see any hint about > > what is happening here. Seems to do something strange with double > > dashes associated with dnl, but I am absolutely clueless, help > > welcome. > > If you step through ispell-region, you will see that it goes bananas > because ispell-skip-region-alist has "--+" as part of it, which > matches the dashes between "dnl" and the text of the comment. What > ispell-region does is remove the dashes, and then _prepend_ "dnl" > (because it's a comment-start string). The result is that we send > something like "^dnl FOO" to the speller, and the character positions > get screwed up, because the characters between "dnl" and "FOO" were > removed. I have been dealing with this a bit more and seems I now I understand things better. (ispell-region) splits regions to spell in lines, and inside lines in portions separated by skip-regions, which are sent to ispell pipe. When inside a comment, the comment string is added as string prefix before sending to the ispell pipe (I guess to make ispell know that the string is part of a comment). However ispell understand this prefix in few modes and of course not in autoconf mode, where `dnl' is spell-checked as any other word (is the only mode I remember now where comment string is an alphabetic string). For other modes the comment string is just ignored by ispell for anything than knowing that string is inside a comment (but properly shifted), and things work with proper shifts. However, for autoconf mode `dnl -- D' dnl is checked first and later is `D' what is sent is `dnl D' (with a dnl prefix), where `dnl' is checked again messing up everything because ispell checks dnl where `D' position is tracked (and expected by ispell.el instead of `dnl'). I have committed a change (r110817) that simply does not prefix the strings when comment-start when in autoconf-mode (ispell does not support that prefix anyway). ispell still does not skip `dnl' as comment header and is shown as a misspelling, but for everything else seems to work. However, please test extensively. > Btw, WIBNI ispell.el had a debug option, which, if set, would collect > in a special buffer everything we send to the speller and its > responses. I find myself adding '(message "sent %s" strin)' > etc. every time I need to debug the communications between ispell.el > and the speller program. WDYT? I have also added a proof of concept for that (r110816), mostly intended to be enabled through dedicated wrapper functions that when called create the debug buffer and enable debugging messages sent through a common function. This is still very preliminary, with only `ispell-buffer-with-debug' using it, but provides some info and as problems get debugged can be extended. Suggestions are welcome, even about a complete re-design if really needed. -- Agustin
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.