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/