X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-nntp.el;h=e472fdc1ee3226d7a6b95022dfd6763f50205b83;hb=6b042912bef75cdd9deeab11ecf767c700965ad3;hp=39deb97408f1d709ae9c7b2d69da7549c2366935;hpb=8238b40e41b7f6c969acf58986e439a6cfb1c1d2;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-nntp.el b/elmo/elmo-nntp.el index 39deb97..e472fdc 100644 --- a/elmo/elmo-nntp.el +++ b/elmo/elmo-nntp.el @@ -417,7 +417,8 @@ Don't cache if nil.") (with-current-buffer outbuf (erase-buffer) (insert-buffer-substring (elmo-network-session-buffer session) - start (- end 3)))) + start (- end 3)) + (elmo-delete-cr-buffer))) t)) (defun elmo-nntp-select-group (session group &optional force) @@ -504,9 +505,9 @@ Don't cache if nil.") (not (string= (elmo-nntp-folder-group-internal folder) ""))) (concat " active" - (format " %s.*" - (elmo-nntp-folder-group-internal folder) - ""))))) + (format + " %s.*" + (elmo-nntp-folder-group-internal folder)))))) (if (elmo-nntp-read-response session t) (if (null (setq response (elmo-nntp-read-contents session))) (error "NNTP List folders failed") @@ -546,14 +547,14 @@ Don't cache if nil.") (progn (setq regexp (format "^\\(%s[^. ]+\\)\\([. ]\\).*\n" - (if (and - (elmo-nntp-folder-group-internal folder) - (null (string= - (elmo-nntp-folder-group-internal - folder) ""))) + (if (and (elmo-nntp-folder-group-internal folder) + (null (string= + (elmo-nntp-folder-group-internal + folder) ""))) (concat (elmo-nntp-folder-group-internal folder) - "\\.") ""))) + "\\.") + ""))) (while (looking-at regexp) (setq top-ng (elmo-match-buffer 1)) (if (string= (elmo-match-buffer 2) " ") @@ -623,18 +624,7 @@ Don't cache if nil.") ret-val))) (defun elmo-nntp-make-msglist (beg-str end-str) - (elmo-set-work-buf - (let ((beg-num (string-to-int beg-str)) - (end-num (string-to-int end-str)) - i) - (setq i beg-num) - (insert "(") - (while (<= i end-num) - (insert (format "%s " i)) - (setq i (1+ i))) - (insert ")") - (goto-char (point-min)) - (read (current-buffer))))) + (elmo-make-number-list (string-to-int beg-str) (string-to-int end-str))) (luna-define-method elmo-folder-list-messages-plugged ((folder elmo-nntp-folder) @@ -935,7 +925,7 @@ Don't cache if nil.") ret-list ret-val beg) (set-buffer tmp-buffer) (erase-buffer) - (elmo-set-buffer-multibyte nil) + (set-buffer-multibyte nil) (insert string) (goto-char (point-min)) (setq beg (point)) @@ -1378,10 +1368,8 @@ Returns a list of cons cells like (NUMBER . VALUE)" (elmo-display-progress 'elmo-nntp-retrieve-headers "Getting headers..." 100)) (message "Getting headers...done") - ;; Remove all "\r"'s. - (goto-char (point-min)) - (while (search-forward "\r\n" nil t) - (replace-match "\n")) + ;; Replace all CRLF with LF. + (elmo-delete-cr-buffer) (copy-to-buffer outbuf (point-min) (point-max))))) ;; end of from Gnus @@ -1390,7 +1378,7 @@ Returns a list of cons cells like (NUMBER . VALUE)" (save-excursion (let ((new-msgdb (elmo-make-msgdb)) beg entity i num message-id) - (elmo-set-buffer-multibyte nil) + (set-buffer-multibyte nil) (goto-char (point-min)) (setq i 0) (message "Creating msgdb...") @@ -1544,17 +1532,19 @@ Returns a list of cons cells like (NUMBER . VALUE)" (luna-define-method elmo-folder-process-crosspost ((folder elmo-nntp-folder)) (elmo-nntp-folder-process-crosspost folder)) -(luna-define-method elmo-folder-list-flagged-internal :around ((folder elmo-nntp-folder) - flag) +(luna-define-method elmo-folder-list-flagged :around ((folder elmo-nntp-folder) + flag &optional in-msgdb) ;; 2.3. elmo-folder-list-unreads return unread message list according to ;; `reads' slot. - (case flag - (unread - (elmo-living-messages (luna-call-next-method) - (elmo-nntp-folder-reads-internal folder))) - ;; Should consider read, digest and any flag? - (otherwise - (luna-call-next-method)))) + (let ((msgs (luna-call-next-method))) + (if in-msgdb + msgs + (case flag + (unread + (elmo-living-messages msgs (elmo-nntp-folder-reads-internal folder))) + ;; Should consider read, digest and any flag? + (otherwise + msgs))))) (require 'product) (product-provide (provide 'elmo-nntp) (require 'elmo-version))