<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src/textconv.h, branch scratch/cedet-object-name</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Update copyright year to 2025</title>
<updated>2025-01-01T07:39:17+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-01-01T07:39:17+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4da38c632161867e914b3a13dc760f8019255f94'/>
<id>4da38c632161867e914b3a13dc760f8019255f94</id>
<content type='text'>
Run "TZ=UTC0 admin/update-copyright".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Run "TZ=UTC0 admin/update-copyright".
</pre>
</div>
</content>
</entry>
<entry>
<title>; Fix typos</title>
<updated>2024-07-18T09:46:50+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2024-07-07T15:40:31+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=a6cab228d4d1a82a80eac81b057857a230eef0b5'/>
<id>a6cab228d4d1a82a80eac81b057857a230eef0b5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Take fields into account during text conversion</title>
<updated>2024-04-29T04:34:39+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2024-04-21T13:51:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=430088c9ccec5fe9be57d267f45acdc87aa3b28e'/>
<id>430088c9ccec5fe9be57d267f45acdc87aa3b28e</id>
<content type='text'>
* lisp/cus-edit.el (Custom-mode): Enable text conversion, now
that fields are correctly treated.

* src/alloc.c (mark_frame): Mark f-&gt;conversion.field.

* src/androidterm.c (android_update_selection): Adjust
conversion region and selection position by the field start and
end.

* src/editfns.c (find_field): Export function.

* src/frame.c (make_frame): Clear f-&gt;conversion.field.

* src/frame.h (struct text_conversion_state) &lt;field&gt;: New field.

* src/lisp.h (find_fields, reset_frame_conversion): Export
functions.

* src/minibuf.c (Fread_from_minibuffer): Reset frame conversion
if Voverriding_text_conversion_style is set.

* src/textconv.c (textconv_query): Narrow to field.
(reset_frame_conversion): New function.
(reset_frame_state): Clear conversion field.
(really_delete_surrounding_text): Narrow to field.
(locate_and_save_position_in_field): New function.
(really_request_point_update, really_set_point_and_mark)
(complete_edit_check, handle_pending_conversion_events_1)
(handle_pending_conversion_events, get_conversion_field)
(set_composing_region, textconv_set_point_and_mark, replace_text)
(get_extracted_text, get_surrounding_text, report_point_change):
Compute, narrow to and offset by the currently active field
whenever point is updated or a command is received.
(syms_of_textconv): Revise doc strings.

* src/textconv.h (get_conversion_field): Export function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/cus-edit.el (Custom-mode): Enable text conversion, now
that fields are correctly treated.

* src/alloc.c (mark_frame): Mark f-&gt;conversion.field.

* src/androidterm.c (android_update_selection): Adjust
conversion region and selection position by the field start and
end.

* src/editfns.c (find_field): Export function.

* src/frame.c (make_frame): Clear f-&gt;conversion.field.

* src/frame.h (struct text_conversion_state) &lt;field&gt;: New field.

* src/lisp.h (find_fields, reset_frame_conversion): Export
functions.

* src/minibuf.c (Fread_from_minibuffer): Reset frame conversion
if Voverriding_text_conversion_style is set.

* src/textconv.c (textconv_query): Narrow to field.
(reset_frame_conversion): New function.
(reset_frame_state): Clear conversion field.
(really_delete_surrounding_text): Narrow to field.
(locate_and_save_position_in_field): New function.
(really_request_point_update, really_set_point_and_mark)
(complete_edit_check, handle_pending_conversion_events_1)
(handle_pending_conversion_events, get_conversion_field)
(set_composing_region, textconv_set_point_and_mark, replace_text)
(get_extracted_text, get_surrounding_text, report_point_change):
Compute, narrow to and offset by the currently active field
whenever point is updated or a command is received.
(syms_of_textconv): Revise doc strings.

* src/textconv.h (get_conversion_field): Export function.
</pre>
</div>
</content>
</entry>
<entry>
<title>; Add 2024 to copyright years</title>
<updated>2024-01-02T02:30:05+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2024-01-02T02:30:05+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=070cb32463a8c606bf4384574a6c7ea60167e87d'/>
<id>070cb32463a8c606bf4384574a6c7ea60167e87d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce an input method callback required by Android 34</title>
<updated>2023-10-05T06:23:20+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2023-10-05T06:23:20+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=123b77436e187c6254d4585d08135a44077528d1'/>
<id>123b77436e187c6254d4585d08135a44077528d1</id>
<content type='text'>
* java/org/gnu/emacs/EmacsInputConnection.java (replaceText):
New function.

* java/org/gnu/emacs/EmacsNative.java (replaceText): Declare
native function.

* src/androidgui.h (enum android_ime_operation): New operation
ANDROID_IME_REPLACE_TEXT.

* src/androidterm.c (android_handle_ime_event): Decode text when
encountering an ANDROID_IME_REPLACE_TEXT operation.  Return if
decoding overflowed rather than presenting Qnil to textconv
functions.
(replaceText): New JNI function.

