From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.devel,gmane.emacs.pretest.bugs Subject: Re: 23.0.50; hexl-mode and auto-revert-mode incompatibilities Date: Tue, 22 Jan 2008 14:50:31 +0100 Message-ID: <4795F4A7.4070302@gmx.at> References: <8663xouegy.fsf@simias.hd.free.fr> <4794A050.3000902@gmx.at> <86wsq2txze.fsf@simias.hd.free.fr> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080803020003060106080107" X-Trace: ger.gmane.org 1201010372 24000 80.91.229.12 (22 Jan 2008 13:59:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 22 Jan 2008 13:59:32 +0000 (UTC) Cc: emacs-pretest-bug@gnu.org To: Simias Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jan 22 14:59:51 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JHJfE-0005QE-4T for ged-emacs-devel@m.gmane.org; Tue, 22 Jan 2008 14:59:44 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JHJeo-0004Bz-Dr for ged-emacs-devel@m.gmane.org; Tue, 22 Jan 2008 08:59:18 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JHJe4-0003VV-5r for emacs-devel@gnu.org; Tue, 22 Jan 2008 08:58:32 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JHJe2-0003UA-EM for emacs-devel@gnu.org; Tue, 22 Jan 2008 08:58:31 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JHJe2-0003U7-9f for emacs-devel@gnu.org; Tue, 22 Jan 2008 08:58:30 -0500 Original-Received: from fencepost.gnu.org ([140.186.70.10]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JHJe1-0007CQ-VU for emacs-devel@gnu.org; Tue, 22 Jan 2008 08:58:30 -0500 Original-Received: from mx10.gnu.org ([199.232.76.166]) by fencepost.gnu.org with esmtp (Exim 4.67) (envelope-from ) id 1JHJe1-0000XT-K3 for emacs-pretest-bug@gnu.org; Tue, 22 Jan 2008 08:58:29 -0500 Original-Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1JHJdy-0007BQ-Em for emacs-pretest-bug@gnu.org; Tue, 22 Jan 2008 08:58:29 -0500 Original-Received: from mail.gmx.net ([213.165.64.20]) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1JHJdx-0007A1-Ut for emacs-pretest-bug@gnu.org; Tue, 22 Jan 2008 08:58:26 -0500 Original-Received: (qmail invoked by alias); 22 Jan 2008 13:58:23 -0000 Original-Received: from N765P026.adsl.highway.telekom.at (EHLO [62.47.39.154]) [62.47.39.154] by mail.gmx.net (mp013) with SMTP; 22 Jan 2008 14:58:23 +0100 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX18TEeQSqrMTQZuDA6F272NT7PuTEQ6CWJfkmVhiON 48rtM4RFYeEGOM User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: de-DE, de, en-us, en In-Reply-To: <86wsq2txze.fsf@simias.hd.free.fr> X-Y-GMX-Trusted: 0 X-detected-kernel: by monty-python.gnu.org: Genre and OS details not recognized. X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:87298 gmane.emacs.pretest.bugs:20718 Archived-At: This is a multi-part message in MIME format. --------------080803020003060106080107 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit > It does for auto-revert-mode (everything seems to work fine), however > with auto-revert-tail-mode it's even more broken. When I append to a > file externally and both auto-revert-tail-mode and hexl-mode are > activated, first emacs tells me: > "Converting to hexl format discards undo info; ok? (y or n)", > and when I answer "yes" the buffer fills with gibberish. Sorry, my attempt was too simplistic. Please try again with the attached patch. I think something better is needed, but an important first step would be to test whether revert-buffer works correctly whenever the file changes. --------------080803020003060106080107 Content-Type: text/plain; name="hexl.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="hexl.patch" *** autorevert.el Thu Jan 10 19:25:18 2008 --- autorevert.el Tue Jan 22 14:24:16 2008 *************** *** 412,417 **** --- 412,419 ---- (not (memq major-mode global-auto-revert-ignore-modes))))) + (defvar auto-revert-tail-is-revert-buffer nil) + (defun auto-revert-handler () "Revert current buffer, if appropriate. This is an internal function used by Auto-Revert Mode." *************** *** 448,454 **** (= (window-point window) (point-max)) (push window eoblist))) 'no-mini t)) ! (if auto-revert-tail-mode (auto-revert-tail-handler size) ;; Bind buffer-read-only in case user has done C-x C-q, ;; so as not to forget that. This gives undesirable results --- 450,457 ---- (= (window-point window) (point-max)) (push window eoblist))) 'no-mini t)) ! (if (and auto-revert-tail-mode ! (not auto-revert-tail-is-revert-buffer)) (auto-revert-tail-handler size) ;; Bind buffer-read-only in case user has done C-x C-q, ;; so as not to forget that. This gives undesirable results *** hexl.el Thu Jan 10 19:25:24 2008 --- hexl.el Tue Jan 22 14:27:52 2008 *************** *** 136,141 **** --- 136,144 ---- (put 'hexl-mode 'mode-class 'special) + (defvar auto-revert-tail-is-revert-buffer) + (defvar hexl-revert nil) + ;;;###autoload (defun hexl-mode (&optional arg) "\\A mode for editing binary files in hex dump format. *************** *** 211,217 **** \\[describe-bindings] for advanced commands." (interactive "p") ! (unless (eq major-mode 'hexl-mode) (let ((modified (buffer-modified-p)) (inhibit-read-only t) (original-point (- (point) (point-min)))) --- 214,220 ---- \\[describe-bindings] for advanced commands." (interactive "p") ! (unless (and (eq major-mode 'hexl-mode) (not hexl-revert)) (let ((modified (buffer-modified-p)) (inhibit-read-only t) (original-point (- (point) (point-min)))) *************** *** 249,254 **** --- 252,259 ---- (setq hexl-mode-old-mode-name mode-name) (setq mode-name "Hexl") + (set (make-local-variable 'auto-revert-tail-is-revert-buffer) t) + (set (make-local-variable 'hexl-mode-old-isearch-search-fun-function) isearch-search-fun-function) (set (make-local-variable 'isearch-search-fun-function) *************** *** 322,328 **** (remove-hook 'change-major-mode-hook 'hexl-maybe-dehexlify-buffer t)) (defun hexl-after-revert-hook () ! (hexl-mode)) (defvar hexl-in-save-buffer nil) --- 327,334 ---- (remove-hook 'change-major-mode-hook 'hexl-maybe-dehexlify-buffer t)) (defun hexl-after-revert-hook () ! (let ((hexl-revert t)) ! (hexl-mode))) (defvar hexl-in-save-buffer nil) *************** *** 388,393 **** --- 394,401 ---- (or (bobp) (setq original-point (1+ original-point)))) (goto-char original-point))) + (setq auto-revert-tail-is-revert-buffer nil) + (remove-hook 'before-revert-hook 'hexl-before-revert-hook t) (remove-hook 'after-revert-hook 'hexl-after-revert-hook t) (remove-hook 'change-major-mode-hook 'hexl-maybe-dehexlify-buffer t) --------------080803020003060106080107 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel --------------080803020003060106080107--