Cygwin使っている人いますか? その11
■ このスレッドは過去ログ倉庫に格納されています
0025名無しさん@お腹いっぱい。
NGNG(defvar cygwin-umask
(string-to-int
(shell-command-to-string "printf %d 0`umask`"))
"cygwin 上で設定された umask の値")
(defun cygwin-correct-file-mode ()
"シェルスクリプトならばファイルモードを 777、それ以外ならば 666 に設定する。その際、シェルの umask を参照するので、実際は 755 や 644 などになると思われる。"
(interactive)
(save-restriction
(widen)
(let* ((shell-script-p
(string= "#!" (buffer-substring 1 (min 3 (point-max)))))
(mode-777 511)
(mode-666 438)
(mode (logand (if shell-script-p mode-777 mode-666)
(lognot cygwin-umask)))
(command (format "chmod %03o %s" mode (buffer-file-name))))
(shell-command-to-string command)
(message command))))
(add-hook 'after-save-hook 'cygwin-correct-file-mode)
ちょっと作ってみた。セーブがちと遅くなっていやんだが…
あと、emacs-lisp で string -> octal の素早い変換の仕方ってなんかないのかな。
■ このスレッドは過去ログ倉庫に格納されています