[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bug in diff-mode? (was: Re: comint-accumulate-marker)
From: |
Nick Roberts |
Subject: |
Bug in diff-mode? (was: Re: comint-accumulate-marker) |
Date: |
Wed, 19 Apr 2006 12:01:34 +1200 |
> > Incidentally your patch seems a bit mangled but I'm not sure why diff-mode
> > gets quite so confused e.g why it doesn't patch comint-restore-input and
> > comint-delete-input properly.
>
> It's applied against the CVS, not against my last version. Could that
> be the problem?
No, I knew that.
> Here it is again in case my mailer did mangle it.
Thanks. Its not mangled now. Using patch from the command line works now
but diff-apply-hunk doesn't patch the functions comint-restore-input and
comint-delete-input correctly. I think this must be a bug in diff-mode.
It might be caused by offsets when previous hunks were applied, although
I don't understand why there should be any offsets as the base version should
be the same (1.337). Perhaps it is an OS thing.
> Index: comint.el
> ===================================================================
> RCS file: /cvsroot/emacs/emacs/lisp/comint.el,v
> retrieving revision 1.337
> diff -w -b -c -c -r1.337 comint.el
> *** comint.el 27 Mar 2006 08:50:20 -0000 1.337
> --- comint.el 18 Apr 2006 23:29:21 -0000
> ***************
> *** 465,470 ****
> --- 465,471 ----
> (define-key map "\C-c\C-l" 'comint-dynamic-list-input-ring)
> (define-key map "\C-c\C-n" 'comint-next-prompt)
> (define-key map "\C-c\C-p" 'comint-previous-prompt)
> + (define-key map "\C-c\C-j" 'comint-restore-input)
> (define-key map "\C-c\C-d" 'comint-send-eof)
> (define-key map "\C-c\C-s" 'comint-write-output)
> (define-key map "\C-c." 'comint-insert-previous-argument)
> ***************
> *** 558,563 ****
> --- 559,567 ----
> "Non-nil if you are accumulating input lines to send as input together.
> The command \\[comint-accumulate] sets this.")
>
> + (defvar comint-stored-incomplete-input nil
> + "Stored input for history cycling.")
> +
> (put 'comint-replace-by-expanded-history 'menu-enable
> 'comint-input-autoexpand)
> (put 'comint-input-ring 'permanent-local t)
> (put 'comint-input-ring-index 'permanent-local t)
> ***************
> *** 638,643 ****
> --- 642,648 ----
> (make-local-variable 'comint-scroll-to-bottom-on-input)
> (make-local-variable 'comint-move-point-for-output)
> (make-local-variable 'comint-scroll-show-maximum-output)
> + (make-local-variable 'comint-stored-incomplete-input)
> ;; This makes it really work to keep point at the bottom.
> (make-local-variable 'scroll-conservatively)
> (setq scroll-conservatively 10000)
> ***************
> *** 1015,1020 ****
> --- 1020,1035 ----
> (t
> arg)))
>
> + (defun comint-restore-input ()
> + "Restore unfinished input."
> + (interactive)
> + (when comint-input-ring-index
> + (comint-delete-input)
> + (when (> (length comint-stored-incomplete-input) 0)
> + (insert comint-stored-incomplete-input)
> + (message "Input restored"))
> + (setq comint-input-ring-index nil)))
> +
> (defun comint-search-start (arg)
> "Index to start a directional search, starting at
> `comint-input-ring-index'."
> (if comint-input-ring-index
> ***************
> *** 1035,1043 ****
> arg)))
>
> (defun comint-previous-input (arg)
> ! "Cycle backwards through input history."
> (interactive "*p")
> ! (comint-previous-matching-input "." arg))
>
> (defun comint-next-input (arg)
> "Cycle forwards through input history."
> --- 1050,1067 ----
> arg)))
>
> (defun comint-previous-input (arg)
> ! "Cycle backwards through input history, saving input."
> (interactive "*p")
> ! (if (and comint-input-ring-index
> ! (or ;; leaving the "end" of the ring
> ! (and (< arg 0) ; going down
> ! (eq comint-input-ring-index 0))
> ! (and (> arg 0) ; going up
> ! (eq comint-input-ring-index
> ! (1- (ring-length comint-input-ring)))))
> ! comint-stored-incomplete-input)
> ! (comint-restore-input)
> ! (comint-previous-matching-input "." arg)))
>
> (defun comint-next-input (arg)
> "Cycle forwards through input history."
> ***************
> *** 1077,1082 ****
> --- 1101,1114 ----
> (if (string-match regexp (ring-ref comint-input-ring n))
> n)))
>
> + (defun comint-delete-input ()
> + "Delete all input between accumulation or process mark and point."
> + (delete-region
> + ;; Can't use kill-region as it sets this-command
> + (or (marker-position comint-accum-marker)
> + (process-mark (get-buffer-process (current-buffer))))
> + (point-max)))
> +
> (defun comint-previous-matching-input (regexp n)
> "Search backwards through input history for match for REGEXP.
> \(Previous history elements are earlier commands.)
> ***************
> *** 1088,1100 ****
> ;; Has a match been found?
> (if (null pos)
> (error "Not found")
> (setq comint-input-ring-index pos)
> (message "History item: %d" (1+ pos))
> ! (delete-region
> ! ;; Can't use kill-region as it sets this-command
> ! (or (marker-position comint-accum-marker)
> ! (process-mark (get-buffer-process (current-buffer))))
> ! (point))
> (insert (ring-ref comint-input-ring pos)))))
>
> (defun comint-next-matching-input (regexp n)
> --- 1120,1132 ----
> ;; Has a match been found?
> (if (null pos)
> (error "Not found")
> + ;; If leaving the edit line, save partial input
> + (if (null comint-input-ring-index) ;not yet on ring
> + (setq comint-stored-incomplete-input
> + (funcall comint-get-old-input)))
> (setq comint-input-ring-index pos)
> (message "History item: %d" (1+ pos))
> ! (comint-delete-input)
> (insert (ring-ref comint-input-ring pos)))))
>
> (defun comint-next-matching-input (regexp n)
>
--
Nick http://www.inet.net.nz/~nickrob
- Re: comint-accumulate-marker, (continued)
- Re: comint-accumulate-marker, Richard Stallman, 2006/04/18
- Re: comint-accumulate-marker, Richard Stallman, 2006/04/18
- Re: comint-accumulate-marker, JD Smith, 2006/04/18
- Re: comint-accumulate-marker, David Kastrup, 2006/04/18
- Re: comint-accumulate-marker, JD Smith, 2006/04/18
- Re: comint-accumulate-marker, Stuart D. Herring, 2006/04/18
- Re: comint-accumulate-marker, Nick Roberts, 2006/04/18
- Re: comint-accumulate-marker, JD Smith, 2006/04/18
- Re: comint-accumulate-marker, Nick Roberts, 2006/04/18
- Message not available
- Re: comint-accumulate-marker, Nick Roberts, 2006/04/18
- Message not available
- Bug in diff-mode? (was: Re: comint-accumulate-marker),
Nick Roberts <=
- Re: Bug in diff-mode? (was: Re: comint-accumulate-marker), Richard Stallman, 2006/04/19
- Re: comint-accumulate-marker, Richard Stallman, 2006/04/19
- Re: comint-accumulate-marker, David Kastrup, 2006/04/20
- Re: comint-accumulate-marker, Nick Roberts, 2006/04/20
- Re: comint-accumulate-marker, JD Smith, 2006/04/20
- Re: comint-accumulate-marker, Stuart D. Herring, 2006/04/18
- Re: comint-accumulate-marker, JD Smith, 2006/04/18
- Re: comint-accumulate-marker, Miles Bader, 2006/04/18
- Re: comint-accumulate-marker, JD Smith, 2006/04/18