diff options
| author | Paul Eggert | 2019-09-22 10:43:21 -0700 |
|---|---|---|
| committer | Paul Eggert | 2019-09-22 10:45:14 -0700 |
| commit | 2f600e97e7ca43965f55f019759582d93d8bca73 (patch) | |
| tree | d885dcef77f04a60da6cec56a2750b19a8e64192 /src/keyboard.c | |
| parent | dddff96a585531608d5e8d27375a6363679a9fb5 (diff) | |
| download | emacs-2f600e97e7ca43965f55f019759582d93d8bca73.tar.gz emacs-2f600e97e7ca43965f55f019759582d93d8bca73.zip | |
Avoid crashes when casifying noncontiguous regions
This is a followon fix for Bug#37477.
* lisp/simple.el (region-extract-function):
Use setq here, since the var is now defined in C code.
* src/casefiddle.c (casify_pnc_region): New function.
(Fupcase_region, Fdowncase_region, Fcapitalize_region)
(Fupcase_initials_region): Use it.
(Fupcase_initials_region): Add region-noncontiguous-p flag
for consistency with the others. All uses changed.
(syms_of_casefiddle): Define Qbounds, Vregion_extract_function.
* src/insdel.c (prepare_to_modify_buffer_1):
* src/keyboard.c (command_loop_1):
Use Vregion_extraction_function.
* src/insdel.c (syms_of_insdel): No need to define
Qregion_extract_function.
* test/src/casefiddle-tests.el (casefiddle-oldfunc): New var.
(casefiddle-loopfunc, casefiddle-badfunc): New functions.
(casefiddle-invalid-region-extract-function): New test.
Diffstat (limited to 'src/keyboard.c')
| -rw-r--r-- | src/keyboard.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index 1b9a603ca17..a16d13cc7b8 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -1535,7 +1535,7 @@ command_loop_1 (void) | |||
| 1535 | Vselection_inhibit_update_commands))) | 1535 | Vselection_inhibit_update_commands))) |
| 1536 | { | 1536 | { |
| 1537 | Lisp_Object txt | 1537 | Lisp_Object txt |
| 1538 | = call1 (Fsymbol_value (Qregion_extract_function), Qnil); | 1538 | = call1 (Vregion_extract_function, Qnil); |
| 1539 | if (XFIXNUM (Flength (txt)) > 0) | 1539 | if (XFIXNUM (Flength (txt)) > 0) |
| 1540 | /* Don't set empty selections. */ | 1540 | /* Don't set empty selections. */ |
| 1541 | call2 (Qgui_set_selection, QPRIMARY, txt); | 1541 | call2 (Qgui_set_selection, QPRIMARY, txt); |