GNU bug report logs - #2288
[patch] NATO support in morse.el

Previous Next

Package: emacs;

Reported by: "Aaron S. Hawley" <aaron.s.hawley <at> gmail.com>

Date: Wed, 11 Feb 2009 14:55:05 UTC

Severity: wishlist

Tags: patch

Fixed in version 24.1

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 2288 in the body.
You can then email your comments to 2288 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#2288; Package emacs. (Wed, 11 Feb 2009 14:55:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Aaron S. Hawley" <aaron.s.hawley <at> gmail.com>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Wed, 11 Feb 2009 14:55:05 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: "Aaron S. Hawley" <aaron.s.hawley <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: [patch] NATO support in morse.el
Date: Wed, 11 Feb 2009 09:54:16 -0500
[Message part 1 (text/plain, inline)]
I've added support to Emacs to convert text into the NATO phonetic
alphabet.  I added it to the existing Morse code converter (morse.el),
using the existing code to complete the task.  The commands are M-x
nato-region and M-x denato-region. (M-x unnato-region just wasn't as
fun sounding).

This is all an amusement, but I find this feature helpful to use
occasionally in phone conversations at work.  I suppose I'd rather
convert small bits of text at a time, and have the output shown in the
Emacs echo area than converting the region "in place".  I predict
people will probably want to try and integrate the functions in
morse.el to avoid duplicating the same code as I have done.

The patch is attached, and the file nato.txt helped me loosely confirm
that the conversion has a one-to-one correspondence.

Thanks for Emacs.
/a


2009-02-11  Aaron S. Hawley  <aaron.s.hawley <at> gmail.com>

	* play/morse.el (nato-alphabet): New variable for converting text
	to NATO phonetic alphabet by Aaron S. Hawley
	<aaron.s.hawley <at> gmail.com>.
	(morse-region, unmorse-region): Add * to interactive forms.
	(nato-region, denato-region): New functions.

--- morse.el	10 Feb 2009 22:43:49 -0500	1.19
+++ morse.el	11 Feb 2009 00:05:37 -0500	
@@ -26,6 +26,9 @@
 ;; Converts text to Morse code and back with M-x morse-region and
 ;; M-x unmorse-region (though Morse code is no longer official :-().

+;; Converts text to NATO phonetic alphabet and back with M-x
+;; nato-region and M-x denato-region.
+
 ;;; Code:

 (defvar morse-code '(("a" . ".-")
@@ -92,10 +95,64 @@
 		     ("@" . ".--.-."))
   "Morse code character set.")

+(defvar nato-alphabet '(("a" . "Alfa")
+			("b" . "Bravo")
+			("c" . "Charlie")
+			("d" . "Delta")
+			("e" . "Echo")
+			("f" . "Foxtrot")
+			("g" . "Golf")
+			("h" . "Hotel")
+			("i" . "India")
+			("j" . "Juliett")
+			("k" . "Kilo")
+			("l" . "Lima")
+			("m" . "Mike")
+			("n" . "November")
+			("o" . "Oscar")
+			("p" . "Papa")
+			("q" . "Quebec")
+			("r" . "Romeo")
+			("s" . "Sierra")
+			("t" . "Tango")
+			("u" . "Uniform")
+			("v" . "Victor")
+			("w" . "Whiskey")
+			("x" . "Xray")
+			("y" . "Yankee")
+			("z" . "Zulu")
+			;; Numbers
+			("0" . "Zero")
+			("1" . "One")
+			("2" . "Two")
+			("3" . "Three")
+			("4" . "Four")
+			("5" . "Five")
+			("6" . "Six")
+			("7" . "Seven")
+			("8" . "Eight")
+			("9" . "Niner")
+			;; Punctuation is not part of standard
+			("=" . "Equals")
+			("?" . "Query")
+			("/" . "Slash")
+			("," . "Comma")
+			("." . "Stop")
+			(":" . "Colon")
+			("'" . "Apostrophe")
+			("-" . "Dash")
+			("(" . "Open")
+			(")" . "Close")
+			("@" . "At"))
+  "NATO phonetic alphabet.
+See ''International Code of Signals'' (INTERCO), United States
+Edition, 1969 Edition (Revised 2003) available from National
+Geospatial-Intelligence Agency at http://www.nga.mil/")
+
 ;;;###autoload
 (defun morse-region (beg end)
   "Convert all text in a given region to morse code."
-  (interactive "r")
+  (interactive "*r")
   (if (integerp end)
       (setq end (copy-marker end)))
   (save-excursion
@@ -118,7 +175,7 @@
 ;;;###autoload
 (defun unmorse-region (beg end)
   "Convert morse coded text in region to ordinary ASCII text."
-  (interactive "r")
+  (interactive "*r")
   (if (integerp end)
       (setq end (copy-marker end)))
   (save-excursion
@@ -137,6 +194,53 @@
 	    (if (looking-at "/")
 		(delete-char 1))))))))

