平衡点


2007/02/05

_ 文字コードチェック

大した事じゃないけど, バッファーに貼り付けた時に, 文字コードが異なる場所を色付するための関数.

;;;===========================================================================
;;; 文字コードのチェック
(defun my-check-encode-able (beg end)
 (interactive "r")
  (save-excursion
    (let* (
           (mycodingsystem buffer-file-coding-system)
           mychar
           mycharname
           (mycount 0)
           (mycharsetlist (coding-system-get mycodingsystem 'safe-charsets))
           )
      (goto-char beg) ;;;リージョンの先頭に移動
      (while (< (point) end) ;;;リージョン内を順に調べる
        (setq mychar (following-char))
        (setq mycharsetname (char-charset mychar))
        (if (equal 'composition mycharsetname)
           (setq mycharsetname
                 (char-charset (string-to-char
                                (decompose-string (char-to-string mychar))))))
        ;;encode できない文字だったら色をつける
        (if (or (equal mycharsetlist t) (member mycharsetname mycharsetlist))
            nil ;;;encode できる時は何もしない。 encode できない時↓
          (overlay-put (make-overlay (point) (1+ (point))) 'face 'region)
          (setq mycount (1+ mycount)))
        (forward-char) ;;;次の文字へ
        )
      ;;結果の表示
      (if (< 0 mycount)
          (message "%s で encode できない文字が%d 個ありました。"
                   mycodingsystem mycount))
      (if transient-mark-mode
          (setq deactivate-mark t)) ;;;region を色つけしている時、色を解除
      )))

みたいなの. どこで見つけたのか忘れたけど, Meadow memo かな?


連絡先など
最近の日記
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
  • 2024/05/21
    • 1. GnuPG が 2.2.43 に更新されて, Emacs の EasyPG でファイルが保存できなくなりました
    • 2. 久々に esup を走らせたら
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|
Back to Top ▲