* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
@ 2009-02-18 18:27 Harald Maier
2009-02-18 21:15 ` David Engster
0 siblings, 1 reply; 27+ messages in thread
From: Harald Maier @ 2009-02-18 18:27 UTC (permalink / raw)
To: emacs-pretest-bug
In the OS X nextstep build the GNUS function
gnus-summary-refer-parent-article (^)
always raises the following error:
Debugger entered--Lisp error: (wrong-type-argument overlayp nil)
delete-overlay(nil)
ns-delete-working-text()
ns-unput-working-text()
call-interactively(ns-unput-working-text nil [(ns-unput-working-text)])
This problem does not happen with the OS X X11 build. There the
funktion works always fine, so it seems only a nextstep build problem.
Harald
In GNU Emacs 23.0.90.3 (i386-apple-darwin9.6.0, NS apple-appkit-949.43)
of 2009-02-18 on ate.maierh
Windowing system distributor `Apple', version 10.3.949
configured using `configure '--with-ns''
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: de_DE.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: Summary
Minor modes in effect:
show-paren-mode: t
desktop-save-mode: t
cua-mode: t
recentf-mode: t
iswitchb-mode: t
tooltip-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
global-auto-composition-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:
<return> M-x e v a <tab> <backspace> <backspace> <backspace>
d <backspace> e <backspace> <backspace> d e <tab> d
e f <tab> <return> M-x g n u s <return> <down> C-u
2 0 <return> <up> M-x z <backspace> t o o <tab> <backspace>
<backspace> g g <tab> d e b <tab> <return> e r <tab>
<return> ^ <up> <S-down> <S-down> <S-down> <S-down>
<S-down> <escape> w <down-mouse-1> <mouse-1> <down-mouse-1>
<mouse-1> M-x e m a c <tab> b <tab> u <tab> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> r e p o <tab> r t - <tab> <return>
Recent messages:
Fetching headers for nntp+news.gmane.org:gmane.emacs.devel...done
Suppressing duplicates...done
Generating summary...done
ns-put-working-text: Buffer is read-only: #<buffer *Summary nntp+news.gmane.org:gmane.emacs.devel*>
ns-delete-working-text: Wrong type argument: overlayp, nil
Making completion list...
Debug on Error enabled globally
ns-put-working-text: Buffer is read-only: #<buffer *Summary nntp+news.gmane.org:gmane.emacs.devel*>
Entering debugger...
Making completion list...
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-18 18:27 bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build Harald Maier
@ 2009-02-18 21:15 ` David Engster
2009-02-18 23:51 ` Stefan Monnier
0 siblings, 1 reply; 27+ messages in thread
From: David Engster @ 2009-02-18 21:15 UTC (permalink / raw)
To: 2375; +Cc: Harald Maier
Harald Maier <harald@maierh.de> writes:
> In the OS X nextstep build the GNUS function
>
> gnus-summary-refer-parent-article (^)
>
> always raises the following error:
>
> Debugger entered--Lisp error: (wrong-type-argument overlayp nil)
> delete-overlay(nil)
> ns-delete-working-text()
> ns-unput-working-text()
> call-interactively(ns-unput-working-text nil [(ns-unput-working-text)])
>
> This problem does not happen with the OS X X11 build. There the
> funktion works always fine, so it seems only a nextstep build problem.
I can confirm this. I don't know a solution, but a few remarks which
might help tracking down this bug:
First of all, this is not a Gnus issue, since doing M-x
gnus-summary-refer-parent-article works. Also, this problem effects any
binding for "^". For example, in the Gnus group buffer, where "^" runs
gnus-group-enter-server-mode, the same error occurs.
This only happens with keyboard layouts where "^" is a dead key on Mac
OS X, e.g. the German layout. When I switch to US layout, the "^" is not
a dead key and this error does not happen. Therefore, this issue seems
to be a problem with the NS port not correctly handling dead keys. My
guess would be that the problem lies in this piece of code in
src/keyboard.c:
if defined (HAVE_NS)
else if (event->kind == NS_TEXT_EVENT)
{
if (event->code == KEY_NS_PUT_WORKING_TEXT)
obj = Fcons (intern ("ns-put-working-text"), Qnil);
else
obj = Fcons (intern ("ns-unput-working-text"), Qnil);
kbd_fetch_ptr = event + 1;
}
#endif
-David
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-18 21:15 ` David Engster
@ 2009-02-18 23:51 ` Stefan Monnier
2009-02-19 12:35 ` David Engster
0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2009-02-18 23:51 UTC (permalink / raw)
To: 2375; +Cc: Harald Maier
> if defined (HAVE_NS)
> else if (event->kind == NS_TEXT_EVENT)
> {
> if (event->code == KEY_NS_PUT_WORKING_TEXT)
> obj = Fcons (intern ("ns-put-working-text"), Qnil);
> else
> obj = Fcons (intern ("ns-unput-working-text"), Qnil);
> kbd_fetch_ptr = event + 1;
> }
> #endif
I think the bug is in the definition of ns-unput-working-text (or in
the way ns-unput-working-text and ns-unput-working-text (both events
and functions) interact).
Not sure why ns-working-overlay was nil in your case, so either
ns-unput-working-text should be careful to handle the case where that
variable is nil, or some other code should make sure that it can't be
nil when we reach ns-unput-working-text.
Stefan
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-18 23:51 ` Stefan Monnier
@ 2009-02-19 12:35 ` David Engster
2009-02-19 18:29 ` Stefan Monnier
0 siblings, 1 reply; 27+ messages in thread
From: David Engster @ 2009-02-19 12:35 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Harald Maier, 2375
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> I think the bug is in the definition of ns-unput-working-text (or in
> the way ns-unput-working-text and ns-unput-working-text (both events
> and functions) interact).
>
> Not sure why ns-working-overlay was nil in your case, so either
> ns-unput-working-text should be careful to handle the case where that
> variable is nil, or some other code should make sure that it can't be
> nil when we reach ns-unput-working-text.
It seems this is a bug in ns-insert-working-text, and it's already
mentioned there in a FIXME comment:
;; FIXME: if buffer is read-only, don't try to insert anything
;; and if text is bound to a command, execute that instead (Bug#1453)
The Gnus group and summary buffers are read only, so what we're dealing
here seems to be a duplicate of Bug #1453.
-David
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-19 12:35 ` David Engster
@ 2009-02-19 18:29 ` Stefan Monnier
2009-02-20 3:46 ` Harald Maier
2009-02-20 13:03 ` David Engster
0 siblings, 2 replies; 27+ messages in thread
From: Stefan Monnier @ 2009-02-19 18:29 UTC (permalink / raw)
To: 2375; +Cc: Harald Maier
>> I think the bug is in the definition of ns-unput-working-text (or in
>> the way ns-unput-working-text and ns-unput-working-text (both events
>> and functions) interact).
>>
>> Not sure why ns-working-overlay was nil in your case, so either
>> ns-unput-working-text should be careful to handle the case where that
>> variable is nil, or some other code should make sure that it can't be
>> nil when we reach ns-unput-working-text.
> It seems this is a bug in ns-insert-working-text, and it's already
> mentioned there in a FIXME comment:
> ;; FIXME: if buffer is read-only, don't try to insert anything
> ;; and if text is bound to a command, execute that instead (Bug#1453)
> The Gnus group and summary buffers are read only, so what we're dealing
> here seems to be a duplicate of Bug #1453.
What happens after the patch below? It's not intended to fix #1453.
Stefan
--- ns-win.el.~1.36.~ 2009-02-07 11:23:03.000000000 -0500
+++ ns-win.el 2009-02-19 13:21:57.000000000 -0500
@@ -779,11 +779,11 @@
-;;;; Composed key sequence handling for Nextstep system input methods.
-;;;; (On Nextstep systems, input methods are provided for CJK
-;;;; characters, etc. which require multiple keystrokes, and during
-;;;; entry a partial ("working") result is typically shown in the
-;;;; editing window.)
+;; Composed key sequence handling for Nextstep system input methods.
+;; (On Nextstep systems, input methods are provided for CJK
+;; characters, etc. which require multiple keystrokes, and during
+;; entry a partial ("working") result is typically shown in the
+;; editing window.)
(defface ns-working-text-face
'((t :underline t))
@@ -791,11 +791,8 @@
:group 'ns)
(defvar ns-working-overlay nil
- "Overlay used to highlight working text during compose sequence insert.")
-(make-variable-buffer-local 'ns-working-overlay)
-(defvar ns-working-overlay-len 0
- "Length of working text during compose sequence insert.")
-(make-variable-buffer-local 'ns-working-overlay-len)
+ "Overlay used to highlight working text during compose sequence insert.
+When text is in th echo area, this just stores the length of the working text.")
(defvar ns-working-text) ; nsterm.m
@@ -825,52 +822,52 @@
(if (ns-in-echo-area) (ns-echo-working-text) (ns-insert-working-text)))
(defun ns-unput-working-text ()
(interactive)
- (if (ns-in-echo-area) (ns-unecho-working-text) (ns-delete-working-text)))
+ (ns-delete-working-text))
(defun ns-insert-working-text ()
- "Insert contents of ns-working-text as UTF8 string and mark with
-ns-working-overlay. Any previously existing working text is cleared first.
-The overlay is assigned the face ns-working-text-face."
-;; FIXME: if buffer is read-only, don't try to insert anything
-;; and if text is bound to a command, execute that instead (Bug#1453)
+ "Insert contents of `ns-working-text' as UTF8 string and mark with
+`ns-working-overlay'. Any previously existing working text is cleared first.
+The overlay is assigned the face `ns-working-text-face'."
+ ;; FIXME: if buffer is read-only, don't try to insert anything
+ ;; and if text is bound to a command, execute that instead (Bug#1453)
(interactive)
- (if ns-working-overlay (ns-delete-working-text))
+ (ns-delete-working-text)
(let ((start (point)))
(insert ns-working-text)
(overlay-put (setq ns-working-overlay (make-overlay start (point)
(current-buffer) nil t))
- 'face 'ns-working-text-face)
- (setq ns-working-overlay-len (+ ns-working-overlay-len (- (point) start)))))
+ 'face 'ns-working-text-face)))
(defun ns-echo-working-text ()
"Echo contents of ns-working-text in message display area.
-See ns-insert-working-text."
- (if ns-working-overlay (ns-unecho-working-text))
+See `ns-insert-working-text'."
+ (ns-delete-working-text)
(let* ((msg (current-message))
(msglen (length msg))
message-log-max)
- (setq ns-working-overlay-len (length ns-working-text))
+ (setq ns-working-overlay (length ns-working-text))
(setq msg (concat msg ns-working-text))
- (put-text-property msglen (+ msglen ns-working-overlay-len)
+ (put-text-property msglen (+ msglen ns-working-overlay)
'face 'ns-working-text-face msg)
- (message "%s" msg)
- (setq ns-working-overlay t)))
+ (message "%s" msg)))
(defun ns-delete-working-text()
- "Delete working text and clear ns-working-overlay."
+ "Delete working text and clear `ns-working-overlay'."
(interactive)
- (delete-backward-char ns-working-overlay-len)
- (setq ns-working-overlay-len 0)
- (delete-overlay ns-working-overlay))
-
-(defun ns-unecho-working-text()
- "Delete working text from echo area and clear ns-working-overlay."
+ (cond
+ ((and (overlayp ns-working-overlay)
+ ;; Still alive?
+ (overlay-buffer ns-working-overlay))
+ (with-current-buffer (overlay-buffer ns-working-overlay)
+ (delete-region (overlay-start ns-working-overlay)
+ (overlay-end ns-working-overlay))
+ (delete-overlay ns-working-overlay)))
+ ((integerp ns-working-overlay)
(let ((msg (current-message))
message-log-max)
- (setq msg (substring msg 0 (- (length msg) ns-working-overlay-len)))
- (message "%s" msg)
- (setq ns-working-overlay-len 0)
- (setq ns-working-overlay nil)))
+ (setq msg (substring msg 0 (- (length msg) ns-working-overlay)))
+ (message "%s" msg))))
+ (setq ns-working-overlay nil))
(declare-function ns-convert-utf8-nfd-to-nfc "nsfns.m" (str))
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-19 18:29 ` Stefan Monnier
@ 2009-02-20 3:46 ` Harald Maier
2009-02-20 13:03 ` David Engster
1 sibling, 0 replies; 27+ messages in thread
From: Harald Maier @ 2009-02-20 3:46 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 2375
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> I think the bug is in the definition of ns-unput-working-text (or in
>>> the way ns-unput-working-text and ns-unput-working-text (both events
>>> and functions) interact).
>>>
>>> Not sure why ns-working-overlay was nil in your case, so either
>>> ns-unput-working-text should be careful to handle the case where that
>>> variable is nil, or some other code should make sure that it can't be
>>> nil when we reach ns-unput-working-text.
>
>> It seems this is a bug in ns-insert-working-text, and it's already
>> mentioned there in a FIXME comment:
>
>> ;; FIXME: if buffer is read-only, don't try to insert anything
>> ;; and if text is bound to a command, execute that instead (Bug#1453)
>
>> The Gnus group and summary buffers are read only, so what we're dealing
>> here seems to be a duplicate of Bug #1453.
>
> What happens after the patch below? It's not intended to fix #1453.
>
>
> Stefan
>
> --- ns-win.el.~1.36.~ 2009-02-07 11:23:03.000000000 -0500
> +++ ns-win.el 2009-02-19 13:21:57.000000000 -0500
Yes, I can confirm that the patch fixes the caret character (^) in the
gnus group and summary buffer.
Harald
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-19 18:29 ` Stefan Monnier
2009-02-20 3:46 ` Harald Maier
@ 2009-02-20 13:03 ` David Engster
2009-02-20 15:18 ` Stefan Monnier
1 sibling, 1 reply; 27+ messages in thread
From: David Engster @ 2009-02-20 13:03 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 2375
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> I think the bug is in the definition of ns-unput-working-text (or in
>>> the way ns-unput-working-text and ns-unput-working-text (both events
>>> and functions) interact).
>>>
>>> Not sure why ns-working-overlay was nil in your case, so either
>>> ns-unput-working-text should be careful to handle the case where that
>>> variable is nil, or some other code should make sure that it can't be
>>> nil when we reach ns-unput-working-text.
>
>> It seems this is a bug in ns-insert-working-text, and it's already
>> mentioned there in a FIXME comment:
>
>> ;; FIXME: if buffer is read-only, don't try to insert anything
>> ;; and if text is bound to a command, execute that instead (Bug#1453)
>
>> The Gnus group and summary buffers are read only, so what we're dealing
>> here seems to be a duplicate of Bug #1453.
>
> What happens after the patch below?
The patch makes "^" bindings work in Gnus. Thanks!
> It's not intended to fix #1453.
Yes, there's still a warning issued about the current buffer being
read-only.
-David
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-20 13:03 ` David Engster
@ 2009-02-20 15:18 ` Stefan Monnier
2009-02-20 15:41 ` David Engster
0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2009-02-20 15:18 UTC (permalink / raw)
To: David Engster; +Cc: 2375
>> What happens after the patch below?
> The patch makes "^" bindings work in Gnus. Thanks!
Now I didn't expect that. I guess that's good, tho.
But does the ^ character still behave properly as a dead-key in normal
editing buffers?
>> It's not intended to fix #1453.
> Yes, there's still a warning issued about the current buffer being
> read-only.
That's expected yes.
Stefan
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-20 15:18 ` Stefan Monnier
@ 2009-02-20 15:41 ` David Engster
2009-02-20 21:14 ` Stefan Monnier
0 siblings, 1 reply; 27+ messages in thread
From: David Engster @ 2009-02-20 15:41 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 2375
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> What happens after the patch below?
>> The patch makes "^" bindings work in Gnus. Thanks!
>
> Now I didn't expect that. I guess that's good, tho.
Hitting ^+space works. I'd say that's good. :-)
> But does the ^ character still behave properly as a dead-key in normal
> editing buffers?
Yes, it does.
-David
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-20 15:41 ` David Engster
@ 2009-02-20 21:14 ` Stefan Monnier
2009-02-21 0:45 ` David Engster
2009-02-21 4:56 ` Harald Maier
0 siblings, 2 replies; 27+ messages in thread
From: Stefan Monnier @ 2009-02-20 21:14 UTC (permalink / raw)
To: David Engster; +Cc: 2375
>>>> What happens after the patch below?
>>> The patch makes "^" bindings work in Gnus. Thanks!
>> Now I didn't expect that. I guess that's good, tho.
> Hitting ^+space works. I'd say that's good. :-)
Oh, I get it: so hitting ^ doesn't do anything, but hitting ^ SPC
does trigger the Gnus command bount to ^.
Yes, that makes sense. We could supposedly improve this to actually
make ^ call the proper Gnus command directly, but the patch doesn't try
to do that.
>> But does the ^ character still behave properly as a dead-key in normal
>> editing buffers?
> Yes, it does.
Good. I'll install it as soon as I get back to the machine on which
I wrote it ;-)
Stefan
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-20 21:14 ` Stefan Monnier
@ 2009-02-21 0:45 ` David Engster
2009-02-21 4:56 ` Harald Maier
1 sibling, 0 replies; 27+ messages in thread
From: David Engster @ 2009-02-21 0:45 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 2375
Stefan Monnier <monnier@IRO.UMontreal.CA> writes:
>>>>> What happens after the patch below?
>>>> The patch makes "^" bindings work in Gnus. Thanks!
>>> Now I didn't expect that. I guess that's good, tho.
>> Hitting ^+space works. I'd say that's good. :-)
>
> Oh, I get it: so hitting ^ doesn't do anything, but hitting ^ SPC
> does trigger the Gnus command bount to ^.
Exactly, since dead-key+space enters the compose character
itself. Hitting ^ does trigger the "buffer read-only" warning though,
since the code tries to insert the overlay at that point.
> Yes, that makes sense. We could supposedly improve this to actually
> make ^ call the proper Gnus command directly, but the patch doesn't
> try to do that.
Yes, while playing around with the code I implemented that (it still did
"swallow" the next keypress though, so it's not really usable), and I
wondered if this behaviour could be confusing to some people, since they
might expect that the "^" _character_ and not the keypress itself
triggers a command? (I usually use the US layout, so I don't have a
strong opinion on that anyway :-) ).
>>> But does the ^ character still behave properly as a dead-key in normal
>>> editing buffers?
>> Yes, it does.
>
> Good. I'll install it as soon as I get back to the machine on which
> I wrote it ;-)
OK, thanks again!
-David
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-20 21:14 ` Stefan Monnier
2009-02-21 0:45 ` David Engster
@ 2009-02-21 4:56 ` Harald Maier
2009-02-21 6:38 ` YAMAMOTO Mitsuharu
1 sibling, 1 reply; 27+ messages in thread
From: Harald Maier @ 2009-02-21 4:56 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 2375
Stefan Monnier <monnier@IRO.UMontreal.CA> writes:
>>>>> What happens after the patch below?
>>>> The patch makes "^" bindings work in Gnus. Thanks!
>>> Now I didn't expect that. I guess that's good, tho.
>> Hitting ^+space works. I'd say that's good. :-)
>
> Oh, I get it: so hitting ^ doesn't do anything, but hitting ^ SPC
> does trigger the Gnus command bount to ^.
> Yes, that makes sense. We could supposedly improve this to actually
> make ^ call the proper Gnus command directly, but the patch doesn't try
> to do that.
On a German keyboard this behaviour would be confusing. ^ is a dead key
so we always use the SPACE key to force it. It should be similar to the
X11 build and there I have too to press the SPACE character to force the
dead key. As David mentioned the only small problem is the "buffer read
only" warning.
Harald
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-21 4:56 ` Harald Maier
@ 2009-02-21 6:38 ` YAMAMOTO Mitsuharu
2009-02-21 9:30 ` Harald Maier
2009-02-25 16:25 ` Stefan Monnier
0 siblings, 2 replies; 27+ messages in thread
From: YAMAMOTO Mitsuharu @ 2009-02-21 6:38 UTC (permalink / raw)
To: Harald Maier, 2375; +Cc: Stefan Monnier
>>>>> On Sat, 21 Feb 2009 05:56:18 +0100, Harald Maier <harald@maierh.de> said:
>> Oh, I get it: so hitting ^ doesn't do anything, but hitting ^ SPC
>> does trigger the Gnus command bount to ^. Yes, that makes sense.
>> We could supposedly improve this to actually make ^ call the proper
>> Gnus command directly, but the patch doesn't try to do that.
> On a German keyboard this behaviour would be confusing. ^ is a dead
> key so we always use the SPACE key to force it. It should be similar
> to the X11 build and there I have too to press the SPACE character
> to force the dead key. As David mentioned the only small problem is
> the "buffer read only" warning.
What do you think about the dead-key behavior in the Carbon port
(Emacs 22)? If it is reasonable enough, maybe the Cocoa/GNUstep port
can adopt its strategy.
Below is the code from the Carbon+AppKit port(*), which also uses the
NSTextInput protocol.
(*) ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-22.3-appkit-1.2.tar.gz
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
(defconst mac-marked-text-underline-style-faces
'((0 . mac-ts-raw-text) ; NSUnderlineStyleNone
(1 . mac-ts-converted-text) ; NSUnderlineStyleSingle
(2 . mac-ts-selected-converted-text)) ; NSUnderlineStyleThick
"Alist of NSUnderlineStyle vs Emacs face in marked text.")
(defun mac-text-input-set-marked-text (event)
(interactive "e")
(let* ((ae (mac-event-ae event))
(text (cdr (mac-ae-parameter ae)))
(selected-range (cdr (mac-ae-parameter ae "selectedRange")))
(script-language (mac-ae-script-language ae "tssl"))
(coding (or (cdr (assq (car script-language)
mac-script-code-coding-systems))
'mac-roman)))
(let ((use-echo-area
(or isearch-mode
(and cursor-in-echo-area (current-message))
;; Overlay strings are not shown in some cases.
(get-char-property (point) 'invisible)
(and (not (bobp))
(or (and (get-char-property (point) 'display)
(eq (get-char-property (1- (point)) 'display)
(get-char-property (point) 'display)))
(and (get-char-property (point) 'composition)
(eq (get-char-property (1- (point)) 'composition)
(get-char-property (point) 'composition)))))))
active-input-string caret-seen)
;; Decode the active input area text with inheriting faces and
;; the caret position.
(put-text-property (* (car selected-range) 2) (length text)
'cursor t text)
(setq active-input-string
(mapconcat
(lambda (str)
(let* ((decoded (mac-utxt-to-string str coding))
(underline-style
(or (cdr (get-text-property 0 'NSUnderline str)) 0))
(face
(cdr (assq underline-style
mac-marked-text-underline-style-faces))))
(put-text-property 0 (length decoded) 'face face decoded)
(when (and (not caret-seen)
(get-text-property 0 'cursor str))
(setq caret-seen t)
(if (or use-echo-area (null cursor-type))
(put-text-property 0 1 'face 'mac-ts-caret-position
decoded)
(put-text-property 0 1 'cursor t decoded)))
decoded))
(mac-split-string-by-property-change text)
""))
(put-text-property 0 (length active-input-string)
'mac-ts-active-input-string t active-input-string)
(if use-echo-area
(let ((msg (current-message))
message-log-max)
(if (and msg
;; Don't get confused by previously displayed
;; `active-input-string'.
(null (get-text-property 0 'mac-ts-active-input-string
msg)))
(setq msg (propertize msg 'display
(concat msg active-input-string)))
(setq msg active-input-string))
(message "%s" msg)
(overlay-put mac-ts-active-input-overlay 'before-string nil))
(move-overlay mac-ts-active-input-overlay
(point) (point) (current-buffer))
(overlay-put mac-ts-active-input-overlay 'before-string
active-input-string)))))
(defun mac-text-input-insert-text (event)
(interactive "e")
(let* ((ae (mac-event-ae event))
(text (cdr (mac-ae-parameter ae)))
(script-language (mac-ae-script-language ae "tssl"))
(coding (or (cdr (assq (car script-language)
mac-script-code-coding-systems))
'mac-roman)))
(overlay-put mac-ts-active-input-overlay 'before-string nil)
(let ((msg (current-message))
message-log-max)
(when msg
(if (get-text-property 0 'mac-ts-active-input-string msg)
(message nil)
(let ((disp-prop (get-text-property 0 'display msg)))
(when (and (stringp disp-prop)
(> (length disp-prop) 1)
(get-text-property (1- (length disp-prop))
'mac-ts-active-input-string))
(remove-text-properties 0 (length disp-prop)
'(mac-ts-active-input-string nil)
msg)
(message "%s" msg))))))
(mac-unread-string (mac-utxt-to-string text coding))))
(define-key mac-apple-event-map [text-input set-marked-text]
'mac-text-input-set-marked-text)
(define-key mac-apple-event-map [text-input insert-text]
'mac-text-input-insert-text)
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-21 6:38 ` YAMAMOTO Mitsuharu
@ 2009-02-21 9:30 ` Harald Maier
2009-02-22 1:39 ` YAMAMOTO Mitsuharu
2009-02-25 16:25 ` Stefan Monnier
1 sibling, 1 reply; 27+ messages in thread
From: Harald Maier @ 2009-02-21 9:30 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: 2375
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes:
>>>>>> On Sat, 21 Feb 2009 05:56:18 +0100, Harald Maier <harald@maierh.de> said:
>
>>> Oh, I get it: so hitting ^ doesn't do anything, but hitting ^ SPC
>>> does trigger the Gnus command bount to ^. Yes, that makes sense.
>>> We could supposedly improve this to actually make ^ call the proper
>>> Gnus command directly, but the patch doesn't try to do that.
>
>> On a German keyboard this behaviour would be confusing. ^ is a dead
>> key so we always use the SPACE key to force it. It should be similar
>> to the X11 build and there I have too to press the SPACE character
>> to force the dead key. As David mentioned the only small problem is
>> the "buffer read only" warning.
>
> What do you think about the dead-key behavior in the Carbon port
> (Emacs 22)? If it is reasonable enough, maybe the Cocoa/GNUstep port
> can adopt its strategy.
That works but I don't like it. My preference is as in the X11 build.
I see now that the caret character (^) as dead key in the X11 build also
makes some problem. E.g. "C-c ^" (org-sort).
Harald
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-21 9:30 ` Harald Maier
@ 2009-02-22 1:39 ` YAMAMOTO Mitsuharu
2009-02-24 5:00 ` Harald Maier
0 siblings, 1 reply; 27+ messages in thread
From: YAMAMOTO Mitsuharu @ 2009-02-22 1:39 UTC (permalink / raw)
To: Harald Maier; +Cc: 2375
>>>>> On Sat, 21 Feb 2009 10:30:50 +0100, Harald Maier <harald@maierh.de> said:
>> What do you think about the dead-key behavior in the Carbon port
>> (Emacs 22)? If it is reasonable enough, maybe the Cocoa/GNUstep
>> port can adopt its strategy.
> That works but I don't like it. My preference is as in the X11
> build.
Could you explain more in detail how they are different and why you
don't like it? Note that some distributions (such as Carbon Emacs
Package or Aquamacs Emacs) based on the Carbon port applies some patch
with respect to text input, and their behavior is not strictly the
same as the Carbon port I'm talking about.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-22 1:39 ` YAMAMOTO Mitsuharu
@ 2009-02-24 5:00 ` Harald Maier
2009-02-24 5:09 ` YAMAMOTO Mitsuharu
0 siblings, 1 reply; 27+ messages in thread
From: Harald Maier @ 2009-02-24 5:00 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: 2375
[-- Attachment #1: Type: text/plain, Size: 850 bytes --]
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes:
>>>>>> On Sat, 21 Feb 2009 10:30:50 +0100, Harald Maier <harald@maierh.de> said:
>
>>> What do you think about the dead-key behavior in the Carbon port
>>> (Emacs 22)? If it is reasonable enough, maybe the Cocoa/GNUstep
>>> port can adopt its strategy.
>
>> That works but I don't like it. My preference is as in the X11
>> build.
>
> Could you explain more in detail how they are different and why you
> don't like it? Note that some distributions (such as Carbon Emacs
> Package or Aquamacs Emacs) based on the Carbon port applies some patch
> with respect to text input, and their behavior is not strictly the
> same as the Carbon port I'm talking about.
It really inserts a caret character into the gnus summary buffer as you
can see in the attached image. That looks very strange.
[-- Attachment #2: Bild 1.png --]
[-- Type: image/png, Size: 49494 bytes --]
[-- Attachment #3: Type: text/plain, Size: 8 bytes --]
Harald
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-24 5:00 ` Harald Maier
@ 2009-02-24 5:09 ` YAMAMOTO Mitsuharu
0 siblings, 0 replies; 27+ messages in thread
From: YAMAMOTO Mitsuharu @ 2009-02-24 5:09 UTC (permalink / raw)
To: Harald Maier; +Cc: 2375
>>>>> On Tue, 24 Feb 2009 06:00:22 +0100, Harald Maier <harald@maierh.de> said:
>>>> What do you think about the dead-key behavior in the Carbon port
>>>> (Emacs 22)? If it is reasonable enough, maybe the Cocoa/GNUstep
>>>> port can adopt its strategy.
>>
>>> That works but I don't like it. My preference is as in the X11
>>> build.
>>
>> Could you explain more in detail how they are different and why you
>> don't like it? Note that some distributions (such as Carbon Emacs
>> Package or Aquamacs Emacs) based on the Carbon port applies some
>> patch with respect to text input, and their behavior is not
>> strictly the same as the Carbon port I'm talking about.
> It really inserts a caret character into the gnus summary buffer as
> you can see in the attached image. That looks very strange.
That's the point in the implementation: i.e., it gives a visual
feedback that indicates dead-key is being processed even in the
read-only buffer using an overlay string. Such kind of feedback can
also be seen in other Mac applications (modulo colors/underline, which
is customizable in the Carbon port) and even in X11 apps with XIM.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-21 6:38 ` YAMAMOTO Mitsuharu
2009-02-21 9:30 ` Harald Maier
@ 2009-02-25 16:25 ` Stefan Monnier
2009-02-26 0:04 ` YAMAMOTO Mitsuharu
2009-02-26 16:49 ` David Engster
1 sibling, 2 replies; 27+ messages in thread
From: Stefan Monnier @ 2009-02-25 16:25 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: Harald Maier, 2375
> What do you think about the dead-key behavior in the Carbon port
> (Emacs 22)? If it is reasonable enough, maybe the Cocoa/GNUstep port
> can adopt its strategy.
Not knowing exactly how it's called, and not having the time to try and
understand all thedetails, I'm not sure I understand what are
the differences. Could you try and explain what are the differences?
I see various "unimportant" details (such as the use of a display
property or an overlay in order to avoid directly modifying the actual
text), which might be good to integrate indeed, but what about the
overall behavior, is it different? E.g. what happens (with your code)
when the user hits a dead-^ in a Gnus buffer?
I get the impression that it ends up behaving like the current ns-win.el
code (i.e. nothing is run after ^, but the Gnus command is called after
^+SPC), except that it displays a "^" in the Gnus buffer rather than
signalling an error. Is that right?
Stefan
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-25 16:25 ` Stefan Monnier
@ 2009-02-26 0:04 ` YAMAMOTO Mitsuharu
2009-02-26 15:21 ` Stefan Monnier
2009-02-26 16:49 ` David Engster
1 sibling, 1 reply; 27+ messages in thread
From: YAMAMOTO Mitsuharu @ 2009-02-26 0:04 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Harald Maier, 2375
>>>>> On Wed, 25 Feb 2009 11:25:17 -0500, Stefan Monnier <monnier@IRO.UMontreal.CA> said:
>> What do you think about the dead-key behavior in the Carbon port
>> (Emacs 22)? If it is reasonable enough, maybe the Cocoa/GNUstep
>> port can adopt its strategy.
> Not knowing exactly how it's called, and not having the time to try
> and understand all thedetails, I'm not sure I understand what are
> the differences. Could you try and explain what are the
> differences? I see various "unimportant" details (such as the use
> of a display property or an overlay in order to avoid directly
> modifying the actual text), which might be good to integrate indeed,
> but what about the overall behavior, is it different? E.g. what
> happens (with your code) when the user hits a dead-^ in a Gnus
> buffer?
> I get the impression that it ends up behaving like the current
> ns-win.el code (i.e. nothing is run after ^, but the Gnus command is
> called after ^+SPC), except that it displays a "^" in the Gnus
> buffer rather than signalling an error. Is that right?
That's right. But I don't think the difference is so unimportant with
respect to the current issue.
Also, the difference in the code length shows how the Cocoa/GNUstep
port oversimplifies the whole text input processing: it doesn't
respect attributes in the marked text (which corresponds to text
properties) or the selected range value.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-26 0:04 ` YAMAMOTO Mitsuharu
@ 2009-02-26 15:21 ` Stefan Monnier
2009-02-27 0:09 ` YAMAMOTO Mitsuharu
2015-02-13 7:18 ` Lars Ingebrigtsen
0 siblings, 2 replies; 27+ messages in thread
From: Stefan Monnier @ 2009-02-26 15:21 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: Harald Maier, 2375
>> I get the impression that it ends up behaving like the current
>> ns-win.el code (i.e. nothing is run after ^, but the Gnus command is
>> called after ^+SPC), except that it displays a "^" in the Gnus
>> buffer rather than signalling an error. Is that right?
> That's right. But I don't think the difference is so unimportant with
> respect to the current issue.
I never use dead keys like those, so I wouldn't know [a US keyboard plus
a compose key is all I need, plus the TeX input method, of course ;-)].
But I'll happily believe you.
It still leaves open the question of whether it would be desirable to
shortcut this so that pressing ^ in the Gnus summary immediately calls
the Gnus command, without having to press a subsequent SPC.
> Also, the difference in the code length shows how the Cocoa/GNUstep
> port oversimplifies the whole text input processing: it doesn't
> respect attributes in the marked text (which corresponds to text
> properties) or the selected range value.
I don't know what is "the marked text" nor what is "the selected range
value".
Stefan
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-25 16:25 ` Stefan Monnier
2009-02-26 0:04 ` YAMAMOTO Mitsuharu
@ 2009-02-26 16:49 ` David Engster
1 sibling, 0 replies; 27+ messages in thread
From: David Engster @ 2009-02-26 16:49 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Harald Maier, 2375
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> It still leaves open the question of whether it would be desirable to
> shortcut this so that pressing ^ in the Gnus summary immediately calls
> the Gnus command, without having to press a subsequent SPC.
I now agree with Harald that this would be confusing. A dead key is
essentially a compose key for one character, and I think it shouldn't
call commands by itself. Pressing ^+space enters "^", so that key
sequence should call commands bound to "^", just like I have to press
^+a to execute a command bound to "â".
-David
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-26 15:21 ` Stefan Monnier
@ 2009-02-27 0:09 ` YAMAMOTO Mitsuharu
2009-03-09 13:25 ` Stefan Monnier
2015-02-13 7:18 ` Lars Ingebrigtsen
1 sibling, 1 reply; 27+ messages in thread
From: YAMAMOTO Mitsuharu @ 2009-02-27 0:09 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Harald Maier, 2375
>>>>> On Thu, 26 Feb 2009 10:21:11 -0500, Stefan Monnier <monnier@iro.umontreal.ca> said:
> It still leaves open the question of whether it would be desirable
> to shortcut this so that pressing ^ in the Gnus summary immediately
> calls the Gnus command, without having to press a subsequent SPC.
Besides a matter of taste, the marked text (corresponding to preedit
in XIM) is not necessarily identical to the pressed key (e.g.,
Japanese input methods).
>> Also, the difference in the code length shows how the Cocoa/GNUstep
>> port oversimplifies the whole text input processing: it doesn't
>> respect attributes in the marked text (which corresponds to text
>> properties) or the selected range value.
> I don't know what is "the marked text" nor what is "the selected
> range value".
They are in the Cocoa NSTextInput terminology. The "marked text"
corresponds to "preedit" in XIM as above or "active input" in Carbon
TSM. I don't know why the Cocoa/GNUstep port call it "working text".
The "selected range" represents the caret position in the marked text.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-27 0:09 ` YAMAMOTO Mitsuharu
@ 2009-03-09 13:25 ` Stefan Monnier
2009-03-10 0:05 ` YAMAMOTO Mitsuharu
0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2009-03-09 13:25 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: Harald Maier, 2375
>> It still leaves open the question of whether it would be desirable
>> to shortcut this so that pressing ^ in the Gnus summary immediately
>> calls the Gnus command, without having to press a subsequent SPC.
> Besides a matter of taste, the marked text (corresponding to preedit
> in XIM) is not necessarily identical to the pressed key (e.g.,
> Japanese input methods).
>>> Also, the difference in the code length shows how the Cocoa/GNUstep
>>> port oversimplifies the whole text input processing: it doesn't
>>> respect attributes in the marked text (which corresponds to text
>>> properties) or the selected range value.
>> I don't know what is "the marked text" nor what is "the selected
>> range value".
> They are in the Cocoa NSTextInput terminology. The "marked text"
> corresponds to "preedit" in XIM as above or "active input" in Carbon
> TSM. I don't know why the Cocoa/GNUstep port call it "working text".
> The "selected range" represents the caret position in the marked text.
I don't know what "preedit" or "caret" are either :-(
Stefan
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-03-09 13:25 ` Stefan Monnier
@ 2009-03-10 0:05 ` YAMAMOTO Mitsuharu
2009-03-10 17:18 ` Stefan Monnier
0 siblings, 1 reply; 27+ messages in thread
From: YAMAMOTO Mitsuharu @ 2009-03-10 0:05 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Harald Maier, 2375
>>>>> On Mon, 09 Mar 2009 09:25:59 -0400, Stefan Monnier <monnier@iro.umontreal.ca> said:
>>> It still leaves open the question of whether it would be desirable
>>> to shortcut this so that pressing ^ in the Gnus summary
>>> immediately calls the Gnus command, without having to press a
>>> subsequent SPC.
>> Besides a matter of taste, the marked text (corresponding to
>> preedit in XIM) is not necessarily identical to the pressed key
>> (e.g., Japanese input methods).
>>>> Also, the difference in the code length shows how the
>>>> Cocoa/GNUstep port oversimplifies the whole text input
>>>> processing: it doesn't respect attributes in the marked text
>>>> (which corresponds to text properties) or the selected range
>>>> value.
>>> I don't know what is "the marked text" nor what is "the selected
>>> range value".
>> They are in the Cocoa NSTextInput terminology. The "marked text"
>> corresponds to "preedit" in XIM as above or "active input" in
>> Carbon TSM. I don't know why the Cocoa/GNUstep port call it
>> "working text". The "selected range" represents the caret position
>> in the marked text.
> I don't know what "preedit" or "caret" are either :-(
"Preedit" is an intermediate text. It is used for showing partial
result of composition. In Japanese input methods, it is also used for
showing phonetic characters to be converted to ideographic characters,
or the current selection of ideographic characters among homonyms.
The "caret" corresponds to the cursor and it represents the current
insertion/deletion point in the preedit text. For example, one can
erase a phonetic character in the middle of the preedit text before
the phonetic-to-ideographic (kana-kanji) conversion.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-03-10 0:05 ` YAMAMOTO Mitsuharu
@ 2009-03-10 17:18 ` Stefan Monnier
0 siblings, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2009-03-10 17:18 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: Harald Maier, 2375
>> I don't know what "preedit" or "caret" are either :-(
> "Preedit" is an intermediate text. It is used for showing partial
> result of composition. In Japanese input methods, it is also used for
> showing phonetic characters to be converted to ideographic characters,
> or the current selection of ideographic characters among homonyms.
> The "caret" corresponds to the cursor and it represents the current
> insertion/deletion point in the preedit text. For example, one can
> erase a phonetic character in the middle of the preedit text before
> the phonetic-to-ideographic (kana-kanji) conversion.
I see. Looking at Emacs-22's mac-win.el, it looks like some of the
functionality you describe was there in Emacs-22 already and it got lost
when we switched to Emacs.app.
Could someone try to adapt that code to ns-win.el?
Stefan
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2009-02-26 15:21 ` Stefan Monnier
2009-02-27 0:09 ` YAMAMOTO Mitsuharu
@ 2015-02-13 7:18 ` Lars Ingebrigtsen
2016-01-21 23:31 ` Alan Third
1 sibling, 1 reply; 27+ messages in thread
From: Lars Ingebrigtsen @ 2015-02-13 7:18 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Harald Maier, 2375
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> It still leaves open the question of whether it would be desirable to
> shortcut this so that pressing ^ in the Gnus summary immediately calls
> the Gnus command, without having to press a subsequent SPC.
I think that would be confusing. When you have a keyboard with dead
keys, you're used to them being just composing characters that needs
another keystroke for something to happen. So `^ SPC' is fine in Gnus.
The patch in question seems to give visual feedback that you're in the
middle of a composing character, which might be nice, though.
But is this still an issue five years later? :-)
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog http://lars.ingebrigtsen.no/
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build
2015-02-13 7:18 ` Lars Ingebrigtsen
@ 2016-01-21 23:31 ` Alan Third
0 siblings, 0 replies; 27+ messages in thread
From: Alan Third @ 2016-01-21 23:31 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: Harald Maier, Stefan Monnier, 2375
Lars Ingebrigtsen <larsi@gnus.org> writes:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>> It still leaves open the question of whether it would be desirable to
>> shortcut this so that pressing ^ in the Gnus summary immediately calls
>> the Gnus command, without having to press a subsequent SPC.
>
> I think that would be confusing. When you have a keyboard with dead
> keys, you're used to them being just composing characters that needs
> another keystroke for something to happen. So `^ SPC' is fine in Gnus.
>
> The patch in question seems to give visual feedback that you're in the
> middle of a composing character, which might be nice, though.
>
> But is this still an issue five years later? :-)
It looks like the bug is fixed, so unless anyone disagrees I'll close
this bug in a few days.
--
Alan Third
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2016-01-21 23:31 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-18 18:27 bug#2375: 23.0.90; ^ in gnus summary buffer does not work in the nextstep build Harald Maier
2009-02-18 21:15 ` David Engster
2009-02-18 23:51 ` Stefan Monnier
2009-02-19 12:35 ` David Engster
2009-02-19 18:29 ` Stefan Monnier
2009-02-20 3:46 ` Harald Maier
2009-02-20 13:03 ` David Engster
2009-02-20 15:18 ` Stefan Monnier
2009-02-20 15:41 ` David Engster
2009-02-20 21:14 ` Stefan Monnier
2009-02-21 0:45 ` David Engster
2009-02-21 4:56 ` Harald Maier
2009-02-21 6:38 ` YAMAMOTO Mitsuharu
2009-02-21 9:30 ` Harald Maier
2009-02-22 1:39 ` YAMAMOTO Mitsuharu
2009-02-24 5:00 ` Harald Maier
2009-02-24 5:09 ` YAMAMOTO Mitsuharu
2009-02-25 16:25 ` Stefan Monnier
2009-02-26 0:04 ` YAMAMOTO Mitsuharu
2009-02-26 15:21 ` Stefan Monnier
2009-02-27 0:09 ` YAMAMOTO Mitsuharu
2009-03-09 13:25 ` Stefan Monnier
2009-03-10 0:05 ` YAMAMOTO Mitsuharu
2009-03-10 17:18 ` Stefan Monnier
2015-02-13 7:18 ` Lars Ingebrigtsen
2016-01-21 23:31 ` Alan Third
2009-02-26 16:49 ` David Engster
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.