+;;;###autoload
+(defun nato-region (beg end)
+  "Convert all text in a given region to NATO phonetic alphabet."
+  ;; Copied from morse-region. -- ashawley 2009-02-10
+  (interactive "*r")
+  (if (integerp end)
+      (setq end (copy-marker end)))
+  (save-excursion
+    (let ((sep "")
+	  str nato)
+      (goto-char beg)
+      (while (< (point) end)
+	(setq str (downcase (buffer-substring (point) (1+ (point)))))
+	(cond ((looking-at "\\s-+")
+	       (goto-char (match-end 0))
+	       (setq sep ""))
+	      ((setq nato (assoc str nato-alphabet))
+	       (delete-char 1)
+	       (insert sep (cdr nato))
+	       (setq sep "-"))
+	      (t
+	       (forward-char 1)
+	       (setq sep "")))))))
+
+;;;###autoload
+(defun denato-region (beg end)
+  "Convert NATO phonetic alphabet in region to ordinary ASCII text."
+  ;; Copied from unmorse-region. -- ashawley 2009-02-10
+  (interactive "*r")
+  (if (integerp end)
+      (setq end (copy-marker end)))
+  (save-excursion
+    (let (str paren nato)
+      (goto-char beg)
+      (while (< (point) end)
+	(if (null (looking-at "[a-z]+"))
+	    (forward-char 1)
+	  (setq str (buffer-substring (match-beginning 0) (match-end 0)))
+	  (if (null (setq nato (rassoc str nato-alphabet)))
+	      (goto-char (match-end 0))
+	    (replace-match
+		  (if (string-equal "(" (car nato))
+		      (if (setq paren (null paren)) "(" ")")
+		    (car nato)) t)
+	    (if (looking-at "-")
+		(delete-char 1))))))))
+
 (provide 'morse)

 ;; arch-tag: 3331e6c1-9a9e-453f-abfd-163a9c3f93a6
[nato.txt (text/plain, attachment)]
[morse.el-nato.diff (application/octet-stream, attachment)]

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#2288; Package emacs. (Wed, 11 Feb 2009 15:35:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Chong Yidong <cyd <at> stupidchicken.com>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Wed, 11 Feb 2009 15:35:02 GMT) Full text and rfc822 format available.

Message #10 received at 2288 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Chong Yidong <cyd <at> stupidchicken.com>
To: "Aaron S. Hawley" <aaron.s.hawley <at> gmail.com>
Cc: 2288 <at> debbugs.gnu.org
Subject: Re: [patch] NATO support in morse.el
Date: Wed, 11 Feb 2009 10:29:24 -0500
> I've added support to Emacs to convert text into the NATO phonetic
> alphabet.  I added it to the existing Morse code converter (morse.el),
> using the existing code to complete the task.  The commands are M-x
> nato-region and M-x denato-region. (M-x unnato-region just wasn't as
> fun sounding).
>
> This is all an amusement, but I find this feature helpful to use
> occasionally in phone conversations at work.

I will take a look at it after the release.  Thanks.




Severity set to `minor' from `normal' Request was from Chong Yidong <cyd <at> stupidchicken.com> to control <at> emacsbugs.donarmstrong.com. (Wed, 11 Feb 2009 15:35:04 GMT) Full text and rfc822 format available.

Tags added: patch Request was from Chong Yidong <cyd <at> stupidchicken.com> to control <at> emacsbugs.donarmstrong.com. (Wed, 11 Feb 2009 15:35:04 GMT) Full text and rfc822 format available.

Severity set to `wishlist' from `minor' Request was from Glenn Morris <rgm <at> gnu.org> to control <at> emacsbugs.donarmstrong.com. (Fri, 13 Feb 2009 04:10:04 GMT) Full text and rfc822 format available.

Reply sent to Glenn Morris <rgm <at> gnu.org>:
You have taken responsibility. (Mon, 07 Mar 2011 07:38:06 GMT) Full text and rfc822 format available.

Notification sent to "Aaron S. Hawley" <aaron.s.hawley <at> gmail.com>:
bug acknowledged by developer. (Mon, 07 Mar 2011 07:38:07 GMT) Full text and rfc822 format available.

Message #21 received at 2288-done <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: 2288-done <at> debbugs.gnu.org
Subject: Re: [patch] NATO support in morse.el
Date: Mon, 07 Mar 2011 02:37:40 -0500
Version: 24.1

Alfa-Papa-Papa-Lima-India-Echo-Delta;
Tango-Hotel-Alfa-November-Kilo-Sierra-Stop




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#2288; Package emacs. (Mon, 07 Mar 2011 18:24:04 GMT) Full text and rfc822 format available.

Message #24 received at 2288 <at> debbugs.gnu.org (full text, mbox):

From: "Aaron S. Hawley" <aaron.s.hawley <at> gmail.com>
To: Glenn Morris <rgm <at> gnu.org>
Cc: 2288 <at> debbugs.gnu.org
Subject: Re: [patch] NATO support in morse.el
Date: Mon, 7 Mar 2011 13:22:54 -0500
On Mon, Mar 7, 2011 at 2:38 AM, GNU bug Tracking System
<help-debbugs <at> gnu.org> wrote:
> Your bug report
>
> #2288: [patch] NATO support in morse.el
>
> 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 2288 <at> debbugs.gnu.org.
>
> --
> 2288: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=2288
> GNU Bug Tracking System
> Contact help-debbugs <at> gnu.org with problems
>
>
> ---------- Forwarded message ----------
> From: Glenn Morris <rgm <at> gnu.org>
> To: 2288-done <at> debbugs.gnu.org
> Date: Mon, 07 Mar 2011 02:37:40 -0500
> Subject: Re: [patch] NATO support in morse.el
> Version: 24.1
>
> Alfa-Papa-Papa-Lima-India-Echo-Delta;
> Tango-Hotel-Alfa-November-Kilo-Sierra-Stop

That's great!  Very funny.

Thanks.
/a

-- 
In general, we reserve the right to have a poor
memory--the computer, however, is supposed to
remember!  Poor computer.  -- Guy Lewis Steele Jr.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 05 Apr 2011 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 14 years and 83 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.