GNU logs - #7899, boring messages


Message sent to owner <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#7899: 23.2.91; Unsatisfactory interaction between shell-mode-hook and comint-read-input-ring
Resent-From: Reuben Thomas <rrt@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-To: owner <at> debbugs.gnu.org
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 23 Jan 2011 19:06:01 +0000
Resent-Message-ID: <handler.7899.B.129580951611471 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 7899
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 7899 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.129580951611471
          (code B ref -1); Sun, 23 Jan 2011 19:06:01 +0000
Received: (at submit) by debbugs.gnu.org; 23 Jan 2011 19:05:16 +0000
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1Ph5FU-0002yw-6D
	for submit <at> debbugs.gnu.org; Sun, 23 Jan 2011 14:05:16 -0500
Received: from eggs.gnu.org ([140.186.70.92])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <rrt@HIDDEN>) id 1Ph5FQ-0002yk-KD
	for submit <at> debbugs.gnu.org; Sun, 23 Jan 2011 14:05:13 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <rrt@HIDDEN>) id 1Ph5N8-0006Rf-Tr
	for submit <at> debbugs.gnu.org; Sun, 23 Jan 2011 14:13:12 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED
	autolearn=unavailable version=3.3.1
Received: from lists.gnu.org ([199.232.76.165]:39609)
	by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <rrt@HIDDEN>)
	id 1Ph5N8-0006RU-GJ
	for submit <at> debbugs.gnu.org; Sun, 23 Jan 2011 14:13:10 -0500
Received: from [140.186.70.92] (port=53313 helo=eggs.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.43) id 1Ph5N7-0007H3-1D
	for bug-gnu-emacs@HIDDEN; Sun, 23 Jan 2011 14:13:10 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <rrt@HIDDEN>) id 1Ph5N5-0006Qp-4x
	for bug-gnu-emacs@HIDDEN; Sun, 23 Jan 2011 14:13:08 -0500
Received: from exprod7og121.obsmtp.com ([64.18.2.20]:34871)
	by eggs.gnu.org with smtp (Exim 4.71) (envelope-from <rrt@HIDDEN>)
	id 1Ph5N4-0006QW-Qc
	for bug-gnu-emacs@HIDDEN; Sun, 23 Jan 2011 14:13:07 -0500
Received: from source ([74.125.82.44]) (using TLSv1) by
	exprod7ob121.postini.com ([64.18.6.12]) with SMTP
	ID DSNKTTx9v0y9unN+FJBM4bGjL7vkCJ6HR0Q4@HIDDEN;
	Sun, 23 Jan 2011 11:13:06 PST
Received: by wwa36 with SMTP id 36so4217652wwa.13
	for <bug-gnu-emacs@HIDDEN>; Sun, 23 Jan 2011 11:13:02 -0800 (PST)
Received: by 10.216.160.1 with SMTP id t1mr1578011wek.2.1295809967919;
	Sun, 23 Jan 2011 11:12:47 -0800 (PST)
Received: from canta (87-194-87-241.bethere.co.uk [87.194.87.241])
	by mx.google.com with ESMTPS id i80sm6154431wej.28.2011.01.23.11.12.46
	(version=TLSv1/SSLv3 cipher=RC4-MD5);
	Sun, 23 Jan 2011 11:12:47 -0800 (PST)
From: Reuben Thomas <rrt@HIDDEN>
Date: Sun, 23 Jan 2011 19:12:45 +0000
Message-ID: <87y66b3042.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older,
	4)
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2)
X-Spam-Score: -6.0 (------)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -6.0 (------)

shell-mode runs comint-read-input-ring. This is in a way unfortunate,
since this means that if you want to change the parameters of
comint-input-ring in shell-mode-hook, then you=E2=80=99re already too late.

I have the following in my .emacs:

(add-hook 'shell-mode-hook
          (lambda ()
            (let ((n (getenv "HISTSIZE")))
              (if n (progn (setq comint-input-ring-size (string-to-number n=
))
                           (comint-read-input-ring t))))))

This is not appropriate for comint-mode-hook, since HISTSIZE is
shell-specific (really, it=E2=80=99s bash-specific, so I should be testing =
that
I=E2=80=99m running bash). But now I have to run comint-read-input-ring aga=
in.

