Subject: bug#21501: closed (Re: bug#21501: new Emacs functions for capitalizing text intelligently)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 26 Sep 2015 08:14:02 +0000

Your bug report

#21501: new Emacs functions for capitalizing text intelligently

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
21501: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21501
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#21501: new Emacs functions for capitalizing text intelligently
From: Eli Zaretskii <[email-masked]>
To: Zachary Kanfer <[email-masked]>
Cc: [email-masked]
Date: Sat, 26 Sep 2015 11:13:21 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Zachary Kanfer <[email-masked]>
> Date: Mon, 21 Sep 2015 14:52:01 -0400
> Cc: [email-masked]
> 
> Here's an updated patch with Eli's comments addressed. Now, these new commands
> seem to have all the functionality of the existing *-region and *-word
> commands.

Thanks, I pushed them.

Note that with this contribution you've exhausted your limit of code
submissions that can be accepted without legal paperwork, so if you'd
like to continue your contribution (we hope you do), you will have to
do that paperwork.

Also, please in the future always include with your patches a log
message in the format described in CONTRIBUTE.

Thanks.

Subject: new Emacs functions for capitalizing text intelligently
From: Zachary Kanfer <[email-masked]>
To: [email-masked]
Date: Thu, 17 Sep 2015 00:32:32 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

I'm submitting some additional -dwim functions to that change the
capitalization of text the way the user probably wants.

These work similarly to comment-dwim, or count-words: they act on the
region if and only if it's active (more specifically, if (use-region-p) is
true), and otherwise act on the word starting at point. Either way, they
use existing functions in Emacs: e.g. #'upcase-dwim delegates either to
#'upcase-region or #'upcase-word.

There are three functions: one for each of capitalizing text, upcasing
text, and lowercasing text. The docstrings are based on the docstring for
comment-dwim.

In my init file, I've changed the default mappings of M-u, M-l, and M-c to
these new functions, and would support changing Emacs's defaults to them.
However, I am led to believe that changing defaults isn't preferred, so
this patch doesn't contain any of that. Even without changing defaults, I
believe these functions are worth adding to Emacs.

The capitalization-related functions I'm using are all defined in C, so I
can't put these new functions alongside them. I put the changes in
simple.el, as that file's described as "A grab-bag of basic Emacs commands
not specifically related to some major mode or to file-handling.". I'm
happy to move the functions and create a new diff if there's a more
appropriate file for them to live in.

Changelog entry:

* simple.el: Add functions for capitalizing text intelligently.
(capitalize-dwim): New function.
(upcase-dwim): New function.
(downcase-dwim): New function.

The diff is attached.

-Zachary Kanfer
From ea4856434c1e5edf3e1d50958c908ec3e5b152b5 Mon Sep 17 00:00:00 2001
From: Zachary Kanfer <[email-masked]>
Date: Mon, 14 Sep 2015 15:04:32 -0400
Subject: [PATCH] Add functions for capitalizing text intelligently.

This patch adds three functions: upcase-dwim, downcase-dwim, and
capitalize-dwim. These functions change the capitalization of text the
way the user probably wants -- they act on the region if it's active,
and on the next word if the region isn't.
---
 lisp/simple.el | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/lisp/simple.el b/lisp/simple.el
index f80faae..e2d4470 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -8424,6 +8424,35 @@ contains the list of implementations currently supported for this command."
                            command-name)))))))
 
 
+;;; Functions relating to capitalization that Do What I Mean
+(defun upcase-dwim ()
+  "Call the upcase command you want (Do What I Mean).
+If the region is active, call `upcase-region'.  Otherwise call
+`upcase-word'."
+  (interactive "*")
+  (if (use-region-p)
+      (upcase-region (region-beginning) (region-end))
+    (upcase-word 1)))
+
+(defun downcase-dwim ()
+  "Call the downcase command you want (Do What I Mean).
+If the region is active, call `downcase-region'.  Otherwise call
+`downcase-word'."
+  (interactive "*")
+  (if (use-region-p)
+      (downcase-region (region-beginning) (region-end))
+    (downcase-word 1)))
+
+(defun capitalize-dwim ()
+  "Call the capitalize command you want (Do What I Mean).
+If the region is active, call `capitalize-region'.  Otherwise call
+`capitalize-word'."
+  (interactive "*")
+  (if (use-region-p)
+      (capitalize-region (region-beginning) (region-end))
+    (capitalize-word 1)))
+
+
 
 (provide 'simple)
 
-- 
2.5.2