* src/frame.h (enum text_conversion_operation): New operation
TEXTCONV_REPLACE_TEXT.

* src/textconv.c (really_commit_text): Move point to start if
the composing region is set.
(really_replace_text): New function.
(handle_pending_conversion_events_1) &lt;TEXTCONV_REPLACE_TEXT&gt;:
New case.
(replace_text): New function.

* src/textconv.h: Update prototypes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* java/org/gnu/emacs/EmacsInputConnection.java (replaceText):
New function.

* java/org/gnu/emacs/EmacsNative.java (replaceText): Declare
native function.

* src/androidgui.h (enum android_ime_operation): New operation
ANDROID_IME_REPLACE_TEXT.

* src/androidterm.c (android_handle_ime_event): Decode text when
encountering an ANDROID_IME_REPLACE_TEXT operation.  Return if
decoding overflowed rather than presenting Qnil to textconv
functions.
(replaceText): New JNI function.

* src/frame.h (enum text_conversion_operation): New operation
TEXTCONV_REPLACE_TEXT.

* src/textconv.c (really_commit_text): Move point to start if
the composing region is set.
(really_replace_text): New function.
(handle_pending_conversion_events_1) &lt;TEXTCONV_REPLACE_TEXT&gt;:
New case.
(replace_text): New function.

