summaryrefslogtreecommitdiff
path: root/japanese/navi2ch/files/patch-myanmar
diff options
context:
space:
mode:
Diffstat (limited to 'japanese/navi2ch/files/patch-myanmar')
-rw-r--r--japanese/navi2ch/files/patch-myanmar237
1 files changed, 237 insertions, 0 deletions
diff --git a/japanese/navi2ch/files/patch-myanmar b/japanese/navi2ch/files/patch-myanmar
new file mode 100644
index 000000000000..c8c275852887
--- /dev/null
+++ b/japanese/navi2ch/files/patch-myanmar
@@ -0,0 +1,237 @@
+--- navi2ch-multibbs.el.orig Sun Sep 12 12:55:25 2004
++++ navi2ch-multibbs.el Sat Jun 10 08:38:54 2006
+@@ -242,14 +242,8 @@
+ (defun navi2ch-multibbs-send-message-retry-confirm (board)
+ (let ((func (or (navi2ch-fboundp
+ navi2ch-multibbs-send-message-retry-confirm-function)
+- #'yes-or-no-p))
+- spid)
+- (unwind-protect
+- (let ((result (funcall func "Retry? ")))
+- (when result
+- (setq spid (navi2ch-board-load-spid board)))
+- result)
+- (navi2ch-board-save-spid board spid))))
++ #'yes-or-no-p)))
++ (funcall func "Retry? ")))
+
+ (defun navi2ch-multibbs-send-message
+ (from mail message subject board article)
+@@ -279,10 +273,11 @@
+ navi2ch-net-http-proxy-password))
+ (tries 2) ; $BAw?.;n9T$N:GBg2s?t(B
+ (message-str "send message...")
+- (result 'retry))
++ (result 'retry)
++ (additional-params nil))
+ (dotimes (i tries)
+- (let ((proc (funcall send from mail message subject bbs key time
+- board article)))
++ (let ((proc (apply send from mail message subject bbs key time
++ board article additional-params)))
+ (message message-str)
+ (setq result (funcall success-p proc))
+ (cond ((eq result 'retry)
+@@ -291,6 +286,23 @@
+ (insert (decode-coding-string
+ (navi2ch-net-get-content proc)
+ navi2ch-coding-system))
++ (goto-char (point-min))
++ (setq additional-params nil)
++ (let ((case-fold-search t))
++ (while (re-search-forward "<input\\>[^>]+>" nil t)
++ (let ((str (match-string 0)) name value
++ (re
++ "\\<%s=\\(\"\\([^\"]*\\)\"\\|[^\"> \r\n\t]*\\)"))
++ (and (string-match (format re "name") str)
++ (setq name (or (match-string 2 str)
++ (match-string 1 str)))
++ (string-match (format re "value") str)
++ (setq value (or (match-string 2 str)
++ (match-string 1 str)))
++ (setq name (navi2ch-replace-html-tag name)
++ value (navi2ch-replace-html-tag value))
++ (push (cons name value)
++ additional-params)))))
+ (navi2ch-replace-html-tag-with-buffer)
+ (goto-char (point-min))
+ (while (re-search-forward "[ \t]*\n\\([ \t]*\n\\)*" nil t)
+@@ -410,10 +422,9 @@
+ list))))
+
+ (defun navi2ch-2ch-send-message
+- (from mail message subject bbs key time board article)
++ (from mail message subject bbs key time board article &rest additional-params)
+ (let ((url (navi2ch-board-get-bbscgi-url board))
+ (referer (navi2ch-board-get-uri board))
+- (spid (navi2ch-board-load-spid board))
+ (param-alist (list
+ (cons "submit" "$B=q$-9~$`(B")
+ (cons "FROM" (or from ""))
+@@ -424,21 +435,20 @@
+ (if subject
+ (cons "subject" subject)
+ (cons "key" key)))))
+- (setq spid
+- (when (and (consp spid)
+- (navi2ch-compare-times (cdr spid) (current-time)))
+- (car spid)))
++ (dolist (x additional-params)
++ (unless (assoc (car x) param-alist)
++ (push x param-alist)))
+ (let ((proc
+ (navi2ch-net-send-request
+ url "POST"
+ (list (cons "Content-Type" "application/x-www-form-urlencoded")
+- (cons "Cookie" (concat "NAME=" from "; MAIL=" mail
+- (if spid (concat "; SPID=" spid
+- "; PON=" spid))))
++ (cons "Cookie"
++ (navi2ch-net-cookie-string
++ (navi2ch-net-match-cookies url)))
+ (cons "Referer" referer))
+ (navi2ch-net-get-param-string param-alist))))
+- (setq spid (navi2ch-net-send-message-get-spid proc))
+- (if spid (navi2ch-board-save-spid board spid))
++ (navi2ch-net-update-cookies url proc)
++ (navi2ch-net-save-cookies)
+ proc)))
+
+ (defun navi2ch-2ch-article-to-url
+--- navi2ch-net.el.orig Fri Aug 6 23:02:01 2004
++++ navi2ch-net.el Sun Jun 4 23:07:43 2006
+@@ -780,6 +780,134 @@
+ ((string-match "^PON=\\([^;]+\\);" str)
+ (return (cons (match-string 1 str) date))))))))
+
++;; Cookie $B$O$3$s$J46$8$N(B alist $B$KF~$l$F$*$/!#(B
++;; ((domain1 (/path1 ("name1" "value1" ...)
++;; ("name2" "value2" ...) ...)
++;; (/path2 ...) ...)
++;; (domain2 ...) ...)
++
++(defvar navi2ch-net-cookies nil)
++
++(defun navi2ch-net-store-cookie (cookie domain path)
++ (let ((domain (if (stringp domain) (intern (downcase domain)) domain))
++ (path (if (stringp path) (intern path) path)))
++ (let ((path-alist (assq domain navi2ch-net-cookies)))
++ (unless path-alist
++ (setq path-alist (list domain))
++ (push path-alist navi2ch-net-cookies))
++ (let ((cookie-list (assq path (cdr path-alist))))
++ (if cookie-list
++ (let ((elt (assoc (car cookie) (cdr cookie-list))))
++ (if elt
++ (setcdr elt (cdr cookie))
++ (setcdr cookie-list (cons cookie (cdr cookie-list)))))
++ (setq cookie-list (list path cookie))
++ (setcdr path-alist (cons cookie-list (cdr path-alist))))))))
++
++(defun navi2ch-net-match-cookies (url)
++ (let* ((alist (navi2ch-net-split-url url))
++ (host (cdr (assq 'host alist)))
++ (file (cdr (assq 'file alist)))
++ (domain-list (list (intern (downcase host))))
++ path-list)
++ (when (string-match "\\..*\\..*\\'" host)
++ (push (intern (downcase (match-string 0 host))) domain-list))
++ (while (string-match "\\`\\(.*\\)/[^/]*" file)
++ (let ((f (match-string 1 file)))
++ (push (intern (if (string= f "") "/" f)) path-list)
++ (setq file f)))
++ (labels ((mapcan (function list) (apply #'nconc (mapcar function list))))
++ (mapcan (lambda (domain)
++ (mapcan (lambda (path)
++ (navi2ch-net-expire-cookies
++ (cdr (assq path
++ (cdr (assq domain
++ navi2ch-net-cookies))))))
++ path-list))
++ domain-list))))
++
++(defvar navi2ch-net-cookie-file "cookie.info")
++
++(defun navi2ch-net-cookie-file ()
++ (expand-file-name navi2ch-net-cookie-file navi2ch-directory))
++
++(defun navi2ch-net-save-cookies ()
++ (let ((now (current-time)))
++ (labels ((strip (f l) (let ((tmp (delq nil (mapcar f (cdr l)))))
++ (and tmp (cons (car l) tmp)))))
++ (navi2ch-save-info
++ (navi2ch-net-cookie-file)
++ (delq nil
++ (mapcar (lambda (path-alist)
++ (strip (lambda (cookie-list)
++ (strip (lambda (cookie)
++ (and (cddr cookie)
++ (navi2ch-compare-times
++ (cddr cookie) now)
++ cookie))
++ cookie-list))
++ path-alist))
++ navi2ch-net-cookies))))))
++
++(defun navi2ch-net-load-cookies ()
++ (setq navi2ch-net-cookies
++ (navi2ch-load-info (navi2ch-net-cookie-file))))
++
++(add-hook 'navi2ch-save-status-hook 'navi2ch-net-save-cookies)
++(add-hook 'navi2ch-load-status-hook 'navi2ch-net-load-cookies)
++
++(defun navi2ch-net-update-cookies (url proc)
++ (let* ((case-fold-search t)
++ (alist (navi2ch-net-split-url url))
++ (host (cdr (assq 'host alist)))
++ (file (cdr (assq 'file alist))))
++ (dolist (pair (navi2ch-net-get-header proc) navi2ch-net-cookies)
++ (when (string= (car pair) "Set-Cookie")
++ (let* ((str (cdr pair))
++ (date (when (string-match "expires=\\([^;]+\\)" str)
++ (navi2ch-http-date-decode (match-string 1 str))))
++ (domain (if (string-match "domain=\\([^;]+\\)" str)
++ (match-string 1 str)
++ host))
++ (path (if (string-match "path=\\([^;]+\\)" str)
++ (match-string 1 str)
++ (if (and (string-match "\\(.*\\)/" file)
++ (> (length (match-string 1 file)) 0))
++ (match-string 1 file)
++ "/"))))
++ (when (string-match "^\\([^=]+\\)=\\([^;]*\\)" str)
++ (let ((name (match-string 1 str))
++ (value (match-string 2 str)))
++ (setq value
++ (decode-coding-string
++ (navi2ch-replace-string "%[0-9A-Za-z][0-9A-Za-z]"
++ (lambda (s)
++ (string (string-to-number
++ (substring s 1) 16)))
++ value t t t)
++ navi2ch-coding-system))
++ (navi2ch-net-store-cookie (cons name
++ (cons value date))
++ domain path))))))))
++
++(defun navi2ch-net-expire-cookies (cookie-list)
++ "COOKIE-LIST $B$+$i4|8B@Z$l$N%/%C%-!<$r=|$$$?%j%9%H$rJV$9!#(B"
++ (let ((now (current-time)))
++ (delq nil
++ (mapcar (lambda (cookie)
++ (when (or (null (cddr cookie))
++ (navi2ch-compare-times (cddr cookie) now))
++ cookie))
++ cookie-list))))
++
++(defun navi2ch-net-cookie-string (cookies)
++ "HTTP $B$N(B Cookie $B%X%C%@$H$7$FEO$9J8;zNs$rJV$9!#(B"
++ (mapconcat (lambda (elt)
++ (concat (navi2ch-net-url-hexify-string (car elt))
++ "="
++ (navi2ch-net-url-hexify-string (cadr elt))))
++ cookies "; "))
++
+ (defun navi2ch-net-download-logo (board)
+ (let ((coding-system-for-read 'binary)
+ (coding-system-for-write 'binary)