summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2024-03-26 10:11:26 +0800
committerPo Lu <luangruo@yahoo.com>2024-03-26 10:11:26 +0800
commit728bf2c9e5353e68b16808ae455223549c16efc6 (patch)
treece2a4aaf1081bab52fb7b4f2e6b7a312ce9da5ba /src
parent7fba25cf5344f5c3507aedf59e6ae099e7662508 (diff)
downloademacs-728bf2c9e5353e68b16808ae455223549c16efc6.tar.gz
Prevent passwords from being recorded during text conversion
* doc/lispref/commands.texi (Misc Events): Document new value of text-conversion-style. * java/org/gnu/emacs/EmacsService.java (EmacsService) <IC_MODE_PASSWORD>: New constant. * java/org/gnu/emacs/EmacsView.java (onCreateInputConnection): Set TYPE_TEXT_VARIATION_PASSWORD and IME_FLAG_FORCE_ASII if mode is IC_MODE_PASSWORD. * lisp/subr.el (read-passwd): Set text-conversion-style to `password'. * src/androidgui.h (enum android_ic_mode): New value ANDROID_IC_MODE_PASSWORD. * src/androidterm.c (android_reset_conversion): Handle `password'. * src/buffer.c (syms_of_buffer) <&BVAR (current_buffer, text_conversion_style)>: Update doc string. * src/textconv.c (syms_of_textconv) <Qpassword>: New DEFSYM. <Vtext_conversion_edits>: Fix typos in doc string.
Diffstat (limited to 'src')
-rw-r--r--src/androidgui.h7
-rw-r--r--src/androidterm.c2
-rw-r--r--src/buffer.c7
-rw-r--r--src/textconv.c3
4 files changed, 15 insertions, 4 deletions
diff --git a/src/androidgui.h b/src/androidgui.h
index d89aee51055..f941c7cc577 100644
--- a/src/androidgui.h
+++ b/src/androidgui.h
@@ -618,9 +618,10 @@ enum android_lookup_status
enum android_ic_mode
{
- ANDROID_IC_MODE_NULL = 0,
- ANDROID_IC_MODE_ACTION = 1,
- ANDROID_IC_MODE_TEXT = 2,
+ ANDROID_IC_MODE_NULL = 0,
+ ANDROID_IC_MODE_ACTION = 1,
+ ANDROID_IC_MODE_TEXT = 2,
+ ANDROID_IC_MODE_PASSWORD = 3,
};
enum android_stack_mode
diff --git a/src/androidterm.c b/src/androidterm.c
index ba9b6d3b8a9..c920375fdbe 100644
--- a/src/androidterm.c
+++ b/src/androidterm.c
@@ -6276,6 +6276,8 @@ android_reset_conversion (struct frame *f)
if (NILP (style) || conversion_disabled_p ())
mode = ANDROID_IC_MODE_NULL;
+ else if (EQ (style, Qpassword))
+ mode = ANDROID_IC_MODE_PASSWORD;
else if (EQ (style, Qaction) || EQ (f->selected_window,
f->minibuffer_window))
mode = ANDROID_IC_MODE_ACTION;
diff --git a/src/buffer.c b/src/buffer.c
index 07d19dfc078..9f954e1aba9 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5900,12 +5900,19 @@ Use Custom to set this variable and update the display. */);
text_conversion_style),
Qnil,
doc: /* How the on screen keyboard's input method should insert in this buffer.
+
When nil, the input method will be disabled and an ordinary keyboard
will be displayed in its place.
+
When the symbol `action', the input method will insert text directly, but
will send `return' key events instead of inserting new line characters.
Any other value means that the input method will insert text directly.
+When the symbol `password', an input method capable of ASCII input will
+be enabled, and will not save entered text where it will be retrieved
+for text suggestions or other features not suited to handling sensitive
+information, in addition to reporting `return' as when `action'.
+
If you need to make non-buffer local changes to this variable, use
`overriding-text-conversion-style', which see.
diff --git a/src/textconv.c b/src/textconv.c
index 0941848dd09..9625c884e16 100644
--- a/src/textconv.c
+++ b/src/textconv.c
@@ -2318,6 +2318,7 @@ void
syms_of_textconv (void)
{
DEFSYM (Qaction, "action");
+ DEFSYM (Qpassword, "password");
DEFSYM (Qtext_conversion, "text-conversion");
DEFSYM (Qpush_mark, "push-mark");
DEFSYM (Qunderline, "underline");
@@ -2325,7 +2326,7 @@ syms_of_textconv (void)
"overriding-text-conversion-style");
DEFVAR_LISP ("text-conversion-edits", Vtext_conversion_edits,
- doc: /* List of buffers that were last edited as result of text conversion.
+ doc: /* List of buffers last edited as a result of text conversion.
This list can be used while handling a `text-conversion' event to
determine which changes have taken place.