# # xcal-xcalendar-patch: xcal-19.el を Xcalendar 互換にするパッチ # # [1998/02/12] OSHIRO Naoki. # # $Log:$ # 変数 xcal-xcalendar-compat を nil 以外にすると Xcalendar に対応したデー タファイルの管理を行います.X 版の xcal にあわせてこちらをデフォルトに しています.xcal-file-name を変更しました. ~/.emacs に次の行を入れると C-x \ で xcalender ファイルが編集できます. ;;; Xcal互換のスケジュール表 (cond ((boundp 'NEMACS) (autoload 'xcal "xcal" "xcal for emacs." t) (autoload 'gnus-to-xcal-file "xcal")) ((boundp 'MULE) (autoload 'xcal "xcal-19" "xcal for emacs." t) (autoload 'gnus-to-xcal-file "xcal-19"))) (autoload 'day-of-week "cal-emacs18") (autoload 'generate-month "cal-emacs18") (setq xcal-directory "~/Calendar") (add-hook 'xcal-mode-hook '(lambda () (load (expand-file-name "~/bin/elisp/xcal-memorial.el")))) (global-set-key "\C-x\\" 'xcal) --- xcal-19.el.orig Mon Sep 12 17:40:15 1994 +++ xcal-19.el Thu Feb 12 11:49:37 1998 @@ -151,8 +151,8 @@ ;; 一所懸命 作りました.... ;; -(defvar xcal-directory "~/.Calendar" - "*xcal の カレンダーディレクトリー") +(defvar xcal-directory "~/Calendar" + "*xcal の カレンダーディレクトリー (Xcalendar 互換)") (defvar xcal-print-out-command nil "カレンダーを出力するコマンド。標準入力から読み込むもの... default は `lpr'") @@ -203,6 +203,9 @@ (defvar xcal-keys-message nil "下に表示するキーバイド") (defvar xcal-previous-window-configuration nil) +;[1998/02/12] OSHIRO Naoki. +(defvar xcal-xcalendar-compat t "XCalendar 互換データにする(デフォルト)") + ;; Emacs-19 用 face 作成 (make-face 'holiday-face) (if (and (eq window-system 'x) (x-display-color-p)) @@ -630,15 +633,22 @@ (let ((s (car holiday)) (e (car (cdr holiday)))) (put-text-property s e'face 'holiday-face))) (next-line 1))) - - (defun xcal-file-name (year month day) - "年月日からファイル名を作成する。 + +(defun xcal-file-name (year month day) + "年月日からファイル名を作成する。 Unix : {Calnedar}/xy{年}/xc{日}{月(文字)}{年} 1999/1/1 -> ~/Calnedar/xy1991/xc1Jan1991 Dos : {Calnedar}/xy{年}/xc{年(%04d)}{月(%02d)}.{日(%02d)} 1991/1/1 -> ~/Calendar/xy1999/xc199901.01" + (if xcal-xcalendar-compat + (format "%s/xc%02d%s%04d" + xcal-directory day + (aref ["Jan" "Feb" "Mar" "Apr" "May" "Jun" + "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"] + (1- month)) + year) (if (boundp 'dos-machine-type) (format "%s/xy%d/xc%04d%02d.%02d" xcal-directory year year month day) (format "%s/xy%d/xc%d%s%d" @@ -648,7 +658,7 @@ (aref ["Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"] (1- month)) - year))) + year)))) (defun xcal-write-region (begin end file) (xcal-make-directory (file-name-directory file))