summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-07 02:48:19 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-07 02:48:19 +0000
commit1c5104ac9c0803c476b54d751b0ec4579a1828af (patch)
treec2524d046d7561f62c5defe3af4f84190d4b668e /misc
parentbd9b31e557ca557aa2ae8b5908c71e1250e450c8 (diff)
ruby-additional.el: set encoding
* misc/ruby-additional.el (ruby-mode-set-encoding): now encoding needs to be set always explicitly actually. [Feature #6679] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'misc')
-rw-r--r--misc/ruby-additional.el41
1 files changed, 41 insertions, 0 deletions
diff --git a/misc/ruby-additional.el b/misc/ruby-additional.el
index aabf0a6888..32811728e3 100644
--- a/misc/ruby-additional.el
+++ b/misc/ruby-additional.el
@@ -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")))))))
+
))