bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

field movement fix [Re: comint loses prompt boundary]


From: Ilya N. Golubev
Subject: field movement fix [Re: comint loses prompt boundary]
Date: Tue, 12 Dec 2006 21:08:34 +0300

Fixing what described on Thu, 07 Sep 2006 00:32:13 +0400 in
<16k64g20tu.fsf@mo.msk.ru> (<comint loses prompt boundary>) in emacs
cvs head (as of 2006-11-23) as follows.  This also makes comint, shell
conform to documentation as suggested in <87slflasys.fsf@mo.msk.ru>.

Cc-ing to Jerry James, <xemacs-beta> since the broken code from emacs
was merged into xemacs packages `comint.el' revision 1.14 of
2006/05/25 02:49:47 +0, and they were among recipients of the original
report.

lisp/ChangeLog

        * comint.el (comint-line-beginning-position): Fix undocumented
        dependency on `inhibit-field-text-motion' value: do the same
        regardless of how this user option is set.

etc/ChangeLog

        * NEWS (Fixed to respects fields): New.
        (Comint changes): In here.

--- lisp/comint.el      2006-11-23 15:55:54.000000000 +0300
+++ lisp/comint.el      2006-12-07 02:53:38.794286184 +0300
@@ -1953,7 +1953,8 @@
     ;; if there are two fields on a line, then the first one is the
     ;; prompt, and the second one is an input field, and is front-sticky
     ;; (as input fields should be).
-    (constrain-to-field (line-beginning-position) (line-end-position))))
+    (let ((inhibit-field-text-motion nil))
+      (constrain-to-field (line-beginning-position) (line-end-position)))))
 
 (defun comint-bol (&optional arg)
   "Go to the beginning of line, then skip past the prompt, if any.
--- etc/NEWS    2006-11-23 15:55:51.000000000 +0300
+++ etc/NEWS    2006-12-07 05:10:21.731250216 +0300
@@ -21,6 +21,39 @@
 so we will look at it and add it to the manual.
 
 
+* Incompatible Editing Changes in local gin branch.
+
+** Fixed comint commands to respect fields.
+
+As described in <Fixed `comint-line-beginning-position' to respects
+fields> section.  This includes, but not limited to `comint-bol',
+`comint-insert-previous-argument', `comint-backward-matching-input',
+`comint-bol-or-process-mark', `comint-previous-matching-input',
+`comint-send-input', `comint-copy-old-input',
+`shell-backward-command', `shell-dynamic-complete-command' (including
+inside `comint-dynamic-complete' in Shell mode).
+
+
+* Incompatible Lisp Changes in local gin branch.
+
+** Fixed `comint-line-beginning-position' to respect fields.
+
+As controlled by `inhibit-field-text-motion'.  This fixed myriads of
+other functions and commands that depend on it and that rely on it to
+always do so, regardless of `inhibit-field-text-motion' user option,
+at least when `comint-use-prompt-regexp' is `nil'.  Partial list of
+these commands is in <Fixed comint commands to respects fields>
+section.  However, other code certainly may rely on old behavior.
+Have not seen such a code to date.
+
+Introduced in upstream just after addition of (extant) field
+implementation of 2000-01-01.
+
+Other non- interactive functions calling it include
+`comint-replace-by-expanded-history-before-point',
+`comint-get-old-input-default'.
+
+
 * Installation Changes in Emacs 22.1
 
 ---
@@ -1461,6 +1494,37 @@
 that need to know whether they are started inside Emacs should check
 INSIDE_EMACS instead of EMACS.
 
+*** Fixed to respects fields.
+
+As controlled by `inhibit-field-text-motion'.  As bug fix, certainly
+incompatible with buggy behavior.
+
+**** Lisp changes.
+
+The core change is in `comint-line-beginning-position'.  This fixed
+myriads of other functions and commands that depend on it and that
+rely on it to always do so, regardless of `inhibit-field-text-motion'
+user option, at least when `comint-use-prompt-regexp' is `nil'.
+Partial list of these commands is in <Editing changes> section.
+However, other code certainly may rely on old behavior.  Have not seen
+such a code to date.
+
+Introduced in upstream emacs just after addition of (extant) field
+implementation of 2000-01-01.
+
+Other non- interactive functions calling it include
+`comint-replace-by-expanded-history-before-point',
+`comint-get-old-input-default'.
+
+**** Editing changes.
+
+Include, but not limited to `comint-bol',
+`comint-insert-previous-argument', `comint-backward-matching-input',
+`comint-bol-or-process-mark', `comint-previous-matching-input',
+`comint-send-input', `comint-copy-old-input',
+`shell-backward-command', `shell-dynamic-complete-command' (including
+inside `comint-dynamic-complete' in Shell mode).
+
 ** M-x Compile changes:
 
 ---




reply via email to

[Prev in Thread] Current Thread [Next in Thread]