--- pukiwiki-mode.el.orig Sun Apr 11 02:46:41 2004 +++ pukiwiki-mode.el Sun Apr 11 04:13:19 2004 @@ -46,7 +46,7 @@ ;; Hi-lock: end (setq pukiwiki-site-list - '(("Meadow" "http://www.bookshelf.jp/pukiwiki/pukiwiki.php"))) + '(("Meadow" "http://www.bookshelf.jp/pukiwiki/pukiwiki.php" nil euc-jp-dos))) ;;(setq pukiwiki-browser-function 'browse-url) ;;; Variable: @@ -89,8 +89,6 @@ (defvar pukiwiki-index-sort-key nil) -(defvar pukiwiki-coding-system 'euc-japan-dos) - (defvar pukiwiki-pagename nil) (defvar pukiwiki-prev-buffer nil) @@ -262,7 +260,8 @@ (make-local-variable 'pukiwiki-md5hex) (setq require-final-newline t indent-tabs-mode nil) - (set-buffer-file-coding-system pukiwiki-coding-system)) + ;(set-buffer-file-coding-system pukiwiki-coding-system) + ) (defun pukiwiki-mode-set-font-lock (mode) (setq pukiwiki-anchor-regexp-alist @@ -381,7 +380,7 @@ (setq prompt (or retry-prompt prompt))))) c)) -(defun pukiwiki-http-request (mode cmd pagename site-url &optional post-data) +(defun pukiwiki-http-request (mode cmd pagename site-url coding-system &optional post-data) (let (url buf) (cond ((eq mode 'post) @@ -390,7 +389,7 @@ site-url "edit" (http-url-hexify-string pagename - pukiwiki-coding-system))))) + coding-system))))) ((eq mode 'search) (setq url (concat (format "%s?cmd=search" @@ -406,17 +405,17 @@ (format "&page=%s" (http-url-hexify-string pagename - pukiwiki-coding-system))) + coding-system))) "")))) (setq buf (pukiwiki-http-fetch url mode nil nil (http-url-hexify-alist - post-data pukiwiki-coding-system))) + post-data coding-system))) (if (bufferp buf) (save-excursion (set-buffer buf) (decode-coding-region (point-min) (point-max) - pukiwiki-coding-system) + coding-system) (goto-char (point-min)) buf) (error (format "pukiwiki get: %s - %s" @@ -491,7 +490,8 @@ (setq site-info (list url url)) (pukiwiki-edit-page (http-url-unhexify-string pagename - pukiwiki-coding-system) site-info))) + (pukiwiki-site-coding-system site-info)) + site-info))) (defun pukiwiki-edit-quit () (interactive) @@ -566,9 +566,9 @@ (message "Sending... ") ;; 文字コードが変更されていた時に戻しておく - (if (string= buffer-file-coding-system pukiwiki-coding-system) + (if (string= buffer-file-coding-system (pukiwiki-site-coding-system)) () - (set-buffer-file-coding-system pukiwiki-coding-system)) + (set-buffer-file-coding-system (pukiwiki-site-coding-system))) ;; 半角カタカナは全角に変換して送信 (pukiwiki-check-jisx0201) ;; 文字コードのおかしい文字が無いか確認 @@ -597,6 +597,7 @@ (setq buf (pukiwiki-http-request 'post nil pukiwiki-pagename (pukiwiki-site-url) + (pukiwiki-site-coding-system) post-data)) (setq pukiwiki-post-data post-data) (when (bufferp buf) @@ -670,6 +671,7 @@ (setq buf (pukiwiki-http-request 'post nil pukiwiki-pagename (pukiwiki-site-url) + (pukiwiki-site-coding-system) post-data)) (setq pukiwiki-post-data post-data) (message "Sending... done.") @@ -688,7 +690,7 @@ (re-search-backward "" nil t) (end-of-line) (delete-region (point) (point-max)) - (set-buffer-file-coding-system pukiwiki-coding-system) + (set-buffer-file-coding-system (pukiwiki-site-coding-system)) (write-region (point-min) (point-max) filename) (setq pukiwiki-preview-file-list (cons @@ -710,12 +712,13 @@ (str (buffer-substring-no-properties (point-min) (point-max))) (pagename pukiwiki-pagename) (site-url (pukiwiki-site-url)) + (coding-system (pukiwiki-site-coding-system)) diff-process diff-switches lines) (if (get-buffer pukiwiki-diff-buffer-name) (kill-buffer pukiwiki-diff-buffer-name)) (with-temp-file file1 (insert (cdr (assoc 'body - (pukiwiki-fetch-source pagename site-url)))) + (pukiwiki-fetch-source pagename site-url coding-system)))) (pukiwiki-replace-entity-refs) (if (> (current-column) 0) (insert "\n")) (setq lines (count-lines (point-min) (point-max)))) @@ -1136,11 +1139,11 @@ (funcall pukiwiki-browser-function (format "%s?%s" (pukiwiki-site-url) (http-url-hexify-string pagename - pukiwiki-coding-system))) + (pukiwiki-site-coding-system)))) (browse-url (format "%s?%s" (pukiwiki-site-url) (http-url-hexify-string pagename - pukiwiki-coding-system)))))) + (pukiwiki-site-coding-system))))))) (defun pukiwiki-index-show-diff (arg &optional day) "現在のバッファとサーバのデータを比較し、表示する。" @@ -1157,13 +1160,13 @@ (format "%s?cmd=backup&page=%s" (pukiwiki-site-url) (http-url-hexify-string pagename - pukiwiki-coding-system))) + (pukiwiki-site-coding-system)))) (site-url (pukiwiki-site-url)) (diff-contents nil) (site-name (car pukiwiki-site-info)) buf) (message "Checking backup...") - (setq buf (pukiwiki-http-request 'raw "edit" pagename diff-index)) + (setq buf (pukiwiki-http-request 'raw "edit" pagename diff-index (pukiwiki-site-coding-system))) (when buf (set-buffer buf) (goto-char (point-max)) @@ -1210,10 +1213,10 @@ (format "%s?cmd=backup&page=%s&age=%s&action=nowdiff" site-url (http-url-hexify-string pagename - pukiwiki-coding-system) + (pukiwiki-site-coding-system)) age)) (message "Creating diff...") - (setq diff-contents (pukiwiki-fetch-source pagename url t)) + (setq diff-contents (pukiwiki-fetch-source pagename url (pukiwiki-site-coding-system) t)) (setq buf (generate-new-buffer "*pukiwiki tmp*")) (switch-to-buffer buf) (pukiwiki-edit-rename-buffer @@ -1356,6 +1359,7 @@ (setq buf (pukiwiki-http-request 'search nil "" (pukiwiki-site-url) + (pukiwiki-site-coding-system) post-data)) (setq lst (split-string search-word " ")) @@ -1381,10 +1385,10 @@ (setq indexes (cons (list i (http-url-unhexify-string - (match-string 1) pukiwiki-coding-system) + (match-string 1) (pukiwiki-site-coding-system)) ;;(pukiwiki-replace-entity-refs (match-string 2)) (http-url-unhexify-string - (match-string 1) pukiwiki-coding-system) + (match-string 1) (pukiwiki-site-coding-system)) (pukiwiki-replace-entity-refs (format-time-string "%y/%m/%d" @@ -1681,7 +1685,8 @@ (message "Loading...") (condition-case err (setq result (pukiwiki-fetch-source - pagename (pukiwiki-site-url site-info))) + pagename (pukiwiki-site-url site-info) + (pukiwiki-site-coding-system site-info))) (error (setq result (pukiwiki-fetch-source pagename @@ -1690,7 +1695,8 @@ "diff" (http-url-hexify-string pagename - pukiwiki-coding-system)) + (pukiwiki-site-coding-system site-info))) + (pukiwiki-site-coding-system site-info) 'diff)) (setq result (delete (list 'password) result)) (setq result @@ -1765,7 +1771,8 @@ "ページ一覧を取得する。" (let (indexes history (i 1) (buf (pukiwiki-http-request - 'get "list" nil (pukiwiki-site-url site-info)))) + 'get "list" nil (pukiwiki-site-url site-info) + (pukiwiki-site-coding-system site-info)))) (when (bufferp buf) (save-excursion (set-buffer buf) @@ -1776,7 +1783,7 @@ (setq indexes (cons (list i (http-url-unhexify-string - (match-string 1) pukiwiki-coding-system) + (match-string 1) (pukiwiki-site-coding-system site-info)) (pukiwiki-replace-entity-refs (match-string 2)) (pukiwiki-replace-entity-refs @@ -1806,7 +1813,8 @@ 'raw "list" nil (concat (pukiwiki-site-url site-info) - "?plugin=attach&pcmd=list")))) + "?plugin=attach&pcmd=list") + (pukiwiki-site-coding-system site-info)))) (when (bufferp buf) (save-excursion (set-buffer buf) @@ -1836,7 +1844,7 @@ indexes))))) indexes)) -(defun pukiwiki-fetch-source (pagename site-url &optional raw) +(defun pukiwiki-fetch-source (pagename site-url coding-system &optional raw) "Pukiwiki の ソースを取得する。 '((md5hex . \"...\") @@ -1846,8 +1854,8 @@ (let (buf start end pt result (win (current-window-configuration))) (if raw - (setq buf (pukiwiki-http-request 'raw "edit" pagename site-url)) - (setq buf (pukiwiki-http-request 'get "edit" pagename site-url))) + (setq buf (pukiwiki-http-request 'raw "edit" pagename site-url coding-system)) + (setq buf (pukiwiki-http-request 'get "edit" pagename site-url coding-system))) (save-current-buffer (when (bufferp buf) (set-buffer buf) @@ -1974,6 +1982,9 @@ (or (nth 2 (or site-info pukiwiki-site-info)) 'default)) +(defun pukiwiki-site-coding-system (&optional site-info) + (nth 3 (or site-info pukiwiki-site-info))) + (defun pukiwiki-page-buffer-name (pagename site-info) (let ((buf (cdr (assoc (list (pukiwiki-site-name site-info) pagename) pukiwiki-page-buffer-alist)))) @@ -2156,7 +2167,8 @@ (setq comment (pukiwiki-fetch-source (concat "コメント/" pukiwiki-pagename) - (pukiwiki-site-url pukiwiki-site-info))) + (pukiwiki-site-url pukiwiki-site-info) + (pukiwiki-site-coding-system pukiwiki-site-info))) (forward-line 1) (if (cdr (assoc 'body comment)) (pukiwiki-insert-comment-str (cdr (assoc 'body comment)))) @@ -2168,7 +2180,8 @@ (pukiwiki-fetch-source (buffer-substring-no-properties (match-beginning 1) (match-end 1)) - (pukiwiki-site-url pukiwiki-site-info))) + (pukiwiki-site-url pukiwiki-site-info) + (pukiwiki-site-coding-system pukiwiki-site-info))) (forward-line 1) (if (cdr (assoc 'body comment)) (pukiwiki-insert-comment-str (cdr (assoc 'body comment)))) @@ -2796,7 +2809,7 @@ "&refer=" (http-url-hexify-string pukiwiki-pagename - pukiwiki-coding-system))) + (pukiwiki-site-coding-system)))) (setq filename (concat (expand-file-name