[前][次][番号順一覧][スレッド一覧]

ruby-changes:25476

From: nobu <ko1@a...>
Date: Wed, 7 Nov 2012 11:48:30 +0900 (JST)
Subject: [ruby-changes:25476] nobu:r37533 (trunk): ruby-additional.el: set encoding

nobu	2012-11-07 11:48:19 +0900 (Wed, 07 Nov 2012)

  New Revision: 37533

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37533

  Log:
    ruby-additional.el: set encoding
    
    * misc/ruby-additional.el (ruby-mode-set-encoding): now encoding needs
      to be set always explicitly actually.  [Feature #6679]

  Modified files:
    trunk/ChangeLog
    trunk/misc/ruby-additional.el

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 37532)
+++ ChangeLog	(revision 37533)
@@ -1,3 +1,8 @@
+Wed Nov  7 11:48:14 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* misc/ruby-additional.el (ruby-mode-set-encoding): now encoding needs
+	  to be set always explicitly actually.  [Feature #6679]
+
 Wed Nov  7 09:15:58 2012  Nobuyoshi Nakada  <nobu@r...>
 
 	* object.c (rb_mod_const_get): avoid inadvertent symbol creation.
Index: misc/ruby-additional.el
===================================================================
--- misc/ruby-additional.el	(revision 37532)
+++ misc/ruby-additional.el	(revision 37533)
@@ -56,4 +56,45 @@
       (interactive)
       (or (ruby-brace-to-do-end)
 	  (ruby-do-end-to-brace)))
+
+    (defun ruby-mode-set-encoding ()
+      "Insert a magic comment header with the proper encoding always.
+Now encoding needs to be set always explicitly actually."
+      (save-excursion
+	(let ((coding-system))
+	  (widen)
+	  (goto-char (point-min))
+	  (if (re-search-forward "[^\0-\177]" nil t)
+	      (progn
+		(goto-char (point-min))
+		(set coding-system
+		     (or coding-system-for-write
+			 buffer-file-coding-system))
+		(if coding-system
+		    (setq coding-system
+			  (or (coding-system-get coding-system 'mime-charset)
+			      (coding-system-change-eol-conversion coding-system nil))))
+		(setq coding-system
+		      (if coding-system
+			  (symbol-name
+			   (or (and ruby-use-encoding-map
+				    (cdr (assq coding-system ruby-encoding-map)))
+			       coding-system))
+			"ascii-8bit")))
+	    (setq coding-system "us-ascii"))
+	  (if (looking-at "^#!") (beginning-of-line 2))
+	  (cond ((looking-at "\\s *#.*-\*-\\s *\\(en\\)?coding\\s *:\\s *\\([-a-z0-9_]*\\)\\s *\\(;\\|-\*-\\)")
+		 (unless (string= (match-string 2) coding-system)
+		   (goto-char (match-beginning 2))
+		   (delete-region (point) (match-end 2))
+		   (and (looking-at "-\*-")
+			(let ((n (skip-chars-backward " ")))
+			  (cond ((= n 0) (insert "  ") (backward-char))
+				((= n -1) (insert " "))
+				((forward-char)))))
+		   (insert coding-system)))
+		((looking-at "\\s *#.*coding\\s *[:=]"))
+		(t (when ruby-insert-encoding-magic-comment
+		     (insert "# -*- coding: " coding-system " -*-\n")))))))
+
     ))

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]