Perhaps shell-mode should instead append comint-read-input-ring to
shell-mode-hook if it=E2=80=99s not already there, or some such malarky?

There is one further thing that is puzzling me about the situation: I
have quite a large ~/.bash_history (about 200,000 lines). When I ran
shell-mode without first setting comint-input-ring-size correctly, it
was truncated to 500 lines when I killed the shell-mode buffer (as I
would expect). However, after setting comint-input-ring-size to HISTSIZE
(which is 400,000), ~/.bash_history was no longer translated _even
though, as I was not yet running comint-read-input-ring in my shell-mode
hook, only 500 entries were being read_. This seems to contradict the
docstring of comint-write-input-ring, which says that it overwrites
comint-input-ring-file-name if comint-input-ring is non-empty. (However,
it is correct behavior for my shell: I have set shopt histappend. But
this is surely a coincidence, as bash will update the history file
before Emacs, so Emacs should =E2=80=9Cwin=E2=80=9D, right?)


In GNU Emacs 23.2.91.4 (i686-pc-linux-gnu, GTK+ Version 2.22.0)
 of 2011-01-13 on canta
Windowing system distributor `The X.Org Foundation', version 11.0.10900000
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: en_GB.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Shell

Minor modes in effect:
  shell-dirtrack-mode: t
  recentf-mode: t
  show-paren-mode: t
  savehist-mode: t
  minibuffer-electric-default-mode: t
  iswitchb-mode: t
  icomplete-mode: t
  global-whitespace-mode: t
  global-auto-revert-mode: t
  desktop-save-mode: t
  yas/global-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-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-x s h e l l <return> C-h v c o m i n t - i n p u=20
t - r i n g <return> M-> M-< M-< C-x k <return> a M-p=20
M-p M-p M-p M-p M-p M-p M-p M-p M-p M-p M-n M-n M-n=20
M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n=20
M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n=20
M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n M-n=20
M-n M-n M-n M-n M-n M-n M-n <M-backspace> <M-backspace>=20
<return> . / M-p M-p M-p M-p M-p M-p M-p M-p M-p M-p=20
M-p M-p M-p M-p M-p C-a C-k <return> <return> M-x r=20
e p o r t - e m a c s - b u g <return>

Recent messages:
History item: 897
History item: 900
History item: 912
History item: 913
History item: 1202
History item: 1203
History item: 1206
History item: 1399
History item: 1400
History item: 1404

Load-path shadows:
/home/rrt/.emacs.d/elpa/ruby-mode-1.1/ruby-mode hides /usr/share/emacs-snap=
shot/site-lisp/ruby1.8-elisp/ruby-mode
/home/rrt/local/share/emacs/site-lisp/popup hides /usr/local/share/emacs/23=
.2.91/site-lisp/auto-complete/popup
/home/rrt/local/share/emacs/site-lisp/fuzzy hides /usr/local/share/emacs/23=
.2.91/site-lisp/auto-complete/fuzzy
/home/rrt/.emacs.d/elpa/css-mode-1.0/css-mode hides /usr/local/share/emacs/=
23.2.91/site-lisp/css-mode/css-mode
/home/rrt/.emacs.d/elpa/dictionary-1.8.7/link hides /usr/local/share/emacs/=
23.2.91/site-lisp/dictionary-el/link
/home/rrt/.emacs.d/elpa/dictionary-1.8.7/connection hides /usr/local/share/=
emacs/23.2.91/site-lisp/dictionary-el/connection
/home/rrt/.emacs.d/elpa/dictionary-1.8.7/dictionary-init hides /usr/local/s=
hare/emacs/23.2.91/site-lisp/dictionary-el/dictionary-init
/home/rrt/.emacs.d/elpa/dictionary-1.8.7/dictionary hides /usr/local/share/=
emacs/23.2.91/site-lisp/dictionary-el/dictionary
/home/rrt/.emacs.d/elpa/css-mode-1.0/css-mode hides /usr/local/share/emacs/=
23.2.91/lisp/textmodes/css-mode
/home/rrt/.emacs.d/elpa/ruby-mode-1.1/ruby-mode hides /usr/local/share/emac=
s/23.2.91/lisp/progmodes/ruby-mode
/home/rrt/.emacs.d/elpa/css-mode-1.0/css-mode hides /usr/share/emacs/site-l=
isp/css-mode/css-mode
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-info hides /usr/share/e=
macs/site-lisp/auctex/tex-info
/usr/local/share/emacs/23.2.91/site-lisp/auctex/context-nl hides /usr/share=
/emacs/site-lisp/auctex/context-nl
/usr/local/share/emacs/23.2.91/site-lisp/auctex/context-en hides /usr/share=
/emacs/site-lisp/auctex/context-en
/usr/local/share/emacs/23.2.91/site-lisp/auctex/latex hides /usr/share/emac=
s/site-lisp/auctex/latex
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-mik hides /usr/share/em=
acs/site-lisp/auctex/tex-mik
/usr/local/share/emacs/23.2.91/site-lisp/dictionary-el/lpath hides /usr/sha=
re/emacs/site-lisp/auctex/lpath
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-buf hides /usr/share/em=
acs/site-lisp/auctex/tex-buf
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-jp hides /usr/share/ema=
cs/site-lisp/auctex/tex-jp
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-bar hides /usr/share/em=
acs/site-lisp/auctex/tex-bar
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex hides /usr/share/emacs/=
site-lisp/auctex/tex
/usr/local/share/emacs/23.2.91/site-lisp/auctex/multi-prompt hides /usr/sha=
re/emacs/site-lisp/auctex/multi-prompt
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-fptex hides /usr/share/=
emacs/site-lisp/auctex/tex-fptex
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-font hides /usr/share/e=
macs/site-lisp/auctex/tex-font
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-fold hides /usr/share/e=
macs/site-lisp/auctex/tex-fold
/usr/local/share/emacs/23.2.91/site-lisp/auctex/texmathp hides /usr/share/e=
macs/site-lisp/auctex/texmathp
/usr/local/share/emacs/23.2.91/site-lisp/auctex/context hides /usr/share/em=
acs/site-lisp/auctex/context
/usr/local/share/emacs/23.2.91/site-lisp/auctex/font-latex hides /usr/share=
/emacs/site-lisp/auctex/font-latex
/usr/local/share/emacs/23.2.91/site-lisp/auctex/bib-cite hides /usr/share/e=
macs/site-lisp/auctex/bib-cite
/usr/local/share/emacs/23.2.91/site-lisp/auctex/toolbar-x hides /usr/share/=
emacs/site-lisp/auctex/toolbar-x
/usr/local/share/emacs/23.2.91/site-lisp/auctex/tex-style hides /usr/share/=
emacs/site-lisp/auctex/tex-style

Features:
(shadow sort mail-extr message sendmail ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
time-date mm-util mail-prsvr gmm-utils mailheader canlock sha1 hex-util
hashcash mail-utils emacsbug vc-git pp help-mode view ansi-color shell
jka-compr info face-remap filladapt flyspell completing-help recentf
tree-widget wid-edit uniquify paren savehist minibuf-eldef iswitchb
icomplete whitespace autorevert time cus-start cus-load desktop server
php-mode etags cc-langs cc-mode cc-fonts cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs speedbar sb-image ezimage dframe
lua-mode regexp-opt comint ring ropemacs pymacs etags-update
smart-quotes ispell auto-dictionary-autoloads css-mode-autoloads
dictionary-autoloads diff-git-autoloads dired-isearch-autoloads
full-ack-autoloads guess-style-autoloads http-post-simple-autoloads
js2-mode-autoloads magit-autoloads mv-shell-autoloads
ruby-mode-autoloads package reporter advice advice-preload yasnippet
help-fns derived edmacro kmacro easymenu assoc cl cl-19 muse-autoloads
emacs-goodies-el emacs-goodies-custom emacs-goodies-loaddefs easy-mmode
bbdb-autoloads preview-latex tex-site auto-loads tooltip ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd font-setting 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 dbusbind system-font-setting font-render-setting
gtk x-toolkit x multi-tty emacs)

--=20
http://rrt.sc3d.org/




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.427 (Entity 5.427)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Reuben Thomas <rrt@HIDDEN>
Subject: bug#7899: Acknowledgement (23.2.91; Unsatisfactory interaction
 between shell-mode-hook and comint-read-input-ring)
Message-ID: <handler.7899.B.129580951611471.ack <at> debbugs.gnu.org>
References: <87y66b3042.fsf@HIDDEN>
X-Gnu-PR-Message: ack 7899
X-Gnu-PR-Package: emacs
Reply-To: 7899 <at> debbugs.gnu.org
Date: Sun, 23 Jan 2011 19:06:02 +0000

Thank you for filing a new bug report with GNU.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 7899 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
7899: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D7899
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#7899: Unsatisfactory interaction between shell-mode-hook and comint-read-input-ring
References: <87y66b3042.fsf@HIDDEN>
In-Reply-To: <87y66b3042.fsf@HIDDEN>
Resent-From: Pete Beardmore <pete.beardmore@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 27 May 2013 07:46:01 +0000
Resent-Message-ID: <handler.7899.B7899.136964074918851 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 7899
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 7899 <at> debbugs.gnu.org
Received: via spool by 7899-submit <at> debbugs.gnu.org id=B7899.136964074918851
          (code B ref 7899); Mon, 27 May 2013 07:46:01 +0000
Received: (at 7899) by debbugs.gnu.org; 27 May 2013 07:45:49 +0000
Received: from localhost ([127.0.0.1]:36106 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1Ugs7o-0004tz-2B
	for submit <at> debbugs.gnu.org; Mon, 27 May 2013 03:45:48 -0400
Received: from blu0-omc1-s5.blu0.hotmail.com ([65.55.116.16]:6638)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <pete.beardmore@HIDDEN>) id 1Ugs7l-0004tf-1z
	for 7899 <at> debbugs.gnu.org; Mon, 27 May 2013 03:45:46 -0400
Received: from BLU0-SMTP204 ([65.55.116.9]) by blu0-omc1-s5.blu0.hotmail.com
	with Microsoft SMTPSVC(6.0.3790.4675); 
	Mon, 27 May 2013 00:44:28 -0700
X-EIP: [Q0gD7MG1Rr70IcrmRT9FBCL16U35x414]
X-Originating-Email: [pete.beardmore@HIDDEN]
Message-ID: <BLU0-SMTP2042915E4D3C655AD0C80F68A960@HIDDEN>
Received: from elservo.lemondedelabarbe ([93.97.95.47]) by
	BLU0-SMTP204.phx.gbl over TLS secured channel with Microsoft
	SMTPSVC(6.0.3790.4675); Mon, 27 May 2013 00:44:26 -0700
Received: by elservo.lemondedelabarbe (Postfix, from userid 80)
	id A6582140C7A; Mon, 27 May 2013 08:44:25 +0100 (BST)
Received: from elbeardo.lemondedelabarbe (elbeardo.lemondedelabarbe
	[10.0.0.5]) by elservo.lemondedelabarbe (Horde Framework) with HTTP;
	Mon, 27 May 2013 08:44:25 +0100
Date: Mon, 27 May 2013 08:44:25 +0100
From: Pete Beardmore <pete.beardmore@HIDDEN>
User-Agent: Internet Messaging Program (IMP) H5 (6.0.4)
Content-Type: multipart/mixed; boundary="=_1u-lG5sBzdOGXxkkad3Pjw1"
MIME-Version: 1.0
X-OriginalArrivalTime: 27 May 2013 07:44:27.0025 (UTC)
	FILETIME=[03861010:01CE5AAE]
X-Spam-Score: 0.8 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -1.9 (-)

--=_1u-lG5sBzdOGXxkkad3Pjw1
Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=Yes
Content-Disposition: inline

[patches against bzr master attached (hopefully!)]

hi,

i believe this is a bug in comint-read-input-ring. shell-mode sets a  
buffer-local version of comint-read-input-size which is effectively  
ignored due to comint-read-input-ring's use of '(with-temp-buffer ...'  
. i've lost ~40000 line bash history on more than one occasion over  
the last several years and am elated to have finally pinned the  
problem on something

(very loosely) related to this issue is the question of why the  
default of 'comint-input-history-ignore' is set to anything at all?  
it's currently "^#", and therefore without having pro-actively made  
any changes to their emacs setup, a user's shell history (for  
instance) doesn't emerge unscathed from a trip through comint if it  
contains comments. if modifying this default touches too many other  
comint uses, perhaps an override in shell-mode.el?

cheers,
Pete

--=_1u-lG5sBzdOGXxkkad3Pjw1
Content-Type: text/x-patch; charset="us-ascii";
	name*0="0001.comint_.ensure.buffer.local.comint-input-ring-read-size.variabl";
	name*1="e.is.visible.throughout.input-read-ring.diff"
Content-Disposition: attachment; filename*0=
	"0001.comint_.ensure.buffer.local.comint-input-ring-read-size.var";
	filename*1="iable.is.visible.throughout.input-read-ring.diff"; size=1582

#------------------------------------------------------------
#revno: 112736
#committer: Pete Beardmore <pete.beardmore@HIDDEN>
#branch nick: bzr
#timestamp: Mon 2013-05-27 07:53:30 +0100
#message:
#  comint: ensure buffer local comint-input-ring-read-size variable is visible throughout input-read-ring logic
=== modified file 'lisp/comint.el'
--- lisp/comint.el	2013-05-25 02:40:33 +0000
+++ lisp/comint.el	2013-05-27 06:53:30 +0000
@@ -938,6 +938,7 @@
 		;; to huge numbers.  Don't allocate a huge ring right
 		;; away; there might not be that much history.
 		(ring-size (min 1500 comint-input-ring-size))
+		(ring-size-max (max 1500 comint-input-ring-size))
 		(ring (make-ring ring-size)))
 	   (with-temp-buffer
              (insert-file-contents file)
@@ -945,7 +946,7 @@
              ;; Watch for those date stamps in history files!
              (goto-char (point-max))
              (let (start end history)
-               (while (and (< count comint-input-ring-size)
+               (while (and (< count ring-size-max)
                            (re-search-backward comint-input-ring-separator
                                                nil t)
                            (setq end (match-beginning 0)))
@@ -963,7 +964,7 @@
 				(not (string-equal (ring-ref ring 0)
 						   history))))
 		   (when (= count ring-size)
-		     (ring-extend ring (min (- comint-input-ring-size ring-size)
+		     (ring-extend ring (min (- ring-size-max ring-size)
 					    ring-size))
 		     (setq ring-size (ring-size ring)))
 		   (ring-insert-at-beginning ring history)


--=_1u-lG5sBzdOGXxkkad3Pjw1
Content-Type: text/x-patch; charset="us-ascii";
	name*0="0001.comint_.don't.strip.anything.by.default.on.comint-input-ring-re";
	name*1="ad.diff"
Content-Disposition: attachment; filename*0=
	"0001.comint_.don't.strip.anything.by.default.on.comint-input-rin";
	filename*1="g-read.diff"; size=715

#------------------------------------------------------------
#revno: 112737
#committer: Pete Beardmore <pete.beardmore@HIDDEN>
#branch nick: bzr
#timestamp: Mon 2013-05-27 08:12:04 +0100
#message:
#  comint: don't strip anything by default on comint-input-ring-read
=== modified file 'lisp/comint.el'
--- lisp/comint.el	2013-05-27 06:53:30 +0000
+++ lisp/comint.el	2013-05-27 07:12:04 +0000
@@ -318,7 +318,7 @@
 (defvar comint-input-ring-separator "\n"
   "Separator between commands in the history file.")
 
-(defvar comint-input-history-ignore "^#"
+(defvar comint-input-history-ignore ""
   "Regexp for history entries that should be ignored when Comint initializes.")
 
 (defcustom comint-process-echoes nil


--=_1u-lG5sBzdOGXxkkad3Pjw1--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#7899: Unsatisfactory interaction between shell-mode-hook and comint-read-input-ring
Resent-From: Pete Beardmore <pete.beardmore@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 30 May 2013 12:58:03 +0000
Resent-Message-ID: <handler.7899.B7899.136991862419970 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 7899
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 7899 <at> debbugs.gnu.org
Received: via spool by 7899-submit <at> debbugs.gnu.org id=B7899.136991862419970
          (code B ref 7899); Thu, 30 May 2013 12:58:03 +0000
Received: (at 7899) by debbugs.gnu.org; 30 May 2013 12:57:04 +0000
Received: from localhost ([127.0.0.1]:41784 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1Ui2Pa-0005Bj-Hw
	for submit <at> debbugs.gnu.org; Thu, 30 May 2013 08:57:03 -0400
Received: from blu0-omc1-s31.blu0.hotmail.com ([65.55.116.42]:34541)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <pete.beardmore@HIDDEN>) id 1Ui2PL-0005Al-7U
	for 7899 <at> debbugs.gnu.org; Thu, 30 May 2013 08:56:51 -0400
Received: from BLU0-SMTP7 ([65.55.116.7]) by blu0-omc1-s31.blu0.hotmail.com
	with Microsoft SMTPSVC(6.0.3790.4675); 
	Thu, 30 May 2013 05:55:06 -0700
X-EIP: [xhDw84lSxC46ruYMRCgtDHoi2x1NJLz/]
X-Originating-Email: [pete.beardmore@HIDDEN]
Message-ID: <BLU0-SMTP71DE25A0FB078FA2892058A910@HIDDEN>
Received: from elservo.lemondedelabarbe ([93.97.95.47]) by BLU0-SMTP7.phx.gbl
	over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); 
	Thu, 30 May 2013 05:55:05 -0700
Received: by elservo.lemondedelabarbe (Postfix, from userid 80)
	id 35BAB140C6D; Thu, 30 May 2013 13:55:04 +0100 (BST)
Received: from elbeardo.lemondedelabarbe (elbeardo.lemondedelabarbe
	[10.0.0.5]) by elservo.lemondedelabarbe (Horde Framework) with HTTP;
	Thu, 30 May 2013 13:55:03 +0100
Date: Thu, 30 May 2013 13:55:03 +0100
From: Pete Beardmore <pete.beardmore@HIDDEN>
References: <87y66b3042.fsf@HIDDEN>
	<BLU0-SMTP2042915E4D3C655AD0C80F68A960@HIDDEN>
In-Reply-To: <BLU0-SMTP2042915E4D3C655AD0C80F68A960@HIDDEN>
User-Agent: Internet Messaging Program (IMP) H5 (6.0.4)
Content-Type: multipart/mixed; boundary="=_vtE9f0MKYXtD35YXUxzlpw4"
MIME-Version: 1.0
X-OriginalArrivalTime: 30 May 2013 12:55:05.0784 (UTC)
	FILETIME=[E8543B80:01CE5D34]
X-Spam-Score: 0.8 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -1.9 (-)

--=_vtE9f0MKYXtD35YXUxzlpw4
Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=Yes
Content-Disposition: inline

Quoting Pete Beardmore <pete.beardmore@HIDDEN>:

> [patches against bzr master attached (hopefully!)]
>
> hi,
>
> i believe this is a bug in comint-read-input-ring. shell-mode sets a  
> buffer-local version of comint-read-input-size which is effectively  
> ignored due to comint-read-input-ring's use of '(with-temp-buffer  
> ...' . i've lost ~40000 line bash history on more than one occasion  
> over the last several years and am elated to have finally pinned the  
> problem on something
>
> (very loosely) related to this issue is the question of why the  
> default of 'comint-input-history-ignore' is set to anything at all?  
> it's currently "^#", and therefore without having pro-actively made  
> any changes to their emacs setup, a user's shell history (for  
> instance) doesn't emerge unscathed from a trip through comint if it  
> contains comments. if modifying this default touches too many other  
> comint uses, perhaps an override in shell-mode.el?
>
> cheers,
> Pete

[patches attached superseed previous patches]

hello,

patch 1:
i've extended the original fix for ignoring buffer-local variables to  
incorporate 'comint-input-ring-separator',  
'comint-input-history-ignore' and 'comint-input-ignoredups' vars which  
suffered from the same issue

patch 2:
as before, but note that this request to change the default  
'comint-input-history-ignore' from '^#' to '' exposed another bug in  
the 'comint-read-input-ring' code. see patch 3

patch 3:
if 'comint-input-history-ignore' is set to "" (not 'nil' as we're  
using string-match), string-match will always return 0 ..and as this  
isn't nil, all potential items are dropped as they match the ignore  
string. i'll leave 'patch 2' as a request, but the fix for this bug is  
a necessity i think as there's nothing stopping users setting ignore  
to "" as it stands, and that causes issues

patch 4, the ignore-dupes functionality didn't work at all*. the  
comparison of the current item (to be placed into the ring) was being  
made against (ring-ref ring 0) ..which is static, and not the last  
item we added as is needed here. the docs on  
'ring-insert-at-beginning'/'ring-insert'/'ring-ref' would confuse  
anyone on first glance (in defense of whoever slipped here initially)

*it does 'work' if the only dupes in the file are all adjacent and  
equal to the last item

cheers,
Pete

ps. there's still a nasty mix of tabs/space formatting in  
'comint-read-input-ring'. i harmonised only the block i touched

--=_vtE9f0MKYXtD35YXUxzlpw4
Content-Type: text/x-patch; charset="us-ascii";
	name*0="0001.comint_.ensure.buffer.local.comint-input-ring-_.variables.are.v";
	name*1="isible.through.input-read-ring.logic.diff"
Content-Disposition: attachment; filename*0=
	"0001.comint_.ensure.buffer.local.comint-input-ring-_.variables.a";
	filename*1="re.visible.through.input-read-ring.logic.diff"; size=3199

#------------------------------------------------------------
#revno: 112736
#committer: Pete Beardmore <pete.beardmore@HIDDEN>
#branch nick: bzr
#timestamp: Thu 2013-05-30 13:17:39 +0100
#message:
#  comint: ensure buffer local comint-input-ring-* variables are visible through input-read-ring logic
=== modified file 'lisp/comint.el'
--- lisp/comint.el	2013-05-25 02:40:33 +0000
+++ lisp/comint.el	2013-05-30 12:17:39 +0000
@@ -938,33 +938,33 @@
 		;; to huge numbers.  Don't allocate a huge ring right
 		;; away; there might not be that much history.
 		(ring-size (min 1500 comint-input-ring-size))
-		(ring (make-ring ring-size)))
-	   (with-temp-buffer
-             (insert-file-contents file)
-             ;; Save restriction in case file is already visited...
-             ;; Watch for those date stamps in history files!
-             (goto-char (point-max))
-             (let (start end history)
-               (while (and (< count comint-input-ring-size)
-                           (re-search-backward comint-input-ring-separator
-                                               nil t)
-                           (setq end (match-beginning 0)))
-                 (setq start
-                       (if (re-search-backward comint-input-ring-separator
-                                               nil t)
-                           (match-end 0)
-                         (point-min)))
-                 (setq history (buffer-substring start end))
-                 (goto-char start)
-                 (when (and (not (string-match comint-input-history-ignore
-					       history))
-			    (or (null comint-input-ignoredups)
-				(ring-empty-p ring)
-				(not (string-equal (ring-ref ring 0)
-						   history))))
+		(ring-size-max (max 1500 comint-input-ring-size))
+		(ring (make-ring ring-size))
+    (ring-separator comint-input-ring-separator)
+    (ignore comint-input-history-ignore)
+    (ignoredups comint-input-ignoredups))
+    (with-temp-buffer
+       (insert-file-contents file)
+       ;; Save restriction in case file is already visited...
+       ;; Watch for those date stamps in history files!
+       (goto-char (point-max))
+       (let (start end history)
+         (while (and (< count ring-size-max)
+                     (re-search-backward ring-separator nil t)
+                     (setq end (match-beginning 0)))
+           (setq start
+                 (if (re-search-backward ring-separator nil t)
+                     (match-end 0)
+                   (point-min)))
+           (setq history (buffer-substring start end))
+           (goto-char start)
+           (when (and (not (string-match ignore history))
+                      (or (null ignoredups)
+                          (ring-empty-p ring)
+                          (not (string-equal (ring-ref ring 0) 
+                                             history))))
 		   (when (= count ring-size)
-		     (ring-extend ring (min (- comint-input-ring-size ring-size)
-					    ring-size))
+		     (ring-extend ring (min (- ring-size-max ring-size) ring-size))
 		     (setq ring-size (ring-size ring)))
 		   (ring-insert-at-beginning ring history)
 		   (setq count (1+ count))))))


--=_vtE9f0MKYXtD35YXUxzlpw4
Content-Type: text/x-patch; charset="us-ascii";
	name*0="0002.comint_.don't.strip.anything.by.default.on.comint-input-ring-re";
	name*1="ad.diff"
Content-Disposition: attachment; filename*0=
	"0002.comint_.don't.strip.anything.by.default.on.comint-input-rin";
	filename*1="g-read.diff"; size=715

#------------------------------------------------------------
#revno: 112737
#committer: Pete Beardmore <pete.beardmore@HIDDEN>
#branch nick: bzr
#timestamp: Thu 2013-05-30 13:20:40 +0100
#message:
#  comint: don't strip anything by default on comint-input-ring-read
=== modified file 'lisp/comint.el'
--- lisp/comint.el	2013-05-30 12:17:39 +0000
+++ lisp/comint.el	2013-05-30 12:20:40 +0000
@@ -318,7 +318,7 @@
 (defvar comint-input-ring-separator "\n"
   "Separator between commands in the history file.")
 
-(defvar comint-input-history-ignore "^#"
+(defvar comint-input-history-ignore ""
   "Regexp for history entries that should be ignored when Comint initializes.")
 
 (defcustom comint-process-echoes nil


--=_vtE9f0MKYXtD35YXUxzlpw4
Content-Type: text/x-patch; charset="us-ascii";
	name="0003.comint_.don't.match.an.empty.ignore.string.diff"
Content-Disposition: attachment;
	filename="0003.comint_.don't.match.an.empty.ignore.string.diff"; size=840

#------------------------------------------------------------
#revno: 112738
#committer: Pete Beardmore <pete.beardmore@HIDDEN>
#branch nick: bzr
#timestamp: Thu 2013-05-30 13:29:26 +0100
#message:
#  comint: don't match an empty ignore string
=== modified file 'lisp/comint.el'
--- lisp/comint.el	2013-05-30 12:20:40 +0000
+++ lisp/comint.el	2013-05-30 12:29:26 +0000
@@ -958,7 +958,8 @@
                    (point-min)))
            (setq history (buffer-substring start end))
            (goto-char start)
-           (when (and (not (string-match ignore history))
+           (when (and (or (= (length ignore) 0)
+                          (not (string-match ignore history)))
                       (or (null ignoredups)
                           (ring-empty-p ring)
                           (not (string-equal (ring-ref ring 0) 


--=_vtE9f0MKYXtD35YXUxzlpw4
Content-Type: text/x-patch; charset="us-ascii";
	name="0004.comint_.fix.ignore-dupe.functionality.diff"
Content-Disposition: attachment;
	filename="0004.comint_.fix.ignore-dupe.functionality.diff"; size=841

#------------------------------------------------------------
#revno: 112739
#committer: Pete Beardmore <pete.beardmore@HIDDEN>
#branch nick: bzr
#timestamp: Thu 2013-05-30 13:31:52 +0100
#message:
#  comint: fix ignore-dupe functionality
=== modified file 'lisp/comint.el'
--- lisp/comint.el	2013-05-30 12:29:26 +0000
+++ lisp/comint.el	2013-05-30 12:31:52 +0000
@@ -962,7 +962,7 @@
                           (not (string-match ignore history)))
                       (or (null ignoredups)
                           (ring-empty-p ring)
-                          (not (string-equal (ring-ref ring 0) 
+                          (not (string-equal (ring-ref ring (1- count))
                                              history))))
 		   (when (= count ring-size)
 		     (ring-extend ring (min (- ring-size-max ring-size) ring-size))


--=_vtE9f0MKYXtD35YXUxzlpw4--





Last modified: Fri, 31 Oct 2014 17:00:04 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.