* bug#23655: 25.0.92; Upcasing a rectangular region of text
@ 2016-05-30 9:18 Dani Moncayo
2016-05-30 21:11 ` Juri Linkov
0 siblings, 1 reply; 3+ messages in thread
From: Dani Moncayo @ 2016-05-30 9:18 UTC (permalink / raw)
To: 23655
[-- Attachment #1: Type: text/plain, Size: 1042 bytes --]
0. emacs -Q
1. Eval: (put 'upcase-region 'disabled nil)
(put 'downcase-region 'disabled nil)
2. Visit the attached file.
3. Move point to just after the comma.
4. Define a *rectanguar* region: C-x <SPC> C-n C-e
5. Downcase the rectangular region: C-x C-l
6. Repeat steps #3 to #5, but this time for upcasing the region
instead of downcasing it ('C-x C-u' instead of 'C-x C-l').
The upcased text in the last step is not only the one marked by the
rectangular region. The upcasing command acts as if a linear
(i.e. non-rectangular) region was active at that moment.
In GNU Emacs 25.0.92.1 (i686-pc-mingw32)
of 2016-04-22 built on LEG570
Repository revision: 2b31a0c21e51d39a82572a32d2d31b5a2aa174a3
Windowing system distributor 'Microsoft Corp.', version 6.1.7601
Configured using:
'configure --host=i686-pc-mingw32'
Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS
Important settings:
value of $LANG: ESN
locale-coding-system: cp1252
--
Dani Moncayo
[-- Attachment #2: test1 --]
[-- Type: application/octet-stream, Size: 41 bytes --]
Hello, This little file
is an Example.
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#23655: 25.0.92; Upcasing a rectangular region of text
2016-05-30 9:18 bug#23655: 25.0.92; Upcasing a rectangular region of text Dani Moncayo
@ 2016-05-30 21:11 ` Juri Linkov
2016-06-05 21:23 ` Juri Linkov
0 siblings, 1 reply; 3+ messages in thread
From: Juri Linkov @ 2016-05-30 21:11 UTC (permalink / raw)
To: Dani Moncayo; +Cc: 23655
> 0. emacs -Q
> 1. Eval: (put 'upcase-region 'disabled nil)
> (put 'downcase-region 'disabled nil)
> 2. Visit the attached file.
> 3. Move point to just after the comma.
> 4. Define a *rectanguar* region: C-x <SPC> C-n C-e
> 5. Downcase the rectangular region: C-x C-l
> 6. Repeat steps #3 to #5, but this time for upcasing the region
> instead of downcasing it ('C-x C-u' instead of 'C-x C-l').
>
> The upcased text in the last step is not only the one marked by the
> rectangular region. The upcasing command acts as if a linear
> (i.e. non-rectangular) region was active at that moment.
Thanks for the request. Since we were unable to find a way to support
rectangular regions for all region-selecting commands en masse, here
is a patch to implement this individually for ‘upcase-region’:
diff --git a/src/casefiddle.c b/src/casefiddle.c
index c5bfa36..0a237d5 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -294,15 +294,31 @@
}
}
-DEFUN ("upcase-region", Fupcase_region, Supcase_region, 2, 2, "r",
+DEFUN ("upcase-region", Fupcase_region, Supcase_region, 2, 3,
+ "(list (region-beginning) (region-end) (region-noncontiguous-p))",
doc: /* Convert the region to upper case. In programs, wants two arguments.
These arguments specify the starting and ending character numbers of
the region to operate on. When used as a command, the text between
point and the mark is operated on.
See also `capitalize-region'. */)
- (Lisp_Object beg, Lisp_Object end)
+ (Lisp_Object beg, Lisp_Object end, Lisp_Object region_noncontiguous_p)
{
- casify_region (CASE_UP, beg, end);
+ Lisp_Object bounds = Qnil;
+
+ if (!NILP (region_noncontiguous_p))
+ {
+ bounds = call1 (Fsymbol_value (intern ("region-extract-function")),
+ intern ("bounds"));
+
+ while (CONSP (bounds))
+ {
+ casify_region (CASE_UP, XCAR (XCAR (bounds)), XCDR (XCAR (bounds)));
+ bounds = XCDR (bounds);
+ }
+ }
+ else
+ casify_region (CASE_UP, beg, end);
+
return Qnil;
}
diff --git a/src/search.c b/src/search.c
index f39df67..7cb18a2 100644
--- a/src/search.c
+++ b/src/search.c
@@ -2691,7 +2691,8 @@ STRING that was matched (the original STRING itself is not altered).
if (case_action == all_caps)
Fupcase_region (make_number (search_regs.start[sub]),
- make_number (newpoint));
+ make_number (newpoint),
+ Qnil);
else if (case_action == cap_initial)
Fupcase_initials_region (make_number (search_regs.start[sub]),
make_number (newpoint));
^ permalink raw reply related [flat|nested] 3+ messages in thread
* bug#23655: 25.0.92; Upcasing a rectangular region of text
2016-05-30 21:11 ` Juri Linkov
@ 2016-06-05 21:23 ` Juri Linkov
0 siblings, 0 replies; 3+ messages in thread
From: Juri Linkov @ 2016-06-05 21:23 UTC (permalink / raw)
To: Dani Moncayo; +Cc: 23655-done
>> 0. emacs -Q
>> 1. Eval: (put 'upcase-region 'disabled nil)
>> (put 'downcase-region 'disabled nil)
>> 2. Visit the attached file.
>> 3. Move point to just after the comma.
>> 4. Define a *rectanguar* region: C-x <SPC> C-n C-e
>> 5. Downcase the rectangular region: C-x C-l
>> 6. Repeat steps #3 to #5, but this time for upcasing the region
>> instead of downcasing it ('C-x C-u' instead of 'C-x C-l').
>>
>> The upcased text in the last step is not only the one marked by the
>> rectangular region. The upcasing command acts as if a linear
>> (i.e. non-rectangular) region was active at that moment.
>
> Thanks for the request. Since we were unable to find a way to support
> rectangular regions for all region-selecting commands en masse, here
> is a patch to implement this individually for ‘upcase-region’:
Pushed to master.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-06-05 21:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-30 9:18 bug#23655: 25.0.92; Upcasing a rectangular region of text Dani Moncayo
2016-05-30 21:11 ` Juri Linkov
2016-06-05 21:23 ` Juri Linkov
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).