;
;   .emacs
;

(set-display-coding-system '*euc-japan*unix)

;; system
(setq host-name (getenv "HOST")
      tty-name (getenv "tty")
      term-name (getenv "TERM")
      display-name (getenv "DISPLAY"))

(defun next-line (arg)
  "Present to kazus-m@cs.uec.ac.jp"
  (interactive "p")
  (if (= arg 1)
      (let ((opoint (point)))
	(forward-line 1)
	(if (or (= opoint (point))
		(not (eq (preceding-char) ?\n)))
	    (ding)
	  (goto-char opoint)
	  (line-move arg)))
    (line-move arg))
  nil)

(defun recenter-whatline (arg)
  ""
  (interactive "p")
  (recenter)
  (what-line)
  nil)

;; mode-line
(setq-default mode-line-format '(
 " ["
 mode-line-egg-mode
 (kanji-flag ( "%c" "]"))
 ""
 mode-line-modified
 mode-line-nemacs-header
 mode-line-buffer-identification
 " "
 global-mode-string
 " %[("
 mode-name
 minor-mode-alist
 "%n"
 mode-line-process
 ")%]:"
 (-3 . "%p")))

;; c mode
(setq inhibit-default-init-c t)
(setq c-tab-always-indent nil)
(setq c-indent-level 2)
(setq c-continued-statement-offset 2)
(setq c-brace-offset 0)
(setq c-brace-imaginary-offset 0)
(setq c-argdecl-indent 0)
(setq c-label-offset -2)

;; misc
(setq version-control 'never)
(setq make-backup-files nil)
(setq require-final-newline t)
(defun suspend-emacs2 ()
  "After suspend emacs, return to normal '^S'."
  (interactive)
  (progn
    (suspend-emacs)
    (set-input-mode nil nil)))

;; Keyboad Translate Table
(setq keyboard-translate-table "\C-@\C-A\C-B\C-C\C-D\C-E\C-F\C-G\177\t\n\C-K\f\r\C-N\C-O\C-P\C-Q\C-R\C-S\C-T\C-U\C-V\C-W\C-X\C-Y\C-Z\C-[\C-\\\C-]\C-^\C-_ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\b")

;; key bind
(global-set-key "\C-xc" 'shell)
(global-set-key "\C-u" 'undo)
(global-set-key "\C-d" 'kill-word)
(global-set-key "\C-n" 'next-line)
(global-set-key "\C-l" 'recenter-whatline)
(global-set-key "\C-i" 'tab-totab-stop)
(global-set-key "\C-x\C-e" 'compile)
(global-set-key "\C-t" 'scroll-down)
(global-set-key "\M- " 'set-mark-command)
(global-set-key "\C-z" 'suspend-emacs2)
(global-set-key "\M-g" 'goto-line)
(global-set-key "\C-x=" 'what-line)
(global-set-key "\M-r" 'replace-string)
(global-set-key "\M-R" 'query-replace)
(global-set-key "\C-c\C-ms" 'mh-smail)
(global-set-key "\C-c\C-mr" 'mh-rmail)
(global-set-key "\C-c\C-mv" 'mh-visit-folder)

(global-set-key "\C-x\~" 'shrink-window)
(global-set-key "\C-x\"" 'enlarge-window)
(global-set-key "\C-c\C-f" 'hexl-find-file)

(put 'eval-expression 'disabled nil)

(setq suspend-resume-hook '(lambda () (set-input-mode nil nil)))

(put 'narrow-to-page 'disabled nil)

;; egg
(global-set-key "\C-o" 'toggle-egg-mode)
(defvar enable-double-n-syntax t)
(global-unset-key "\C-i")