* src/textconv.h: Update prototypes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update Android port</title>
<updated>2023-07-05T03:39:45+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2023-07-05T03:39:45+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=9e9142249725b4785a01734a8c0f50301fccdea7'/>
<id>9e9142249725b4785a01734a8c0f50301fccdea7</id>
<content type='text'>
* doc/lispref/commands.texi (Misc Events): Correctly index
`set-text-conversion-style'.
* lisp/tool-bar.el (tool-bar-event-apply-alt-modifier)
(tool-bar-event-apply-super-modifier)
(tool-bar-event-apply-hyper-modifier)
(tool-bar-event-apply-shift-modifier)
(tool-bar-event-apply-control-modifier)
(tool-bar-event-apply-meta-modifier): Pass t when restoring text
conversion style.
* src/keyboard.c (restore_reading_key_sequence): New function.
(read_key_sequence): Set `reading_key_sequence' where necessary.
* src/keyboard.h: Declare variable.
* src/textconv.c (check_postponed_buffers): New function.
(Fset_text_conversion_style): New argument.  If set, and a key
sequence is being read, postpone resetting the IME until the key
sequence is read.
(syms_of_textconv): Clear new variable and add staticpro.
* src/textconv.h: Update prototypes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* doc/lispref/commands.texi (Misc Events): Correctly index
`set-text-conversion-style'.
* lisp/tool-bar.el (tool-bar-event-apply-alt-modifier)
(tool-bar-event-apply-super-modifier)
(tool-bar-event-apply-hyper-modifier)
(tool-bar-event-apply-shift-modifier)
(tool-bar-event-apply-control-modifier)
(tool-bar-event-apply-meta-modifier): Pass t when restoring text
conversion style.
* src/keyboard.c (restore_reading_key_sequence): New function.
(read_key_sequence): Set `reading_key_sequence' where necessary.
* src/keyboard.h: Declare variable.
* src/textconv.c (check_postponed_buffers): New function.
(Fset_text_conversion_style): New argument.  If set, and a key
sequence is being read, postpone resetting the IME until the key
sequence is read.
(syms_of_textconv): Clear new variable and add staticpro.
* src/textconv.h: Update prototypes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update Android port</title>
<updated>2023-06-07T03:03:56+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2023-06-07T03:03:56+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=63339a9577f085074d16fa8c56ddd56864c94dda'/>
<id>63339a9577f085074d16fa8c56ddd56864c94dda</id>
<content type='text'>
* java/org/gnu/emacs/EmacsInputConnection.java (beginBatchEdit)
(endBatchEdit, commitCompletion, commitText, deleteSurroundingText)
(finishComposingText, getSelectedText, getTextAfterCursor)
(getTextBeforeCursor, setComposingText, setComposingRegion)
(performEditorAction, performContextMenuAction, getExtractedText)
(setSelection, sendKeyEvent, deleteSurroundingTextInCodePoints)
(requestCursorUpdates): Ensure that the input connection is up
to date.
(getSurroundingText): New function.
* java/org/gnu/emacs/EmacsNative.java (getSurroundingText):
Export new C function.
* java/org/gnu/emacs/EmacsService.java (resetIC): Invalidate
previously created input connections.
* java/org/gnu/emacs/EmacsView.java (EmacsView)
(onCreateInputConnection): Signify that input connections are
now up to date.
* src/androidterm.c (struct
android_get_surrounding_text_context): New structure.
(android_get_surrounding_text, NATIVE_NAME):
* src/textconv.c (get_surrounding_text):
* src/textconv.h: New functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* java/org/gnu/emacs/EmacsInputConnection.java (beginBatchEdit)
(endBatchEdit, commitCompletion, commitText, deleteSurroundingText)
(finishComposingText, getSelectedText, getTextAfterCursor)
(getTextBeforeCursor, setComposingText, setComposingRegion)
(performEditorAction, performContextMenuAction, getExtractedText)
(setSelection, sendKeyEvent, deleteSurroundingTextInCodePoints)
(requestCursorUpdates): Ensure that the input connection is up
to date.
(getSurroundingText): New function.
* java/org/gnu/emacs/EmacsNative.java (getSurroundingText):
Export new C function.
* java/org/gnu/emacs/EmacsService.java (resetIC): Invalidate
previously created input connections.
* java/org/gnu/emacs/EmacsView.java (EmacsView)
(onCreateInputConnection): Signify that input connections are
now up to date.
* src/androidterm.c (struct
android_get_surrounding_text_context): New structure.
(android_get_surrounding_text, NATIVE_NAME):
* src/textconv.c (get_surrounding_text):
* src/textconv.h: New functions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update Android port</title>
<updated>2023-06-03T02:16:30+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2023-06-03T02:16:30+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=a696ed5c30fb9a7ba2d37f0e691de17872fdab16'/>
<id>a696ed5c30fb9a7ba2d37f0e691de17872fdab16</id>
<content type='text'>
* src/androidterm.c (struct android_get_extracted_text_context):
New field `mark_active'.
(android_get_extracted_text): Set that field.
(struct android_extracted_text_class): New field `flags'.
(android_build_extracted_text): New argument `mark_active'.  Set
flags appropriately.
(NATIVE_NAME, android_update_selection): Likewise.
* src/textconv.c (get_extracted_text): New argument
`mark_active'.  Set it if the mark is active.
* src/textconv.h: Update prototypes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/androidterm.c (struct android_get_extracted_text_context):
New field `mark_active'.
(android_get_extracted_text): Set that field.
(struct android_extracted_text_class): New field `flags'.
(android_build_extracted_text): New argument `mark_active'.  Set
flags appropriately.
(NATIVE_NAME, android_update_selection): Likewise.
* src/textconv.c (get_extracted_text): New argument
`mark_active'.  Set it if the mark is active.
* src/textconv.h: Update prototypes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update Android port</title>
<updated>2023-06-02T05:31:40+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2023-06-02T05:31:40+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=189a91bfb699babd936dae48b96d71a332cac8d2'/>
<id>189a91bfb699babd936dae48b96d71a332cac8d2</id>
<content type='text'>
* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection): Apply workarounds on Vivo devices as
well.
* src/android.c (sendKeyPress, sendKeyRelease): Clear counter.
* src/androidgui.h (struct android_key_event): New field
`counter'.
* src/androidterm.c (handle_one_android_event): Generate
barriers as appropriate.
(JNICALL): Set `counter'.
* src/frame.h (enum text_conversion_operation):
* src/textconv.c (detect_conversion_events)
(really_set_composing_text, handle_pending_conversion_events_1)
(handle_pending_conversion_events, textconv_barrier):
* src/textconv.h: Implement text conversion barriers and fix
various typos.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection): Apply workarounds on Vivo devices as
well.
* src/android.c (sendKeyPress, sendKeyRelease): Clear counter.
* src/androidgui.h (struct android_key_event): New field
`counter'.
* src/androidterm.c (handle_one_android_event): Generate
barriers as appropriate.
(JNICALL): Set `counter'.
* src/frame.h (enum text_conversion_operation):
* src/textconv.c (detect_conversion_events)
(really_set_composing_text, handle_pending_conversion_events_1)
(handle_pending_conversion_events, textconv_barrier):
* src/textconv.h: Implement text conversion barriers and fix
various typos.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update Android port</title>
<updated>2023-06-01T07:16:02+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2023-06-01T07:16:02+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=aed0a11147e29fc73405f1815fef91ecf6cca7fb'/>
<id>aed0a11147e29fc73405f1815fef91ecf6cca7fb</id>
<content type='text'>
* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection, performContextMenuAction): New function.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative)
(performContextMenuAction): New function.
* src/android.c (android_get_gc_values): Implement more
efficiently.
* src/androidterm.c (android_handle_ime_event): Pass through
`update' argument to `finish_composing_text'.  Fix thinko.
* src/textconv.c (really_finish_composing_text)
(really_set_composing_text, really_set_composing_region)
(handle_pending_conversion_events_1, finish_composing_text): New
argument `update'.  Notify IME of conversion region changes if
set.
* src/textconv.h: Update structs and prototypes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection, performContextMenuAction): New function.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative)
(performContextMenuAction): New function.
* src/android.c (android_get_gc_values): Implement more
efficiently.
* src/androidterm.c (android_handle_ime_event): Pass through
`update' argument to `finish_composing_text'.  Fix thinko.
* src/textconv.c (really_finish_composing_text)
(really_set_composing_text, really_set_composing_region)
(handle_pending_conversion_events_1, finish_composing_text): New
argument `update'.  Notify IME of conversion region changes if
set.
* src/textconv.h: Update structs and prototypes.
</pre>
</div>
</content>
</entry>
</feed>
